Подсистема автоматизированного завершения сеансов 1С при неактивности пользователей

Опубликовал Павел Макаров (Protey77) в раздел Администрирование - Системное

У многих клиентов на сервере терминалов, особенно крупных, часто возникает проблема нехватки лицензий. Часто это связано с тем, что пользователь в удаленном филиале по тем или иным причинам не завершил свой сеанс. Была поставлена задача автоматически завершать сеансы 1С, неактивные в течении определенного промежутка времени. Решение было частично взято из публикации http://infostart.ru/public/16441/ и переделано как под обычные, так и под управляемые формы.

Как и в источнике (//infostart.ru/public/16441/), решения оформлены в виде подсистемы, подключаемой к любой типовой конфигурации. Подсистема имеет две роли: Администрирование системы простоя и  Проверять простой сеанса.

Пользователь с первой ролью может устанавливать значения констант: Период опроса простоя, Время простоя и Действие при простое. При этом, первые две константы задаются в секундах.

Обработка «Блокиратор». Форма служит для редактирования констант.
В качестве проверяющего инструмента для простоя использован скрипт, предоставленный //infostart.ru/profile/12366/
Порядок установки:
  1. Объедините эту конфигурацию с исходной. Обратите внимание на единственное место, где требуется внести изменения в исходную конфигурацию – это модуль обычного приложения (или модуль управляемого приложения).
  2. Откройте в режиме «Предприятия» обработку «Блокиратор» и заполните настройки.
  3. Установите для нужных пользователей в доступных ролях «Проверять простой сеанса».

В версиях 1.01 добавлены еще две константы: Время начала проверки (имеет формат времени, если заполнена, то будет выбрасывать пользователей не ранее установленного параметра) и Таймаут вывода запроса (устанавливается в секундах и, если он больше нуля, то выводит запрос пользователю перед завершением работы сеанса).

Скачать файлы

Наименование Файл Версия Размер
Обработка сеансов пользователей
.cf 229,31Kb
06.10.16
8
.cf 1,0 229,31Kb 8 Скачать
Обработка сеансов пользователей УФ
.cf 239,46Kb
06.10.16
6
.cf 1,0 239,46Kb 6 Скачать
Версия 1.01 для обычных форм
.cf 231,47Kb
03.02.17
3
.cf 1.01 231,47Kb 3 Скачать
Версия 1.01 для управляемых форм
.cf 244,64Kb
03.02.17
3
.cf 1.01 244,64Kb 3 Скачать

См. также

Комментарии
1. Евгений Игронов (cj512) 26 11.11.16 10:48 Сейчас в теме
А че стандартный способ выкидывания спящих сеансов уже не работает? P.S. настраивается в конфигураторе
2. Юрий Н (graphbuh) 141 01.02.17 09:50 Сейчас в теме
Можно ли доработать эту систему, чтобы выдавала предупреждения о том, что работа будет завершена (на случай, если пользователь просто запустил отчет на формирование и ушел покурить на 2 ч.)
3. Павел Макаров (Protey77) 45 01.02.17 13:29 Сейчас в теме
(2) Сделать можно все. А за дополнительную плату еще больше :)

А с Вашим вопросом, лучше все-таки ввести дополнительную константу типа времени, чтобы отключалась, например, только после 17:00. В результате человек, работающий в вечернее время будет работать, а оставивший сеанс открытым и ушедший домой - будет отключен.
4. Andrey Ju (Kontakt) 12 16.03.17 14:26 Сейчас в теме
(3) актуально. Можно реализовать от какого времени отключать. Например после 19:00
5. Павел Макаров (Protey77) 45 16.03.17 17:38 Сейчас в теме
(4)В версиях 1.01 добавлены еще две константы: Время начала проверки (имеет формат времени, если заполнена, то будет выбрасывать пользователей не ранее установленного параметра)

т.е. уже реализовано.
6. Andrey Ju (Kontakt) 12 17.03.17 07:46 Сейчас в теме
Из за чего может не срабатывать? Платформа на сервере 1С 8.3.8
7. Andrey Ju (Kontakt) 12 17.03.17 08:22 Сейчас в теме
Процедура ПроверитьПростойВРаботеПользователя() кем запускается у Вас?
8. Evgeniy Nikolaenko (DrBlack) 17 17.03.17 09:04 Сейчас в теме
Мы на УПП используем регламентное задание, которое срабатывает раз в сутки (ночью), нас это вполне устраивает, кому интересно, вот код:
Процедура аск_ЗавершениеСеансовПользователей() Экспорт
	ПараметрыАдминистрированияИБ = СоединенияИБ.ПолучитьПараметрыАдминистрированияИБ();
	СоединенияИБ.ОтключитьСоединенияИБ(ПараметрыАдминистрированияИБ);
КонецПроцедуры
...Показать Скрыть

ЗЫ: Да-да-да, всего пару строк, а столько проблем снимают... :)
9. Andrey Ju (Kontakt) 12 17.03.17 10:46 Сейчас в теме
(8) Если кто по ночам работает? Формирует отчеты, запускает обработки на ночь. Как с ними?
10. Andrey Ju (Kontakt) 12 17.03.17 11:50 Сейчас в теме
Добавил в модуль СоединенияИБГлобальный строки. Иначе не не запускалась процедура.

// Выполнить завершение текущего сеанса, если установлена блокировка соединений 
// с информационной базой.
//
Процедура КонтрольРежимаЗавершенияРаботыПользователей() Экспорт

	//+++Блокировка 
//Для проверка роли, не гоняем лишний раз файл на проверку.
	Если РольДоступна("Ст_ПроверятьПростойСеанса")Тогда

	ПараметрыСеанса.Ст_ПревышениеОбработано=Ложь;
	ПроверитьПростойВРаботеПользователя();

КонецЕсли;
	//---
...Показать Скрыть
11. Evgeniy Nikolaenko (DrBlack) 17 17.03.17 12:16 Сейчас в теме
(9) ну я описал частный случай, даже подчеркнув:
нас это вполне устраивает


Мало ли кого это тоже устроит? Решение ведь совсем простое... :)
Оставьте свое сообщение