Автоматическое отключение пользователя из системы 1С:Предприятие в случае, когда пользователь не работает в запущенном сеансе

27.09.18

База данных - Инструменты администратора БД

Доработка сделана через расширение, платформа 8.3.12.1529 (8.3.11.2867), работает на конфигурациях 1С: ЗУП, БП, КА, ERP и т.д. в общем на всех основных конфигурациях 1С: Предприятие. Часто бывает, что в организации пользователь с утра запускает 1С и уходит на весь день по своим делам, а лицензия израсходована. Для оптимизации использования лицензий на предприятии и сделана данная доработка. Доработка позволяет в автоматическом режиме выбрасывать пользователей из системы 1С если пользователь не работает в системе. По умолчанию проверка активности пользователя происходит через 2 часа после запуска системы, но данный параметр можно настраивать отдельно для каждого пользователя. Если пользователь не активен его сессия закрывается. Расширение работает как в клиент - серверном так и в файловом варианте работы 1С

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

Наименование Файл Версия Размер
Автоматическое отключение пользователя из системы 1С:Предприятие (Режим совместимости "Версия 8.3.10")
.cfe 9,01Kb
28
.cfe 9,01Kb 28 Скачать
Автоматическое отключение пользователя из системы 1С:Предприятие (Режим совместимости "Не использовать")
.cfe 8,96Kb
40
.cfe 8,96Kb 40 Скачать

Скачиваем расширение и проделываем следующие шаги. В приложенных файлах 2 расширения одно с режимом совместимости "Версия 8.3.10", второй файл без режима совместимости для самых "свежих" конфигураций.

Добавляем расширение в конфигурацию

По кнопке "Добавить" загружаем скаченное расширение

Отключаем "галочку" - "Безопасный режим, имя профиля"

Добавляем 2 новых значения в "Дополнительных сведениях"

Для справочника "Пользователи" добавляем 2 новых значения

ВАЖНО!!! Тип значения и имя свойство должно полностью соответствовать тому что указано на скринах

Далее, при необходимости если нужно для какого то из пользователей установить время работы в системе менее или более 2 часов. Заходим в справочник "Пользователя" и для необходимого пользователя устанавливаем значение "Время работы пользователя (минуты)".

Кстати, если у кого то нету доступа к консоли серверов, а пользователя нужно отключить. Можно у необходимого пользователя поменять время начала сеанса (сделать минус 2 часа) и в течении 15 минут пользователь будет отключен от системы. Проверка осуществляется каждые 15 минут.

В момент проверки активности пользователя, выходит информационное окно с вопросом о подтверждении дальнейшей работы пользователя в системе. Если пользователь отвечает утвердительно, он остается работать в системе до следующей проверки активности.

P.S. коллеги если вам понравилась публикация, не забываем проставлять "звездочки" в рейтинге разработки.

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2977    13    1    

34

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3537    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177749    1073    0    

849

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27380    79    146    

59

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61319    88    59    

73

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11746    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31111    31    18    

47

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10986    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Darklight 32 27.09.18 13:53 Сейчас в теме
"Грубое решение" на мой взгляд. С пользователями надо как-то по-деликатнее обходиться. Не многим понравится получать такой вопрос по среди экрана в запарке заполнения какого-то важного документа, со сбросом фокуса ввода, хоть и с периодичностью 2 часа. В управляемом приложении я бы ж/р сначала анализировал - если за последний час там есть события (как в конфигурациях на упр. прил. даже отчеты там оставляют следы), то ничего не спрашивал бы.

Ещё есть разные способы по отслеживанию открываемых окон - если открывались - то не спрашивал бы.

Ну и сам вопрос надо как-то аккуратнее выдавать. Может быть через оповещения пользователю (с версии 8.3.10 как раз можно фидбеки получать при нажатии).

