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

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

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

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

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

  1. Потеря сетевых пакетов при широковещательном поиске (Broadcast): По умолчанию клиент 1С ищет ключ с помощью широковещательных UDP-пакетов через порт 475. При нестабильном соединении (особенно при подключении клиентов по Wi-Fi) пакет об освобождении дескриптора сессии теряется, и служба считает сеанс активным.
  2. Энергосбережение сетевых карт и USB-портов: Микроразрывы питания USB-порта с ключом или перевод сетевой карты в режим энергосбережения вызывают разрыв сессии, после чего служба не может корректно завершить дескриптор.
  3. Наличие нескольких сетевых интерфейсов на сервере лицензирования: Если на компьютере с ключом активно несколько сетевых адаптеров, VPN-соединений или виртуальных мостов гипервизоров, служба может отвечать клиентам с непредназначенного IP-адреса.
  4. Тайм-ауты протокола: Внутренний механизм проверки активности клиента (Keep-Alive) в службе HASP LM при разрыве связи освобождает лицензию только по истечении таймаута (от 2 до 10 минут). Если пул лицензий исчерпан, зайти в базу повторно до истечения этого интервала невозможно.

Решение 1: Прямая адресация ключа через файл nethasp.ini

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

Разберем по шагам порядок настройки клиентских ПК:

  1. Перейдем в каталог конфигурационных файлов платформы 1С:Предприятие (обычно это C:\Program Files\1cv8\conf или C:\Program Files (x86)\1cv8\conf).
  2. Откроем или создадим файл с именем nethasp.ini.
  3. Настроим секцию [NH_COMMON] и [NH_TCPIP], отключив широковещательный опрос и неиспользуемые сетевые протоколы (IPX, NetBIOS), и пропишем статический IP-адрес сервера с ключом:

[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.100
NH_USE_BROADCAST = Disabled
NH_SERVER_NAME = HASP_SERVER
NH_SESSION = 5
NH_SEND_RCV = 5

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

Решение 2: Автоматизация перезапуска службы HASP Loader командным файлом

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

Посмотрим на пример командного файла (батника), который можно добавить в «Планировщик заданий Windows» (Task Scheduler) для выполнения в нерабочие часы или по расписанию в течение дня:


@echo off
echo ======================================= >> C:\scripts\hasp.log
echo Start restart: %DATE% %TIME% >> C:\scripts\hasp.log

sc stop "HASP Loader" >> C:\scripts\hasp.log 2>&1
timeout /t 10 /nobreak > nul
sc start "HASP Loader" >> C:\scripts\hasp.log 2>&1

echo Stop restart: %DATE% %TIME% >> C:\scripts\hasp.log

Разберем важные моменты при настройке планировщика:

  1. Запуск скрипта должен производиться с наивысшими правами от учетной записи с правами локального администратора (SYSTEM или учетной записи администратора домена).
  2. Интервал паузы между остановкой и запуском службы через timeout рекомендуется задавать от 5 до 15 секунд, чтобы служба успела полностью выгрузить из памяти занятые дескрипторы.
  3. Если служба периодически не запускается автоматически, необходимо настроить действия при сбое в свойствах самой службы Windows (вкладка «Восстановление» — «Перезапуск службы»).

Решение 3: Оптимизация сетевых параметров и оборудования

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

  1. Перевод рабочих мест с Wi-Fi на проводную сеть: Беспроводные соединения подвержены затуханию сигнала, джиттеру и потерям UDP-пакетов. Работа с файловой базой данных 1С и сетевыми ключами HASP по Wi-Fi не рекомендуется. Переключение клиента на кабель Ethernet исключает внезапные обрывы сеансов.
  2. Отключение энергосбережения в диспетчере устройств: В свойствах сетевого адаптера и «Корневого USB-концентратора» на компьютере с ключом снимите флаг «Разрешить отключение этого устройства для экономии энергии».
  3. Настройка файла nhsrv.ini на сервере лицензий: В каталоге установки службы (где находится nhsew32.exe) можно разместить файл nhsrv.ini, ограничив прослушивание только протоколом TCP/IP и конкретным локальным адресом:

[NHS_IP]
NHS_USE_UDP = enabled
NHS_USE_TCP = enabled
NHS_IP_port_number = 475

[NHS_IPX]
NHS_USE_IPX = disabled

[NHS_NETBIOS]
NHS_USE_NETBIOS = disabled

Решение 4: Публикация файловой информационной базы на веб-сервере

Рассмотрим радикальный способ решения проблем с сетевыми ключами при наличии удаленных или Wi-Fi клиентов. Файловую базу можно опубликовать на локальном веб-сервере (Internet Information Services (IIS) или Apache).

При таком подходе пользователи подключаются к базе через тонкий клиент 1С или веб-браузер по протоколу HTTP/HTTPS. Лицензию сетевого ключа HASP расходует веб-сервер на локальном компьютере, полностью устраняя сетевой трафик HASP и проблемы с широковещательным опросом по беспроводным каналам связи.

← На главную