При работе с платформой 1С:Предприятие 8.3 системные администраторы часто сталкиваются с парадоксальной ситуацией: клиент-серверные базы (на MS SQL или PostgreSQL) работают исправно, а файловые базы на тех же рабочих станциях наотрез отказываются видеть сетевую лицензию. Рассмотрим причины этого явления и разберем пошаговые методы решения проблемы.
Прежде чем приступать к правке конфигурационных файлов, проанализируем, почему возникает такая избирательность. В клиент-серверном варианте (SQL) за раздачу лицензий может отвечать сервер 1С:Предприятия. Он сам обращается к ключу защиты и «выдает» лицензию клиентскому сеансу. В этом случае клиенту не нужно «видеть» ключ в сети — за него это делает сервер.
В файловом режиме сервера приложений 1С не существует. База — это просто файл 1Cv8.1CD в сетевой папке. В этом режиме клиентское приложение 1cv8.exe вынуждено самостоятельно искать лицензию в локальной сети. Если механизмы широковещательного поиска (Broadcast) заблокированы или настроены некорректно, файловая база не получит доступ к ключу, даже если он исправно работает для SQL-версий.
Это самый эффективный метод решения проблемы. Выясним причину: по умолчанию 1С ищет ключ защиты с помощью широковещательного запроса по протоколу UDP. Если клиент и сервер находятся в разных подсетях или широковещательные пакеты блокируются антивирусом/брандмауэром, поиск завершится неудачей. Нам необходимо принудительно указать адрес сервера лицензий.
Найдем файл nethasp.ini. Обычно он располагается в папке C:\Program Files\1cv8\conf\ (или C:\Program Files (x86)\1cv8\conf\). Рассмотрим пример правильной настройки секции [NH_TCPIP]:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
;; Указываем IP-адрес сервера, где установлен USB-ключ и запущен HASP LM
NH_SERVER_ADDR = 192.168.1.10
;; Отключаем широковещательный поиск для ускорения и стабильности
NH_USE_BROADCAST = Disabled
;; Указываем порт (по умолчанию 475)
NH_TCPIP_METHOD = TCP
NH_SESSION_HOOK = Enabled
После внесения изменений обязательно сохраним файл и перезапустим 1С. Указание конкретного NH_SERVER_ADDR заставляет платформу обращаться по конкретному адресу, игнорируя проблемы сетевого окружения.
Если правка клиентского файла не помогла, проанализируем настройки самого HASP License Manager (LM) на сервере. Рядом с исполняемым файлом менеджера лицензий (или в системной папке драйвера) должен находиться файл nhsrv.ini. Посмотрим на критически важные параметры, которые обеспечат стабильную работу файловых баз:
[NHS_SERVER]
;; Увеличиваем лимит пользователей, если ключ большой (например, на 250+ лицензий)
NHS_USERLIST = 500
;; Присваиваем уникальное имя серверу лицензий
NHS_SERVERNAMES = LM_SERVER_MAIN
[NHS_IP]
;; Включаем поддержку обоих протоколов для надежности
NHS_USE_UDP = enabled
NHS_USE_TCP = enabled
NHS_IP_portnum = 475
Важный момент: если в вашей сети работает несколько ключей HASP, каждому менеджеру лицензий в файле nhsrv.ini нужно присвоить уникальное имя через параметр NHS_SERVERNAMES. Это исключит конфликты при ответе на запросы клиентов.
Выясним, не блокирует ли система безопасности передачу данных. Для работы сетевого ключа HASP необходимо открыть порт 475. Причем важно понимать, что используются оба протокола: UDP для поиска и TCP для поддержания сессии. Рассмотрим необходимые действия:
hasplms.exe (служба Sentinel LDK-License Manager) в список исключений брандмауэра и антивируса.В некоторых случаях проблема вызвана «хвостами» от старых версий драйверов или конфликтующими эмуляторами. Проанализируем алгоритм полной очистки системы, который помогает, когда стандартная переустановка бессильна:
HASP, HLServer, Sentinel.haspdinst.exe -purge.haspnt.sys и hardlock.sys из папки C:\Windows\System32\drivers\.Если вы используете не USB-ключ, а программные лицензии (пин-коды), ситуация меняется. Проанализируем важный нюанс: многопользовательская программная лицензия, активированная на сервере, недоступна для обычного тонкого или толстого клиента, который открывает файловую базу по сети через SMB (общую папку).
Для программных лицензий и файловых баз есть два пути:
IIS или Apache, лицензию будет раздавать модуль веб-сервера. В этом случае клиенты смогут работать через веб-браузер или тонкий клиент по протоколу HTTP/HTTPS, используя серверные лицензии.Таким образом, для решения проблемы «невидимости» лицензий в файловом режиме чаще всего достаточно правильно настроить nethasp.ini на клиентских ПК, указав прямой IP-адрес сервера и отключив широковещание. Это гарантирует, что запрос лицензии дойдет до менеджера HASP кратчайшим путем, минуя ограничения сетевой инфраструктуры.