Ситуация, когда при запуске 1С:Предприятия возникает ошибка «Не обнаружено свободной лицензии», хотя мониторинг аппаратных ключей (например, Aladdin Monitor) показывает наличие свободных слотов, является классической проблемой для систем со смешанным типом лицензирования. Разберем подробно, почему это происходит, как 1С на самом деле ищет лицензии и какие настройки необходимо проверить для стабильной работы системы.
Прежде всего, проанализируем текст ошибки, который выдает платформа. В нем скрыта вся необходимая диагностическая информация. Рассмотрим ключевые фразы из системного сообщения:
Одной из главных причин «несоответствия» данных в мониторе и реальности является разная логика расхода лицензий. Разберем этот механизм подробнее:
HASP License Manager (аппаратный ключ): Выдает лицензию на рабочую станцию (учитывается IP-адрес или имя компьютера). Это означает, что один пользователь может запустить на своем компьютере неограниченное количество сеансов 1С (например, Бухгалтерию, ЗУП и УТ одновременно), и при этом будет занята всего одна аппаратная лицензия.
Сервер 1С:Предприятия: Если лицензии раздает сервер (что обязательно для программных лицензий), он работает по принципу «один сеанс — одна лицензия». Если тот же пользователь откроет три окна 1С, сервер спишет три лицензии из общего пула. Именно поэтому в консоли администрирования вы можете видеть 17 занятых сеансов, в то время как аппаратный монитор будет показывать, что занято всего 5-6 лицензий по рабочим местам. Для контроля числа открытых окон и экономии лицензий можно использовать инструмент для ограничения количества сеансов пользователей базы 1С.
Когда 1С ищет аппаратный ключ, она может тратить значительное время на сканирование сети. Чтобы ускорить процесс и избежать ошибки Warning=129, выполним точную настройку файла nethasp.ini (обычно он находится в папке C:/Program Files/1cv8/conf/).
Отредактируем секцию [NH_TCPIP], чтобы указать системе прямой путь к серверу лицензий:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100 ; Укажите здесь IP-адрес вашего сервера с USB-ключом
NH_PORT_NUMBER = 475 ; Стандартный порт HASP
NH_TCPIP_METHOD = TCP ; Принудительное использование TCP
NH_USE_BROADCAST = Disabled ; Отключаем широковещание, чтобы избежать задержек
Эти параметры заставят 1С обращаться напрямую к менеджеру лицензий, минуя поиск по всей подсети, что часто решает проблему нестабильного обнаружения ключа.
Проанализируем ситуацию, упомянутую в теме: программные лицензии активированы с привязкой к аппаратному ключу. Это гибридный режим, который имеет свои «подводные камни»:
Выясним, в какой последовательности 1С ищет ключ. Этот порядок жестко зашит в платформу:
*.lic) на компьютере пользователя.nethasp.ini).Важный нюанс: Если на шаге 3 система находит сетевой ключ, но в нем 0 свободных лицензий, она может выдать ошибку «Лицензии закончились», не переходя к шагу 4. Это часто происходит в старых версиях платформы или при специфических настройках конфигурации.
Рассмотрим причины, по которым монитор показывает свободные лицензии, а 1С их не видит:
1. «Зомби-сессии»: Если сеанс 1С был завершен некорректно (вылет программы, обрыв связи), менеджер лицензий HASP может удерживать лицензию до 10-20 минут, ожидая таймаута. В мониторе она может отображаться как активная, но не всегда доступная для нового подключения.
2. Захват лицензий сервером: Если сервер 1С сам забирает лицензии из ключа для последующей раздачи пользователям, в мониторе эти лицензии будут числиться за IP-адресом сервера. При этом сам сервер может их уже «раздать» программным клиентам, и свободных слотов фактически не останется.
Для окончательного решения проблемы рекомендуем выполнить следующие действия:
nethasp.ini.Проанализировав все вышеперечисленные факторы, мы можем сделать вывод: ошибка чаще всего кроется в запрете выдачи лицензий сервером или в исчерпании лимита сеансов, который всегда наступает быстрее, чем исчерпание лимита по рабочим станциям в аппаратных ключах.