Почему не разрываются сеансы пользователей в 1С и висят лицензии?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Способ 1. Настройка параметров засыпания и завершения сеансов в Конфигураторе

Проанализируем базовые настройки самой информационной базы. В платформе 1С:Предприятие 8.3 предусмотрены встроенные механизмы управления таймаутами неактивных пользователей.

Разберем по шагам, как настроить автоматическое завершение сеансов:

  1. Запустим базу в режиме Конфигуратор с административными правами.
  2. В главном меню откроем раздел Администрирование и выберем пункт Параметры информационной базы....
  3. В появившемся окне найдем настройки времени активности:
    • Время засыпания пассивного сеанса — интервал бездействия пользователя (в секундах), по истечении которого сеанс переходит в спящий режим и освобождает клиентскую лицензию.
    • Время завершения спящего сеанса — время (в секундах), по прошествии которого спящий сеанс окончательно удаляется из памяти сервера.
  4. Установим разумные значения (например, 1200 секунд для засыпания и 86400 секунд для завершения) и сохраним изменения.

Важный нюанс: при слишком агрессивном уменьшении тайм-аутов в клиент-серверном режиме следует учитывать ограничения лицензирования. Если в базе одновременно работает более 10 пользователей, система может затребовать наличие КОРП-лицензии для принудительного управления спящими сеансами.

Способ 2. Оптимизация работы веб-сервера и файла default.vrd

Если пользователи подключаются к базе через тонкий клиент по протоколу HTTP/HTTPS или используют веб-клиент в браузере, проблема может заключаться в некорректной передаче сигнала завершения соединения от веб-сервера (IIS или Apache) к серверу 1С.

Посмотрим, какие параметры необходимо проверить и настроить на веб-сервере:

  1. Настройка отдельного пула приложений в IIS: по умолчанию публикации 1С могут использовать общий пул DefaultAppPool. Выделим каждую базу в отдельный пул приложений, установим для него вариант No Managed Code («Без управляемого кода») и отключим параметр Load User Profile (значение False).
  2. Таймаут сессии в файле публикации: откроем файл конфигурации публикации default.vrd, расположенный в каталоге веб-публикации базы, и проверим атрибут session-timeout (или SessionTimeout). Настроим подходящий интервал завершения веб-сессий.
  3. Корректный выход пользователей: приучим пользователей выходить из 1С с помощью стандартной кнопки «Завершить работу» или меню пользователя, а не просто закрывать окно браузера или вкладку. При простом закрытии вкладки веб-сервер не сразу фиксирует обрыв связи.

Способ 3. Устранение зависаний сторонних процессов и печати

Выясним еще одну частую причину, по которой процесс клиента не может завершиться корректно. При отправке документов на печать в операционной системе Windows запускается подсистема печати, в частности процесс SplWOW64.exe (в 64-разрядных системах при вызове 32-разрядных драйверов). Если этот процесс зависает или медленно выгружается, сессия 1С остается активной.

Также причиной могут быть нерагруженные внешней обработкой DLL-библиотеки или драйверы торгового оборудования. Проанализируем системные процессы на клиентских машинах и сервере терминалов:

  1. Проверим наличие зависших процессов SplWOW64.exe в диспетчере задач при закрытии 1С.
  2. Уменьшим таймаут завершения процесса SplWOW64.exe через системный реестр Windows, задав параметр SplWOW64TimeOut в ветке реестра системной печати.
  3. Установим обновленные драйверы печатных устройств и торгового оборудования, имеющие полноценную поддержку 64-битных систем.

Способ 4. Настройка параметров кластера серверов 1C и TCP Keep-Alive

При кратковременных сетевых сбоях (например, при работе через Wi-Fi или VPN) сетевой стек рабочего процесса rphost может не получить пакеты разрыва связи (TCP FIN/RST). В результате сервер считает клиент активным и удерживает сеанс.

Рассмотрим решения на уровне кластера и ОС:

  1. Параметры кластера 1С: в консоли администрирования кластера серверов 1С откроем свойства кластера и включим опцию Принудительно завершать проблемные процессы, а также настроим допустимый объем памяти и интервал перезапуска рабочих процессов rphost.
  2. Настройка TCP Keep-Alive в реестре сервера: уменьшим интервал проверки активности соединений ОС Windows Server (параметры KeepAliveTime и KeepAliveInterval в ветке HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters), чтобы операционная система быстрее обнаруживала «мертвые» TCP-соединения и сбрасывала их.
  3. Автоматическая очистка через RAS/RAC: настроим регулярный запуск скриптов на PowerShell или Python, которые через службу `RAS` и утилиту `rac` проверяют время неактивности сеансов в кластере и автоматически завершают подвисшие соединения без участия системного администратора.
← На главную