1С 8.3 Автозавершение сеансов
Данные > Примеры кода 1С > 1С 8.3 Пользователи, роли (права) доступа
Перейти в раздел примеры кода 1С 8.3:
Код "выбрасывает" пользователей. Используется БСП - работа с кластером.
Автозавершение сеансов пользователей в базе данных 1С 8.3:
Функция СведенияОВнешнейОбработке() Экспорт
ПарРег = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПарРег.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПарРег.БезопасныйРежим = Ложь;
Команда = ПарРег.Команды.Добавить();
//представление команды в пользовательском режиме
Команда.Представление = "АвтоЗавершениеСеансов";
Команда.Идентификатор = Команда.Представление;
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Возврат ПарРег;
КонецФункции
Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт
Если ИдентификаторКоманды = "АвтоЗавершениеСеансов" Тогда
ЗавершитьСеансыБСП();
КонецЕсли;
КонецФункции
Процедура ЗавершитьСеансыБСП()
ЗавершитьСеансыБСПСервером();
КонецПроцедуры
&НаСервере
Процедура ЗавершитьСеансыБСПСервером()
КластераАдмин = АдминистрированиеКластера.ПараметрыАдминистрированияКластера();
КластераАдмин.АдресАгентаСервера = "localhost";
ИБАдмин = АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера();
ИБАдмин.ИмяВКластере = "base1c"; // имя базы в кластере;
ИБАдмин.ИмяАдминистратораИнформационнойБазы = "admin"; // пользователь
ИБАдмин.ПарольАдминистратораИнформационнойБазы = "****"; // пароль пользователя
СеансыИБ = АдминистрированиеКластераCOM.СеансыИнформационнойБазы(КластераАдмин, ИБАдмин);
Для Каждого Сеанс Из СеансыИБ Цикл
Если НЕ Сеанс.ИмяПользователя = "admin" Тогда
Фильтр = Новый Структура("ИмяПользователя");
Фильтр.ИмяПользователя = Сеанс.ИмяПользователя;
АдминистрированиеКластераCOM.УдалитьСеансыИнформационнойБазы(КластераАдмин, ИБАдмин, Фильтр);
КонецЕсли;
КонецЦикла
КонецПроцедуры
ПарРег = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПарРег.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПарРег.БезопасныйРежим = Ложь;
Команда = ПарРег.Команды.Добавить();
//представление команды в пользовательском режиме
Команда.Представление = "АвтоЗавершениеСеансов";
Команда.Идентификатор = Команда.Представление;
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Возврат ПарРег;
КонецФункции
Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыКоманды) Экспорт
Если ИдентификаторКоманды = "АвтоЗавершениеСеансов" Тогда
ЗавершитьСеансыБСП();
КонецЕсли;
КонецФункции
Процедура ЗавершитьСеансыБСП()
ЗавершитьСеансыБСПСервером();
КонецПроцедуры
&НаСервере
Процедура ЗавершитьСеансыБСПСервером()
КластераАдмин = АдминистрированиеКластера.ПараметрыАдминистрированияКластера();
КластераАдмин.АдресАгентаСервера = "localhost";
ИБАдмин = АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера();
ИБАдмин.ИмяВКластере = "base1c"; // имя базы в кластере;
ИБАдмин.ИмяАдминистратораИнформационнойБазы = "admin"; // пользователь
ИБАдмин.ПарольАдминистратораИнформационнойБазы = "****"; // пароль пользователя
СеансыИБ = АдминистрированиеКластераCOM.СеансыИнформационнойБазы(КластераАдмин, ИБАдмин);
Для Каждого Сеанс Из СеансыИБ Цикл
Если НЕ Сеанс.ИмяПользователя = "admin" Тогда
Фильтр = Новый Структура("ИмяПользователя");
Фильтр.ИмяПользователя = Сеанс.ИмяПользователя;
АдминистрированиеКластераCOM.УдалитьСеансыИнформационнойБазы(КластераАдмин, ИБАдмин, Фильтр);
КонецЕсли;
КонецЦикла
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник