Мониторинг неактивности: универсальная подсистема автозавершения неактивных сеансов 1С

24.09.26

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

Знакома ли вам ситуация, когда лицензий 1С не хватает, хотя на деле половина сеансов просто висит без ввода-вывода? Бюджета на покупку новых лицензий нет, пользователи жалуются, а вам приходится вручную играть роль «балансировщика», отключая неактивных (неугодных) пользователей. Если что-то из этого вам знакомо, то моя подсистема автоматического завершения неактивных сеансов, возможно, вам поможет. Мне она сэкономила кучу времени и нервов, надеюсь, что и вам она окажется полезной.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Мониторинг неактивности: универсальная подсистема автозавершения неактивных сеансов 1С
.cfe 73,82Kb
1 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Мониторинг неактивности — подсистема автоматического завершения неактивных пользовательских сеансов для оптимизации использования клиентских лицензий.

 
Дисклеймер

Важно понимать, что данная подсистема не решает корневую проблему нехватки лицензий. Она лишь даёт гибкий инструмент для автоматического завершения сеансов, простаивающих сверх установленного лимита. Рано или поздно бизнесу всё равно потребуется закупка дополнительных лицензий, но это решение поможет выиграть время «здесь и сейчас», корректно освобождая места для активных пользователей без ручного вмешательства администратора.

 
Причины создания

     Всё началось с моего очередного утра: 10:00, кофе ещё горячий, а в трубке уже звучит знакомое: «1С не работает! Не хватает лицензий, мы не можем зайти!»

     Чтобы вы понимали масштаб проблемы, опишу контекст. Я работаю в медицинской клинике полного цикла: регистратура, колл-центр, кабинеты консультаций, диагностическое оборудование, заборные пункты анализов, собственные стационары. В пиковые часы у нас около 200 пользователей, и к 10 утра свободных лицензий, как правило, уже не остаётся.

     А теперь представьте: врач не может начать приём пациента, потому что все места заняты «фантомными» сеансами сотрудников, ушедших на чай, обед или просто по своим делам. Для медицины, да и для любой другой клиентоориентированной организации, такая ситуация абсолютно недопустима.

     Размышляя об этом в моменты ручного поиска того, кого бы «выбить» из 1С, я осознал, что корень зла кроется в двух вещах 😈.

          1. Первый корень — это наша внутренняя «пищевая цепочка» захвата лицензий:

  • Раннее утро: первыми просыпаются регистратура, кассы и посты медсестёр. На некоторых постах 1С работает круглосуточно, и компьютер там уже давно считается частью мебели.
  • Середина утра: подключается младший медицинский персонал, администрация и бухгалтерия. Классический сценарий: сотрудник формирует утренний отчёт в 8:30, уходит пить чай (или домой), а его сеанс в 1С продолжает героически ждать его возвращения, занимая лицензию.
  • В 10:00 часов утра: к работе приступают врачи, и к этому времени у нас зачастую уже имеется проблема с лицензиями.

          2. Второй корень  — специфика работы медицинской клиники.

     Многие врачи (например, хирурги или врачи УЗИ) могут начать заполнять документ приёма пациента, а затем уйти к оборудованию, оставив документ открытым. Для таких ситуаций в нашей организации я заранее настроил функционал автологирования несохранённых данных с возможностью их последующего восстановления. Это спасает, если произошёл разрыв сети, отключилось питание или кто-то (например, я) случайно завершил сеанс в попытке освободить лицензию. Именно из-за этой особенности использование штатного функционала 1С по выбиванию пользоваталей необходимо было настраивать очень аккуратно.

     Ввиду всех этих особенностей я понимал, что мне необходимо написать свой функционал, контролирующий эти процессы. Совершенно случайно я наткнулся на публикацию от Алексея (ссылка: //infostart.ru/1c/tools/931108/), и после его прочтения сразу понял: это именно то, что я искал. Алексею — большое спасибо за идею и отличную базу для старта!

     Писать подсистему с нуля, будучи, по сути, единственным разработчиком с плотным потоком текущих задач, не особо вдохновляло. Поэтому для разработки был использован Cursor: с его помощью функционал и был написан, хотя я тоже активно участвовал в процессе, занимаясь построением архитектуры и рефакторингом. Просьба не кидаться помидорами — моя рука там тоже во многом приложена, в том числе и к написанию этой статьи (написал её полностью сам, хотя, стоит признаться, последнюю редактуру доверил уже другому ИИ — назовём это гибким разделением труда или продуктивным таймменеджментом).

     На создание этого решения ушло 3–4 дня параллельной работы между основными задачами. Пока я занимался делами, Grok генерировал основную логику, а Claude Opus приводил её в божеский вид. Если посчитать стоимость этого удовольствия, мой личный кошелек похудел на 30 долларов, а нейросети сожгли 160 миллионов токенов.

     Буду откровенен: код, конечно, не идеален (он получился слишком раздутым). Но главное — оно работает. Работает быстро, без ошибок и реально закрывает бизнес-задачу.

 
Принцип работы

Структура метаданных

      Структура метаданных расширения представлена на скриншоте ниже.


Обработчики ожидания

      Вся работа решения держится на двух клиентских обработчиках ожидания:

  • Первый обработчик считывает настройки и на их основе проверяет активность пользователя. При этой проверке серверные вызовы отсутствуют — скорость работы очень быстрая и вообще незаметна для пользователя. Для тестирования есть отдельная вкладка «Тестирование производительности». По результатам тестов скорость одиночного обхода составляет около 1 мс (30 открытых форм).

  • Второй обработчик делает серверный вызов для чтения и обновления настроек, которые затем помещаются в глобальную переменную.

Механизм завершения сеанса

      Когда время неактивности истекает, пользователя не выбивает сразу. Вместо этого открывается форма-предупреждение с обратным отсчётом перед закрытием клиента. У меня сейчас значение счётчика этого таймера установлено на 10 минут. Если пользователь не реагирует на предупреждение и таймер доходит до нуля, только тогда сеанс завершается автоматически. Если пользователь закрывает предупреждение, таймер начинает отсчёт заново.


Глобальные переменные

      В глобальном контексте созданы две переменные, через которые обработчики ведут свою работу:

  • МН_НастройкиМониторингаСеанса — хранит текущие настройки мониторинга.
  • МН_СостояниеАктивностиСеанса — хранит состояние активности текущего сеанса.

Роли и права доступа

      Для подключения обработчика проверки активности необходимо обладать либо правами администратора (спасибо БСП, которая убирает все роли, кроме полных прав, если интересна суть см. статью: //infostart.ru/1c/articles/1878677/), либо ролью МН_КонтрольНеактивностиСеанса. Доступ к настройкам и администрированию осуществляется через роль МН_АдминистрированиеМониторинга. Проверки на наличие этих ролей выполняются безусловно — прямо в коде.


Логирование

      Механизм логирования реализован по принципу двойной записи: события дублируются в собственный регистр сведений и в журнал регистрации. При этом в журнал регистрации пишется более легковесный лог — без слепка активности.

      Запись в регистр можно отключить, а для контроля его объема предусмотрено регламентное задание периодической очистки.


Настройки и исключения

      Функционал расширения позволяет гибко настроить абсолютно все тайминги:

  • время неактивности;
  • периодичность обновления настроек;
  • частоту клиентской проверки неактивности;
  • время обратного отсчёта перед завершением сеанса (у меня сейчас 10 минут).

      Слепок неактивности считывается по активным окнам, активному элементу и тексту редактирования. Более подробно об этом можно прочитать в статье Алексея. В моём варианте я отказался от хеширования, поскольку посчитал это излишней нагрузкой, а прямой слепок — более информативным и читабельным.

      Как я уже говорил ранее, самое недопустимое в условиях клиники — это прервать работу врача. Работа монотонная, и пользователь может один и тот же документ заполнять (сидеть в нём) очень долго. Ввиду этого, если у пользователя открыт определенный документ, его вообще нельзя трогать. Поэтому для была предусмотрена возможность исключить из проверки активности:

  • определённые компьютеры (например, у нас это мониторы для посетителей клиники, важные точки постов или рабочие места с клиентской лицензией);
  • определённых пользователей (например, администраторов, программистов, директоров);
  • определённые формы.

Подсистема универсальна и подходит под любую конфигурацию на базе управляемых форм. Может работать под толстым, тонким и веб-клиентом.

  • Режим совместимости расширения: **8.3.16**.
  • Разработка и проверка: платформа **8.3.24.1667**.

      Проверить работоспособность на версии платформы ниже нет возможности — нет лицензии (ловко я придумал да 😊). Если необходимо переработать расширение и уменьшить версию совместимости — пишите, вместе что-нибудь придумаем.

      Тестирование проводилось на конфигурациях:

  • БИТ.Управление медицинским центром КОРП (тонкий клиент);
  • БИТ:Аналитика АТС, редакция 2 (веб-клиент);
  • несколько самописных баз (веб-клиент);
  • Зарплата и управление персоналом, редакция 3.1 (3.1.35.48) 
 
 ВЛОЖЕНИЯ

 

Проверено на следующих конфигурациях и релизах:

  • Зарплата и управление персоналом, редакция 3.1, релизы 3.1.35.48

Вступайте в нашу телеграмм-группу Инфостарт

расширение подсистема мониторинг контроль завершение работы сеансы

См. также

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    79811    407    171    

342

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

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

14640 руб.

29.04.2020    52245    142    164    

96

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

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

17000 руб.

10.11.2023    27873    101    46    

107

Инструменты администратора БД Роли и права Системный администратор Разработчик Пользователь 1С 8.3 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, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.04.2026, версия 1.4.1, работает в 1С:ФРЕШ!

23180 руб.

06.12.2023    24508    83    14    

116

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    3689    9    0    

22

Инструменты администратора БД Корректировка данных Мониторинг Учет документов 1С 8.3 1С:Управление торговлей 10 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

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

6100 руб.

11.06.2026    839    2    0    

4
Для отправки сообщения требуется регистрация/авторизация