Почему не хватает лицензий 1С при наличии свободных мест на аппаратных HASP-ключах и как это исправить?

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

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

Причины возникновения проблемы

Проанализируем основные факторы, вызывающие ложную нехватку лицензий:

  1. Конфликт способов раздачи (Менеджер лицензий HASP против сервера 1С): Если в свойствах информационных баз включена опция «Разрешить выдачу лицензий сервером "1С:Предприятия"», лицензии начинает захватывать сам сервер 1С. При этом сервер расходует по одной лицензии на каждый запущенный сеанс (базу данных), тогда как менеджер лицензий на клиентском компьютере тратит ровно 1 лицензию на рабочее место независимо от числа открытых баз. Кроме того, сервер 1С захватывает лицензии только с одного доступного ему ключа и не умеет динамически перераспределять нагрузку между разнородными сетевыми ключами.
  2. Особенности поиска ключа платформой (Broadcast-запросы): По умолчанию клиент 1С ищет ключ с помощью широковещательного запроса (Broadcast). Первый ответивший менеджер лицензий фиксируется клиентом. Если на этом ключе закончились свободные слоты, платформа не опрашивает следующий ключ в сети, а сразу сообщает об ошибке.
  3. Запоминание последнего успешного сервера ключа: Клиентское приложение сохраняет адрес сервера, с которого в прошлый раз была получена лицензия, и при повторном входе пытается занять слот именно на нём. Если этот ключ уже полностью занят, клиент аварийно завершает поиск.
  4. Зависшие и неактивные сессии: При некорректном завершении работы пользователей (обрыв связи, завершение терминальных сессий, уход ПК в спящий режим) лицензия в менеджере HASP может оставаться заблокированной длительное время.

Шаг 1. Отключение раздачи лицензий сервером 1С

Выясним причину перерасхода: когда лицензии раздаются сервером 1С, одновременное открытие пользователем баз «Бухгалтерия», «ЗУП» и «Документооборот» спишет 3 лицензии вместо 1. Чтобы вернуть подсчёт «одна лицензия на одно рабочее место», необходимо отключить серверную раздачу.

Разберём процедуру изменения настроек в консоли администрирования кластера серверов 1С:

  1. Откроем консоль «Администрирование серверов 1С:Предприятия».
  2. Перейдём в ветку Кластеры -> Информационные базы.
  3. Откроем свойства каждой рабочей информационной базы.
  4. Найдём параметр «Разрешить выдачу лицензий сервером "1С:Предприятия"» и установим значение «Нет».
  5. Применим изменения кнопкой ОК. Изменения вступают в силу для новых сеансов без обязательного перезапуска кластера.

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

Шаг 2. Настройка файла конфигурации nethasp.ini на клиентских машинах

Чтобы исключить широковещательные сбои и настроить корректный последовательный опрос серверов с ключами, настроим конфигурационный файл nethasp.ini. Разберём пример правильного заполнения секций файла:


[NH_COMMON]
NH_TCPIP = Enabled
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_SESSION = 2
NH_SEND_METHOD = UDP

[NH_TCPIP]
NH_USE_BROADCAST = Disabled
NH_SERVER_ADDR = 192.168.1.10, 192.168.1.20
NH_SERVER_NAMES = HLM_SRV1, HLM_SRV2
NH_TCPIP_METHOD = UDP
NH_SESSION = 2
NH_SEND_METHOD = UDP

Рассмотрим назначение ключевых параметров:

  1. NH_USE_BROADCAST = Disabled — принудительно запрещает широковещательный поиск, исключая зависание клиента на первом попавшемся сервере.
  2. NH_SERVER_ADDR — задаёт точные статические IP-адреса или DNS-имена серверов, на которых запущены службы HASP License Manager.
  3. NH_SERVER_NAMES — указывает уникальные сетевые имена менеджеров лицензий (задаются в файле nhsrv.ini на серверах).

Разберём правильное размещение файла nethasp.ini. Чтобы настройки не стирались при обновлении версии платформы 1С, файл рекомендуется размещать не в папке конкретного релиза (bin), а в системных каталогах операционной системы:

  1. Для 32-разрядного клиента 1С на 64-битной Windows: C:\Windows\SysWOW64\
  2. Для 64-разрядного клиента 1С или 32-битной Windows: C:\Windows\System32\
  3. Либо в общеплатформенном каталоге настроек: C:\Program Files\1cv8\conf\

Шаг 3. Тонкая настройка HASP License Manager (nhsrv.ini) на серверах

На каждом сервере, где установлен физический ключ защиты, перейдём в каталог установки службы (обычно C:\Windows\System32\ или каталог установки HASP LM) и отредактируем файл nhsrv.ini.

Посмотрим на пример конфигурации для первого сервера:


[NHS_SERVER]
NHS_SERVERNAMES = HLM_SRV1
NHS_HIGHPRIORITY = 1

[NHS_IP]
NHS_USE_UDP = Enabled
NHS_USE_TCP = Enabled

Для второго сервера укажем уникальное имя HLM_SRV2. Это позволит клиентам однозначно идентифицировать каждый физический ключ в сети.

Также проверим сетевые экраны (брандмауэры): на серверах лицензий должен быть открыт порт 475 для протоколов TCP и UDP.

Шаг 4. Борьба с зависшими сессиями и разделение пользователей

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

  1. Жёсткое закрепление групп пользователей: распределим через групповые политики домена (GPO) разные версии nethasp.ini. Например, бухгалтерия и склад (до 20 человек) опрашивают сервер с 20-пользовательским ключом, а остальные отделы — сервер с 50-пользовательским ключом. Это полностью исключит взаимное вытеснение лицензий.
  2. Автоматический перезапуск службы HASP LM: настроим регулярный перезапуск службы HASP Loader по расписанию (например, ночью через планировщик задач Windows), чтобы сбрасывать потерянные сетевые дескрипторы и фантомные сессии.
  3. Настройка времени жизни сеансов в кластере 1С: в свойствах информационной базы укажем параметры «Время засыпания пассивных сеансов» (например, 1200 сек) и «Время завершения спящих сеансов» (например, 600 сек), чтобы неактивные пользователи не занимали слоты.

Альтернативное решение: объединение (апгрейд) ключей

Если эксплуатация нескольких аппаратных ключей разного номинала вызывает регулярные сложности с балансировкой трафика, наиболее надёжным системным решением является процедура апгрейда в фирме 1С. В рамках регламентной процедуры два ключа на 20 и 50 пользователей сдаются с заменой на один единый ключ на 100 рабочих мест с доплатой разницы стоимости. Это устраняет необходимость распределения списков адресов и полностью решает проблему фрагментации лицензий.

← На главную