Завершить сеансы области данных. Завершает сеанс пользователя области данных.
// Завершает сеанс пользователя области данных.
//
// Параметры:
// НомераСеансов - Массив - массив номеров сеансов,
// ПарольПользователя - Строка - пароль текущего пользователя области данных.
//
Процедура ЗавершитьСеансыОбластиДанных(Знач НомераСеансов, Знач ПарольПользователя) Экспорт
ВерсияСервисаУправляющегоПриложения = ИспользуемаяВерсияСервисаУправляющегоПриложения(ПарольПользователя);
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияСервисаУправляющегоПриложения, "1.0.3.3") = 0 Тогда
ИнформацияОбОшибке = Неопределено;
Прокси = ПроксиСервисаУправляющегоПриложения(ПарольПользователя);
УстановитьПривилегированныйРежим(Истина);
ТекущаяОбластьДанных = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса();
КлючТекущийОбластиДанных = Константы.КлючОбластиДанных.Получить();
УстановитьПривилегированныйРежим(Ложь);
Для Каждого НомерСеанса Из НомераСеансов Цикл
Прокси.TerminateSession(
ТекущаяОбластьДанных,
КлючТекущийОбластиДанных,
НомерСеанса,
ИнформацияОбОшибке
);
РаботаВМоделиСервиса.ОбработатьИнформациюОбОшибкеWebСервиса(
ИнформацияОбОшибке,
Метаданные.Подсистемы.ТехнологияСервиса.Подсистемы.РаботаВМоделиСервиса.Подсистемы.УдаленноеАдминистрированиеВМоделиСервиса,
ИнтерфейсСервисаУправляющегоПриложения(),
"TerminateSession");
КонецЦикла;
ИначеЕсли ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияСервисаУправляющегоПриложения, "1.0.3.4") >= 0 Тогда
ИнформацияОбОшибке = Неопределено;
Прокси = ПроксиСервисаУправляющегоПриложения(ПарольПользователя);
УстановитьПривилегированныйРежим(Истина);
ТекущаяОбластьДанных = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса();
КлючТекущийОбластиДанных = Константы.КлючОбластиДанных.Получить();
УстановитьПривилегированныйРежим(Ложь);
ИнформацияОНомерахСеанса = ПривестиНомераСеансов(НомераСеансов, Прокси.ФабрикаXDTO);
Прокси.TerminateSessions(
ТекущаяОбластьДанных,
КлючТекущийОбластиДанных,
ИнформацияОНомерахСеанса,
ИнформацияОбОшибке
);
РаботаВМоделиСервиса.ОбработатьИнформациюОбОшибкеWebСервиса(
ИнформацияОбОшибке,
Метаданные.Подсистемы.ТехнологияСервиса.Подсистемы.РаботаВМоделиСервиса.Подсистемы.УдаленноеАдминистрированиеВМоделиСервиса,
ИнтерфейсСервисаУправляющегоПриложения(),
"TerminateSessions");
Иначе
ВызватьИсключение НСтр("ru = 'Текущая версия управляющего приложения не поддерживает завершение сеанса из приложений. Необходимо обновить управляющее приложение.'");
КонецЕсли;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПолучитьБлокировкуСеансовОбластиДанных (БСП)
УстановитьБлокировкуСеансовОбластиДанных (БСП)
ПроверитьПринадлежностьСеансаТекущейОбластиДанных (БСП)
ЗавершитьРаботуЭтогоСеансаЗавершение (БСП)
ЗначениеРазделителяСеанса (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)