А если уж задаёте вопрос - то пользователь случайно, в запарке, может нажать нет - и закрыть свою сессию с несохранёнными данными.
Зачем "вопрос" - вообще не ясно - пользователь либо реагирует, либо не реагирует - если его нет рядом. Достаточно было и простого предупреждения с таймаутом на закрытие (вопрос с одной кнопкой - т.к. предупреждение не умеет отслеживать событие таймаута).

Кстати, не видно на кнопке "Нет" таймаута - вопрос же будет висеть "вечно"!

Я вот так бы написал алгоритм вопроса (в самом простом виде - написано для контекста формы для простоты):


&НаКлиенте
Процедура ВопросПользователю()
	Кнопки = Новый СписокЗначений();
	Кнопки.Добавить(КодВозвратаДиалога.Да,"Да");
	оп = Новый ОписаниеОповещения("ОтветПользователя",ЭтаФорма);
	ПоказатьВопрос(оп,"Вы тут?",Кнопки,60,,"1С Предприятие ещё нужно?");
КонецПроцедуры

&НаКлиенте
Процедура ОтветПользователя(Результат, ДопПараметры) экспорт
	Если Результат = КодВозвратаДиалога.ТаймаутТогда
		ЗавершитьРаботуСистемы(Ложь); //Хотя, по-хорошему, пользователю нужно дать ещё один шанс подтвердить что он тут по-позже ещё вернётся и будет работать
	КонецЕсли;
        СбросТаймера();
КонецПроцедуры
Показать


Хотя странно - у меня в таком виде тоже не видно таймера отсчета таймаута на кнопке "Да" - хотя реально таймер срабатывает и возвращает результат "КодВозвратаДиалога.Таймаут". При этом, что ещё страннее, если написать так
"ПоказатьВопрос(оп,"Вы тут?",Кнопки,60,,,КодВозвратаДиалога.Да);"
т.е. задать результат для таймаута - всё равно возвращает по таймауту "КодВозвратаДиалога.Таймаут" (но при этом на кнопке возникает отсчет таймаута).

Хотя я бы, всё-таки, использовал оповещение, а не вопрос:

&НаКлиенте
Процедура Команда1(Команда)
	оп = Новый ОписаниеОповещения("ОтветПользователя",ЭтаФорма);
	ЗапускПоследнегоОтсчета();
	ПоказатьОповещениеПользователя("Нажмите, если Вы тут",оп,"Иначе закроем 1С: Предприятие",БиблиотекаКартинок.ТревожнаяКартинка,СтатусОповещенияПользователя.Важное,"Нажмите, если Вы тут");
КонецПроцедуры

&НаКлиенте
Процедура ОтветПользователя(ДопПараметры) экспорт
	СбросТаймера();
КонецПроцедуры
Показать


Но тут сложнее - нет события таймаута - его нужно отслеживать в овертайме счетчика основного таймера!

И пользователю нужно дать ещё 1-2 шанса ответить - а вдруг он в канун того самого момента таймера вышел.... ээээ.... срочно в туалет или его вызвал начальник - а у него важные дела открыты в 1С и не сохранены.... вот возвращается он - а тут .... всё пропало!



Но главное - такое решение, скорее всего, не решает проблему зависших сессий (там, скорее всего и код вопроса то не отработает) - их нужно отдельно на сервере отслеживать и закрывать.
Dream_kz; +1 Ответить
2. mityushov.vv 249 27.09.18 14:37 Сейчас в теме
(1) Много написали)))
Да вариантов реализации много, хотите допилите сами.
Но данное решение работает уже не в одной организации и ничего пользователи не возмущаются.
Наоборот это решение дисциплинирует пользователя при работе с системой. Не надо куда то убегать ничего не сохранив в 1С.
А если пользователь в запарке куда то там нажал, ну надо значит воспитывать таких пользователей что бы в запарке они никуда не нажимали.
Это из области "Я ехала на мерседесе и засмотрелась в телефон и врезалась" Кто в этом виноват производители Мерседеса?

Да вопрос зависших сеансов эта доработка не решает, зависшие сеансы иногда и через консоль серверов "убить" не получается, только помогает перезапуск агента сервера.

