Часто в работе программиста когда база работает в файловом варианте ( клиент-серверный вариант не берем там это возможно стандартными механизмами) возникает необходимость завершить работу некоторых пользователей которые например забыли выйти из программы.
Доработка дает возможность принудительно выгонять выбранных нами пользователей в указанную дату и время.
описание доработки:
1. Добавляем в План видов характеристик "ПраваПользователей" в предопределенные данные новый элемент "ЗавершатьРаботуПользователя" тип Булево. Эта настройка появится по каждому пользователю в "настройке дополнительных прав" с помощью этой настройки будем указывать необходимость завершения работы.
2. Добавляем константу "ДатаЗавершенияРаботы" тип Дата состав: Дата + время. В эту константу будем записывать когда необходимо завершить работу.
3. В модуль "Модуль обычного приложения" в процедуру "ПриНачалеРаботыСистемы" добавляем текст
//Проверяем необходимо ли завершать работу этого пользователя
ЗавершатьРаботу = УправлениеПользователями.ПолучитьЗначениеПраваДляТекущегоПользователя (ПланыВидовХарактеристик.ПраваПользователей.ЗавершатьРаботуПользователя,Неопределено);
Если ЗавершатьРаботу.Количество() = 0 Тогда
ВариантЗавершения = ложь;
Иначе
ВариантЗавершения = ЗавершатьРаботу[0].Значение;
КонецЕсли;
Если ВариантЗавершения Тогда
ПодключитьОбработчикОжидания("ЗавершениеРаботыПользователей",30);
КонецЕсли;
4. Добавляем процедуру
Процедура ЗавершениеРаботыПользователей() Экспорт
ДатаЗавершения = Константы.ДатаЗавершенияРаботы.Получить();
Если ЗначениеЗаполнено(ДатаЗавершения) Тогда
Если НачалоДня(ДатаЗавершения) = НачалоДня(ТекущаяДата()) Тогда
Если (Час(ТекущаяДата()))=(Час(ДатаЗавершения)) Тогда
ПрекратитьРаботуСистемы();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
5. Качаем прикрепленную внешнюю обработку для установки даты и времени завершения работы.