Была поставлена задача для смены даты запрета редактирования документов с последующим прекращением сеансов пользователей находящихся в группе пользователей. Скразу скажу, что код по выбросу пользователей взял на просторах нашего сайта и немного допилил под наши хотелки, что она делает:
1. При запуске появляется диалоговое окно которое висит 5 секунд, если на нажимать ничего или нажать нет, тогда произойдет смена даты запрета редактирования и потом выкинет пользователей, если нажать ДА, тогда можно отредактировать параметры и нажать либо по отдельности кнопки, либо Выполнить.
2. Заполнение полей:
а. Сервер = имя сервера SQL
б. База = имя кластера
в. Логин админа и Пароль админа = логин и пароль администратора кластера серверов, если авторизация в SQL пороходит посредством Windows, то поля остаются пустыми
г. Админ базы и пароль админа базы = имя и пароль пользователя с админскими полями.
д. ТЗ Организации = указываем одну или несколько организаций, которые нужны
е. ТЗ Пользователи = указываем группу или несколько групп пользователей, которые нужны для запрета.
ё. Поле Кол. дней, указывает, на сколько нужно сдвинуть дату запрета (делалось на уменьшение даты), было 10.10.14, стало 05.10.14.
3.
Сеансы = Агент.GetInfoBaseSessions(Кластер, ИнформационнаяБаза);
Для каждого Сеанс из Сеансы Цикл
Если нРег(Сеанс.AppID) = "backgroundjob" ИЛИ нРег(Сеанс.AppID) = "designer" Тогда
// если это сеансы конфигуратора или фонового задания, то не отключаем
Продолжить;
КонецЕсли;
//Если Сеанс.UserName = ИмяПользователя()или Сеанс.UserName = "Иванов" Тогда
// // это текущий пользователь
// Продолжить;
//
//КонецЕсли;
Если Сеанс.UserName = Стр.Пользователь Тогда
Агент.TerminateSession(Кластер, Сеанс);
// выкидываем пользователей находящихся в группе пользователей
КонецЕсли;
КонецЦикла;
если требуется выкидывать все же всех пользователей то раскоменчиваем //это текущий пользователь, так же там можно добавить определенных пользователей, например админов, которые пользуются какими-то обработками ночью, чтобы не выкинуло их случайно, и выводим
Агент.TerminateSession(Кластер, Сеанс);
в цикл, если необходимо только по группе выкинуть пользователей, то оставляем все как есть.