В процессе эксплуатации информационных систем на платформе 1С часто возникает задача по завершению работы пользователей для выполнения различных регламентных работ. В конфигурациях 1С есть обработка для блокировки работы пользователей. Эта встроенная обработка послужила шаблоном для создания обработки для завершения работы пользователей по расписанию.
Обработка оформлена в виде внешней обработки , подключается в справочнике Дополнительные отчеты и обработки. Содержит две команды.
Первая команда -для работы в интерактивном режиме . Форма обработки выглядит просто - всего две кнопки
Так как обработка в процессе работы создает Comconnector, в информационной базе пришлось создать пользователеля без защиты от опасных действий. Ниже на рисунке указан этот реквизит
Этого же пользователя надо указать в настройке регламентного задания для запуска обработки по расписанию- это- Администрирование- Поддержка и обслуживание - Регламентные и фоновые задания - найти в списке рег заданий Дополнительная обработка : Завершение работы пользователей/ Команда : Завершение работы пользователей
Ниже исходный код команды , которая выполняется в интерактивном режиме.
&НаКлиенте
Процедура Завершить(Команда)
Если Не ЭтоФайловаяБаза() Тогда
ПараметрыАдминистрирования=ПараметрыИБ();
ПодстрокиСтрокиСоединения = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаСоединенияИнформационнойБазы(),";");
Если ПодстрокиСтрокиСоединения.Количество()> 1 и Лев(ПодстрокиСтрокиСоединения[0], 5) = "Srvr=" и Лев(ПодстрокиСтрокиСоединения[1], 4) = "Ref=" Тогда
ИмяСервера = Сред(ПодстрокиСтрокиСоединения[0],7, СтрДлина(ПодстрокиСтрокиСоединения[0]) - 7);
ИмяИБ = Сред(ПодстрокиСтрокиСоединения[1],6, СтрДлина(ПодстрокиСтрокиСоединения[1]) - 6);
Если ПараметрыАдминистрирования.АдресАгентаСервера<>ИмяСервера Тогда
ПараметрыАдминистрирования.АдресАгентаСервера=ИмяСервера;
КонецЕсли;
Если ПараметрыАдминистрирования.ИмяВКластере<>ИмяИБ Тогда
ПараметрыАдминистрирования.ИмяВКластере=ИмяИБ;
КонецЕсли;
КонецЕсли;
СоединенияИБКлиентСервер.УдалитьВсеСеансыКромеТекущего(ПараметрыАдминистрирования);
СоединенияИБКлиент.СохранитьПараметрыАдминистрирования(Неопределено);
СоединенияИБКлиент.ЗавершитьРаботуЭтогоСеанса();
Иначе
Сообщить("Для файловой базы не работает!");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПараметрыИБ()
Возврат Константы.ПараметрыАдминистрированияИБ.Получить().Получить();
КонецФункции
&НаСервере
Функция ЭтоФайловаяБаза()
Возврат ОбщегоНазначения.ИнформационнаяБазаФайловая();
КонецФункции
Обработка проверялась на типовых конфигурациях Зарплата и управление персоналом 3.1 (3.1.2.154) и Бухгалтерия предприятия 3.0 (3.0.48.21) , на платформе 8.3.9.2170. Для файловых баз не работает.