При организации удаленной работы через протокол RDP (Remote Desktop Protocol) системные администраторы часто сталкиваются с ситуацией, когда клиент «1С:Предприятие» сообщает об отсутствии свободной лицензии или невозможности обнаружить ключ защиты. При этом физический USB-ключ может быть установлен непосредственно в сервер, а веб-клиенты или пользователи локальной сети продолжают успешно работать. Разберем детально, почему возникает данное поведение платформы и как по шагам восстановить доступ к сетевым лицензиям.
Для понимания корня проблемы проанализируем ключевой механизм работы платформы «1С:Предприятие» в терминальном режиме. В обычной локальной сессии Windows клиент 1С может опрашивать USB-порт напрямую на наличие однопользовательского или локального ключа HASP. Однако при запуске приложения внутри сеанса удаленного рабочего стола (RDP) действуют строгие системные ограничения:
Если служба менеджера лицензий не настроена, остановлена или заблокирована брандмауэром, терминальный сеанс не сможет взять лицензию с локального сервера и будет искать другие доступные менеджеры лицензий в подсети.
Выясним частую причину путаницы при установке драйверов. При установке современных драйверов ключей защиты в диспетчере задач Windows появляется процесс hasplms (Sentinel LDK License Manager, порт 1947). Наличие этого процесса гарантирует только распознавание самого USB-устройства на уровне операционной системы (в диспетчере устройств оно отображается как SafeNet Inc HASP Key и SafeNet Inc USB Key).
Однако для раздачи сетевых лицензий 1С классических серий (HASP4 серии ORGL8) работы одного лишь hasplms недостаточно. Обязательно требуется отдельная служба:
nhsrvice.exe (служба Windows) или nhsrvw32.exe (приложение).Если на сервере запущена только служба hasplms, а служба nhsrvice отсутствует, то при выключении вспомогательных компьютеров в сети терминальный сервер останется без раздачи лицензий.
Посмотрим, как клиент 1С определяет адреса компьютеров с менеджерами лицензий. Для явного указания маршрутов поиска ключа используется файл конфигурации nethasp.ini.
Рассмотрим порядок поиска и редактирования файла:
nethasp.ini. Файл обычно располагается в папке conf конкретной версии платформы (например, C:\Program Files\1cv8\8.3.XX.XXXX\bin\conf\nethasp.ini) либо в общесистемном каталоге C:\Program Files\1cv8\conf\.[NH_COMMON] и [NH_TCPIP].NH_SERVER_ADDR содержит корректный список IP-адресов серверов, где физически установлены ключи и запущен HASP LM.Разберем пример правильной конфигурации файла для сервера с IP-адресом 192.168.0.4:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
NH_USE_BROADCAST = Disabled
NH_PORT_NUMBER = 475
NH_SERVER_ADDR = 127.0.0.1, 192.168.0.4
NH_SESSION = 5
NH_SEND_METHOD = UDP
Обратите внимание: Отключение широковещательного поиска с помощью NH_USE_BROADCAST = Disabled и явное перечисление IP-адресов через NH_SERVER_ADDR позволяет исключить задержки при запуске 1С и предотвращает ошибки поиска лицензий при нестабильном широковещании в локальной сети.
Выполним следующие шаги для восстановления стабильной работы:
HASP License Manager (nhsrvice). Проверим состояние порта командой в командной строке: netstat -ano | findstr 475.nhsrvice.exe.w3wp.exe или httpd.exe) могут удерживать лицензии в пуле соединений. В случае нехватки слотов на ключе необходимо выполнить перезапуск пула приложений или службы веб-сервера.Выполнив указанную настройку службы nhsrvice и файла nethasp.ini, мы обеспечим гарантированное получение сетевой лицензии как в рабочее время, так и при автономной работе в RDP-сессии.