Что делать, если пользователи не видят лицензии 1С и перезагрузка сервера не помогает

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

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

Проанализируем симптомы и типичную ошибку

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


Поиск лицензии на клиенте:
Файл программной лицензии не найден
локальный ключ недоступен: Status=0, ORGL8 Локальный, не установлен
nethasp.ini: C:/Program Files/1cv8/conf/nethasp.ini, прочитан успешно, 
ошибка соединения с менеджером лицензий: Net Status=0, System Error=0, Warning=15

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

Выясним причину: почему перезагрузка не помогает?

Многие администраторы полагают, что команда Restart-Service или полная перезагрузка ОС должна обнулить все состояния. Однако в современных версиях 1С (начиная с 8.3.15 и выше) реализован механизм обеспечения отказоустойчивости и сохранения состояния сеансов. Информация о подключениях к базам данных сохраняется в специальных файлах в каталоге описания кластера (обычно это папка snccntx внутри srvinfo).

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

Пошаговое решение проблемы

Рассмотрим алгоритм действий, который гарантированно освободит лицензии и позволит пользователям зайти в базу:

  1. Запустим консоль администрирования кластера серверов 1С. Перейдем в раздел «Информационные базы», выберем нужную базу и откроем ветку «Сеансы».
  2. Проанализируем список сеансов. Обратим внимание на колонку «Время последнего захвата СУБД» или «Активность». Если вы видите сеансы, которые висят с раннего утра или со вчерашнего дня, — это главные кандидаты на удаление.
  3. Удалим зависшие сеансы. Выделим подозрительные записи, нажмем правую кнопку мыши и выберем «Удалить». Обратите внимание, что иногда требуется принудительное завершение через контекстное меню.
  4. Остановим службу агента сервера 1С. Используем оснастку services.msc или командную строку (net stop "1C:Enterprise 8.3 Server Agent").
  5. Очистим временные файлы (опционально). Если удаление сеансов через консоль не помогло, необходимо зайти в каталог reg_1541 и временно переместить содержимое папки snccntx. Это заставит сервер «забыть» о старых соединениях.
  6. Запустим службу агента сервера. После запуска rmngr (Cluster Manager) пересчитает доступные лицензии заново, исходя из реально активных подключений.

Настройка автоматической очистки сеансов

Чтобы не заниматься ручной очисткой, настроим параметры кластера для автоматического управления жизненным циклом сеансов. Рассмотрим основные параметры, которые нам помогут:

Также важно проверить настройки Keep Alive на уровне операционной системы. Если настройки ОС слишком консервативны, сервер может часами ждать ответа от несуществующего клиента. Рекомендуется установить KeepAliveTime в реестре Windows на значение около 15–30 минут.

Различие между Client-side и Server-side выдачей лицензий

Выясним, как именно настроена ваша база. В консоли администрирования в свойствах информационной базы есть флаг «Разрешить выдачу лицензий сервером 1С».

Если этот флаг включен, то лицензию выдает процесс rmngr. В этом случае один пользователь, открывший три разные базы на одном сервере, может занять три разные лицензии (если не настроена группировка). Именно в этом режиме «зависшие» сеансы наиболее опасны, так как они напрямую уменьшают доступный остаток в пуле сервера.

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

Заключение и рекомендации

Мы выяснили, что перезагрузка сервера — это не панацея, если механизмы восстановления состояния 1С сохраняют данные о битых сеансах. Совместная работа системного администратора по настройке параметров Keep Alive и правильная конфигурация свойств информационной базы позволяют свести подобные сбои к минимуму.

В случае повторения проблемы всегда начинайте диагностику с консоли администрирования 1С, проверяя количество сеансов относительно общего количества купленных лицензий. Если количество сеансов в консоли превышает число лицензий — очистка сеансов и последующий перезапуск службы 1C:Enterprise 8.3 Server Agent станет самым быстрым способом вернуть пользователей к работе.

← На главную