Зато эта доработка решает вопрос с нехваткой лицензий очень, очень хорошо, и экономит большие деньги для организации на покупку доп лицензий.

Представляете в той организации где я ранее работал было 800 пользователей, и если они откроют по одному разу 4-5 разных баз и убегут в туалет на 5 часов. Там вообще ни каких лицензий не хватит.
4. Darklight 32 27.09.18 14:52 Сейчас в теме
(2)Это будет больше похоже не на воспитание а на дрессировку. Ну, не мне Вас судить. Не жалуются - ну и хорошо. У меня бы вой был бы на всю компанию! Пользователи тут ого-го с каким норовом есть. Да и простой офисный планктон бы тоже ещё тот писк поднял бы!

А контроллировать многократно занятые лицензии - лучше через web-сервис, и механизм "Внешнее управление сеансами" - через обработку каждого нового сеанса. Там и число сеансов можно ограничить на пользователя (причем по своей логике и классификации пользователей). Вести учет числа занятых лицензий и заниматься поиском как зависших сеансов, так и сеансов с отлучившимися надолго, сотрудниками - когда лицензий станет не хватать.

ну а вообще-то, если пользователи часто открывают по куче баз - лучше использовать аппаратные ключи - экономически более выгодно - на крайняк - ставить лицензии на компьютеры (если, конечно, речь не идёт о работе в web, хотя на лицензии на копьютеры, кажется, и в терминальном сервере тоже нельзя использовать).
graphbuh; +1 Ответить
5. mityushov.vv 249 27.09.18 15:19 Сейчас в теме
(4) У нас как раз вся работа через терминальный сервер и планируется работа через web.
Тем более уже лицензии куплены и стоят на сервере, один ключ. На каждый компьютер покупать нет возможности и так далее.

Тем более эта разработка рассчитана как на работу в клиент-серверном так и в файловом режиме работы 1С. Кстати про это надо написать, забыл.

А тут просто скачивается расширение ставиться на базу 5 минут без каких либо доработок системы и снятия ее с поддержки.

А если у вас дерзкие пользователи, значит ИТ наверное всегда в запарке и всегда во всем виновато))) ну это уже как бы ваши проблемы и не мне вас судить.
6. Darklight 32 27.09.18 15:28 Сейчас в теме
(5)У нас как раз чем больше сеансов открыто - тем нам лучше - дочерним компаниям мы сдаём лицензии в аренду - и считаем макс число открытых сеансов в день по организациям - выставляем в конце месяца счет!
Пока лишь просто ограничились макс числом сеансов на пользователя, и ночью все (не находящиеся в исключении) сеансы закрываются.
3. mityushov.vv 249 27.09.18 14:40 Сейчас в теме
(1) Таймаут кстати у меня 5 минут, можно поменять при желании

&НаКлиенте
Процедура КлиентГлобальныйПриНачалеРаботыСистемы() Экспорт
	
	ПолныеПраваМодуль.УстановитьВремяНачалаСеанса();
	
	ПодключитьОбработчикОжидания("ПроверитьНеобходимостьДальнейшейРаботыПользователя", 900);

КонецПроцедуры

&НаКлиенте
Процедура ПроверитьНеобходимостьДальнейшейРаботыПользователя() Экспорт
	
	ВремяРаботыВБазе = 120;
	ВремяНачалаСеанса = ПолныеПраваМодуль.ПолучитьВремяНачалаСеанса();
	Если ЗначениеЗаполнено(ВремяНачалаСеанса) Тогда 
		ВремяРаботыПользователя = ПолныеПраваМодуль.ПолучитьВремяРаботыПользователяВСистеме();
		Если ВремяРаботыПользователя > 0 Тогда
			ВремяРаботыВБазе = ВремяРаботыПользователя;
		КонецЕсли;
		
		Если ТекущаяДата() - ВремяНачалаСеанса > ВремяРаботыВБазе * 60 Тогда
			ПоказатьОповещениеПользователя("! Завершение работы 1С !");
			
			Режим = РежимДиалогаВопрос.ДаНет;
			Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса",СтандартныеПодсистемыКлиент);
			ПоказатьВопрос(Оповещение, "Система запрашивает необходимость продолжения работы с информационной базой." + Символы.ПС + "Продолжить работу?", Режим, 300);
		КонецЕсли;	
	КонецЕсли;		
	
