Завершение работы пользователей

Завершение работы пользователей принудительное либо блокировка доступа к базе на определенный период.

Для работы обработки должны быть выполнены следующие условия:

  • 1. В базе должен быть справочник Пользователи.

  • 2. У элементов справочника Пользователи должен быть реквизит ЗавершениеСеанса.

  • 3. В глобальном модуле должны быть обязательно следующие процедуры:

  • Процедура ПриЗавершенииСеансаСообщить() Экспорт
    Если  Справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекущийПользователь.Наименование).ЗавершениеСеанса = Истина Тогда
    Предупреждение("## " + ?(СокрЛП(ОбщегоНазначения.ПолучитьСообщениеПользователюДляОтключения())<>"",ОбщегоНазначения.ПолучитьСообщениеПользователюДляОтключения().Сообщение, "Для выполнеия сервисных работ необходимо выйти из программы.")+" ##" +Символы.ПС + "До завершения сеанса осталось меньше 1 мин. Сохраните данные!",30);
    КонецЕсли;
    КонецПроцедуры

     

  • Процедура ЗавершениеСеансов() Экспорт
    Если  Справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекущийПользователь.Наименование).ЗавершениеСеанса = Истина Тогда
    Предупреждение("Работа системы будет завершена ("+?(СокрЛП(ОбщегоНазначения.ПолучитьСообщениеПользователюДляОтключения())<>"",ОбщегоНазначения.ПолучитьСообщениеПользователюДляОтключения(), "для выполнения сервисных работ") + ").",30);
    ПрекратитьРаботуСистемы(Ложь,);
    КонецЕсли;
    КонецПроцедуры

     

  • 4. В модуле обычного приложения в процедуре ПриНачалеРаботыСистемы должен быть следующий код:

//Для определения, что нужно завершить сеанс с пользователем (при начале работы сеанса Реквизит Завершение сеанса
у пользователей должен иметь значение Ложь, иначе их сеанс будет завершен)

ПользовательОбъект =ПараметрыСеанса.ТекущийПользователь.ПолучитьОбъект();
ПользовательОбъект.ЗавершениеСеанса = Ложь;
ПользовательОбъект.Записать();

ПодключитьОбработчикОжидания("ПриЗавершенииСеансаСообщить", 70);
ПодключитьОбработчикОжидания("ЗавершениеСеансов", 120);

Порядок работы с обработкой

  • Если необходимо выгнать пользователей из системы на определенный период пользуемся первой закладкой
    "Блокировка пользователей", для этого ставим птичку "Включить блокировку установки соединений", указываем период действия блокировки, Сообщение пользователю, которое будет содержать информацию о необходимости выйти из программы,
    код разрешения доступа (используя этот код можно войти в программу) и нажимаем кнопку Выполнить в верхней части экрана. Пользователи будут оповещены о необходимости выйти из программы, смогут завершить свои дела, сохранить документы и справочники, через указанный интервал смогут зайти в программу и дальше работать.

  • Если какой-то пользователь не смог выйти из программы или нужно завершить сеанс пользователя, которого нет на месте, можно воспльзоваться второй закладкой "Активные пользователи". Нажав кнопку "Обновить" можно просмотреть список активных сеансов, а, отметив птичкой пользователей и нажав кнопку Завершить сеансы, отключить от системы пользователей. При этом пользователям выдается предупреждение, что работа системы будет завершена и есть меньше минуты, чтобы сохранить данные, иначе сеанс оборвется и данные будут утеряны…

Обработка тестировалась на платформе  1С:Предприятие 8.2 (8.2.19.106)

2 Comments

  1. Serg O.

    Какой то велосипед… Для 8.2 в бухгалтерии 2.0 ещё кажется уже был механизм блокировки и выгона.

    Кто мешает пользователю опять перезаходить? Пока одни еще не вышли другие уже заново зайдут… Константу надо уж лучше… А не каждому перезапись делать… Права на изменение справочника пользователей всем давать????? Бред какойто

    Reply
  2. capitan

    (1)Гусары в таких случаях молчат )

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *