Данные сеанса из блокировки. Дополняет данные о сеансе по информации из описания блокировки
// Дополняет данные о сеансе по информации из описания блокировки
//
// Параметры:
// ДанныеСеансов - Соответствие - Структура, накапливающая данные сеансов по КлючСеанса в виде структуры с полями РежимБлокировкиБД, Разделитель
// ТекстБлокировки - Строка - Исходный текст блокировки, получаемый из списка блокировок (RAS/COM)
// КлючСеанса - Произвольный - идентификатор сеанса
// ИмяИнформационнойБазы - Строка - искомое имя информационной базы, сеансы других ИБ игнорируются
//
Процедура ДанныеСеансаИзБлокировки(ДанныеСеансов, Знач ТекстБлокировки, Знач КлючСеанса, Знач ИмяИнформационнойБазы) Экспорт
ТекстНРег = НРег(ТекстБлокировки);
ТекстНРег = СтрЗаменить(ТекстНРег, "db(", "бд(");
ТекстНРег = СтрЗаменить(ТекстНРег, "(session,", "(сеанс,");
ТекстНРег = СтрЗаменить(ТекстНРег, ",shared", ",разделяемая");
ТекстНРег = СтрЗаменить(ТекстНРег, ",exceptional", ",исключительная");
ТекстНРег = СтрЗаменить(ТекстНРег, ",exclusive", ",исключительная");
Если Лев(ТекстНРег, 9) = "бд(сеанс," Тогда
ЗначенияБлокировкиСтрокой = Сред(ТекстНРег, СтрНайти(ТекстНРег, "(") + 1, СтрНайти(ТекстНРег, ")") - СтрНайти(ТекстНРег, "(") - 1);
ЗначенияБлокировки = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ЗначенияБлокировкиСтрокой, ",");
Если ЗначенияБлокировки.Количество() >= 3
И ЗначенияБлокировки[0] = "сеанс"
И ЗначенияБлокировки[1] = НРег(ИмяИнформационнойБазы) Тогда
Если СтрНайти(ЗначенияБлокировкиСтрокой, "'") > 0 Тогда
ЗначениеРазделителя = Сред(ЗначенияБлокировкиСтрокой, СтрНайти(ЗначенияБлокировкиСтрокой, "'") + 1);
ЗначениеРазделителя = Лев(ЗначениеРазделителя, СтрНайти(ЗначениеРазделителя, "'") - 1);
Иначе
ЗначениеРазделителя = "";
КонецЕсли;
ДанныеСеансов[КлючСеанса] = Новый Структура("РежимБлокировкиБД,Разделитель", ЗначенияБлокировки[2], ЗначениеРазделителя);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
УстановитьБлокировкуСеансовОбластиДанных (БСП)
ПолучитьБлокировкуСеансовОбластиДанных (БСП)
НовыеПараметрыБлокировкиСоединений (БСП)
ПриОпределенииПараметровБлокировкиСеансов (БСП)
СформироватьСообщениеБлокировки (БСП)