Почему 1С пишет «Не обнаружено свободной лицензии» при наличии свободных ключей?

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

Ситуация, когда при запуске 1С:Предприятия возникает ошибка «Не обнаружено свободной лицензии», хотя мониторинг аппаратных ключей (например, Aladdin Monitor) показывает наличие свободных слотов, является классической проблемой для систем со смешанным типом лицензирования. Разберем подробно, почему это происходит, как 1С на самом деле ищет лицензии и какие настройки необходимо проверить для стабильной работы системы.

Анализируем лог поиска лицензии

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

  1. «nethasp.ini: ..., прочитан успешно, ORGL8 Сетевой, установлен, свободные лицензии закончились» — это означает, что сетевой аппаратный ключ (HASP) был найден, но все его лицензии уже распределены между пользователями.
  2. «Warning=129» — это специфический код, указывающий на проблемы с сетевым поиском менеджера лицензий по протоколу UDP. Скорее всего, поиск шел через широковещательный запрос (broadcast), который мог быть заблокирован.
  3. «Выдача клиентских лицензий сервером 1С:Предприятия запрещена» — критически важная настройка. Если у вас есть программные лицензии, установленные на сервере, 1С не сможет их использовать, пока эта опция не будет включена в свойствах информационной базы.

Различие в логике подсчета: Сервер против HASP License Manager

Одной из главных причин «несоответствия» данных в мониторе и реальности является разная логика расхода лицензий. Разберем этот механизм подробнее:

HASP License Manager (аппаратный ключ): Выдает лицензию на рабочую станцию (учитывается IP-адрес или имя компьютера). Это означает, что один пользователь может запустить на своем компьютере неограниченное количество сеансов 1С (например, Бухгалтерию, ЗУП и УТ одновременно), и при этом будет занята всего одна аппаратная лицензия.

Сервер 1С:Предприятия: Если лицензии раздает сервер (что обязательно для программных лицензий), он работает по принципу «один сеанс — одна лицензия». Если тот же пользователь откроет три окна 1С, сервер спишет три лицензии из общего пула. Именно поэтому в консоли администрирования вы можете видеть 17 занятых сеансов, в то время как аппаратный монитор будет показывать, что занято всего 5-6 лицензий по рабочим местам. Для контроля числа открытых окон и экономии лицензий можно использовать инструмент для ограничения количества сеансов пользователей базы 1С.

Настройка файла nethasp.ini для исключения ошибок поиска

Когда 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С обращаться напрямую к менеджеру лицензий, минуя поиск по всей подсети, что часто решает проблему нестабильного обнаружения ключа.

Особенности программных лицензий, привязанных к HASP

Проанализируем ситуацию, упомянутую в теме: программные лицензии активированы с привязкой к аппаратному ключу. Это гибридный режим, который имеет свои «подводные камни»:

Порядок поиска лицензий платформой

Выясним, в какой последовательности 1С ищет ключ. Этот порядок жестко зашит в платформу:

  1. Локальный аппаратный ключ: Проверяется наличие USB-заглушки непосредственно в системном блоке пользователя.
  2. Локальная программная лицензия: Поиск файлов программных лицензий (*.lic) на компьютере пользователя.
  3. Сетевой аппаратный ключ: Обращение к HASP License Manager через сеть (согласно настройкам nethasp.ini).
  4. Лицензия сервера 1С: Если все предыдущие шаги не дали результата, клиент запрашивает лицензию у сервера 1С:Предприятия.

Важный нюанс: Если на шаге 3 система находит сетевой ключ, но в нем 0 свободных лицензий, она может выдать ошибку «Лицензии закончились», не переходя к шагу 4. Это часто происходит в старых версиях платформы или при специфических настройках конфигурации.

Почему Aladdin Monitor может вводить в заблуждение?

Рассмотрим причины, по которым монитор показывает свободные лицензии, а 1С их не видит:

1. «Зомби-сессии»: Если сеанс 1С был завершен некорректно (вылет программы, обрыв связи), менеджер лицензий HASP может удерживать лицензию до 10-20 минут, ожидая таймаута. В мониторе она может отображаться как активная, но не всегда доступная для нового подключения.

2. Захват лицензий сервером: Если сервер 1С сам забирает лицензии из ключа для последующей раздачи пользователям, в мониторе эти лицензии будут числиться за IP-адресом сервера. При этом сам сервер может их уже «раздать» программным клиентам, и свободных слотов фактически не останется.

Рекомендации по диагностике и решению

Для окончательного решения проблемы рекомендуем выполнить следующие действия:

  1. В консоли «Администрирование серверов 1С:Предприятия» перейдем в раздел «Сеансы». Добавим колонку «Лицензия». Это единственный достоверный способ увидеть, какой именно сеанс занял конкретную лицензию (будет указан серийный номер ключа или путь к файлу лицензии).
  2. Убедимся, что в свойствах информационной базы включена опция «Разрешить выдачу лицензий сервером». Это позволит серверу объединять пул аппаратных и программных лицензий.
  3. Если необходимо, чтобы пользователи не «съедали» по несколько лицензий, настроим их подключение через Terminal Server. В терминальном режиме (если лицензии раздает сервер 1С) также действует правило «один сеанс — одна лицензия», но это позволяет более централизованно управлять подключениями.
  4. Если в сети несколько ключей одной серии (например, два ключа ORGL8 на 10 пользователей), они не суммируются автоматически на одном менеджере лицензий. Чтобы использовать оба, их нужно разнести на разные физические серверы и прописать оба IP-адреса в nethasp.ini.

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

← На главную