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

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

При работе с платформой 1С:Предприятие 8.3 системные администраторы часто сталкиваются с парадоксальной ситуацией: клиент-серверные базы (на MS SQL или PostgreSQL) работают исправно, а файловые базы на тех же рабочих станциях наотрез отказываются видеть сетевую лицензию. Рассмотрим причины этого явления и разберем пошаговые методы решения проблемы.

Разберем разницу в механизмах получения лицензий

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

В файловом режиме сервера приложений 1С не существует. База — это просто файл 1Cv8.1CD в сетевой папке. В этом режиме клиентское приложение 1cv8.exe вынуждено самостоятельно искать лицензию в локальной сети. Если механизмы широковещательного поиска (Broadcast) заблокированы или настроены некорректно, файловая база не получит доступ к ключу, даже если он исправно работает для SQL-версий.

Настройка nethasp.ini на стороне клиента

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

Настройка nhsrv.ini на сервере лицензий

Если правка клиентского файла не помогла, проанализируем настройки самого 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 для поддержания сессии. Рассмотрим необходимые действия:

  1. На сервере лицензий создадим входящее правило для порта 475 (UDP/TCP).
  2. Добавим процесс hasplms.exe (служба Sentinel LDK-License Manager) в список исключений брандмауэра и антивируса.
  3. На клиентской машине убедимся, что исходящие соединения на порт 475 также разрешены.

Радикальное решение: Полная очистка и переустановка драйверов

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

  1. Остановим все службы, связанные с защитой: HASP, HLServer, Sentinel.
  2. Удалим компоненты HASP через Панель управления.
  3. Выполним команду очистки драйвера: haspdinst.exe -purge.
  4. В Диспетчере устройств включим отображение скрытых устройств и удалим в разделе «Драйверы устройств не Plug and Play» все пункты с именами Hardlock, Haspnt, Aksfridge.
  5. Удалим вручную файлы haspnt.sys и hardlock.sys из папки C:\Windows\System32\drivers\.
  6. После перезагрузки установим актуальную версию драйвера (например, 8.x или выше) с официального сайта производителя (Thales/Aladdin).

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

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

Для программных лицензий и файловых баз есть два пути:

  1. Терминальный сервер: Если пользователи работают в RDP-сессии на том же сервере, где активирована лицензия, 1С ее увидит.
  2. Публикация на веб-сервере: Если опубликовать файловую базу на IIS или Apache, лицензию будет раздавать модуль веб-сервера. В этом случае клиенты смогут работать через веб-браузер или тонкий клиент по протоколу HTTP/HTTPS, используя серверные лицензии.

Таким образом, для решения проблемы «невидимости» лицензий в файловом режиме чаще всего достаточно правильно настроить nethasp.ini на клиентских ПК, указав прямой IP-адрес сервера и отключив широковещание. Это гарантирует, что запрос лицензии дойдет до менеджера HASP кратчайшим путем, минуя ограничения сетевой инфраструктуры.

← На главную