КонецПроцедуры
Показать
7. yurazyuraz 14.07.23 10:18 Сейчас в теме
В механизм имеет смысл добавить решение , которjt будет отключать пользователей
скажем после 21 часа , для всевозможных технических работ.
8. aleksandr_leiman 89 20.10.23 12:14 Сейчас в теме
При попытке запуска на Бухгалтерия предприятия 3.0.141.39 выдает ошибку
Значение не является значением объектного типа (ЭтоДополнительноеСведение)
{ОбщийМодуль.УправлениеСвойствами.Модуль(1152)}:Если СтрокаТаблицыСвойств.Свойство.ЭтоДополнительноеСведение Тогда
{ОтключитьПользователяЧерез2Часа ОбщийМодуль.ПолныеПраваМодуль.Модуль(31)}:УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(ПараметрыСеанса.ТекущийПользователь, ТаблицаСвойств);
{ОтключитьПользователяЧерез2Часа ОбщийМодуль.КлиентГлобальный.Модуль(4)}:ПолныеПраваМодуль.УстановитьВремяНачалаСеанса();
{ОтключитьПользователяЧерез2Часа ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль(4)}:КлиентГлобальныйПриНачалеРаботыСистемы();
{МодульУправляемогоПриложения(61)}:СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы();
9. mityushov.vv 249 20.10.23 12:17 Сейчас в теме
(8) Добрый день. А дополнительные свойства в конфигурации вообще есть? Вы их заполнили как описано в инструкции?
10. aleksandr_leiman 89 20.10.23 13:38 Сейчас в теме
(9)Да, доп. свойства у справочника Пользователи добавлены. Ошибка та же.
11. mityushov.vv 249 20.10.23 14:14 Сейчас в теме
(10) А на более раннем релизе работало?

Значит 1С на последнем релизе что то исправили. По ходу что то по БСП поменяли
12. mityushov.vv 249 20.10.23 14:18 Сейчас в теме
(10) Если есть возможность выложить ДЕМО базу этого релиза БП 3.0 и прислать мне ссылку для скачивания. Я посмотрю и исправлю. Так же пришлите свой адрес эл.почты что бы на него мог отправить исправленный вариант.

У меня нет подписки на ИТС на БП, есть только обновление. Но это долго обновлять.

Пришлите ссылку на dt-файл демо базы этого релиза я исправлю
13. aleksandr_leiman 89 20.10.23 14:33 Сейчас в теме
(12)Написал личное сообщение
14. mityushov.vv 249 20.10.23 15:24 Сейчас в теме
(13) Читаем внимательно инструкцию какие имена нужно вставлять в доп.свойствах.

Написал личное сообщение еще раз что нужно сделать
17. aleksandr_leiman 89 21.10.23 17:42 Сейчас в теме
(14)Спасибо! Все получилось!
15. roman_1993 3 20.10.23 15:45 Сейчас в теме
А можете доработать свое расширение не для всех пользователей базы, а лишь для определенных пользователей или в
идеале для групп пользователей причем с разной проверкой времени? Скажем группу 1 проверяет каждые 2 часа , а группу 2 каждый час.
16. mityushov.vv 249 20.10.23 15:49 Сейчас в теме
(15) Там есть второе доп свойство в котором вы можете самостоятельно всем проставить через какое время нужно проверять этого пользователя. Можете сами написать обработку и всем проставить.

А если нужно как то особенно доработать, конечно можно все сделать, только это стоит денег.

Если нужно пишите мне в личные сообщения и я доработаю
Оставьте свое сообщение