Почему 1С 8.3 не видит сетевой ключ защиты HASP и как настроить nethasp.ini для нескольких серверов?

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

При обслуживании инфраструктуры 1С:Предприятие системные администраторы часто сталкиваются с ситуацией, когда после обновления платформы (например, на версию 8.3.10 и выше) у пользователей начинает плавающе возникать ошибка «Не обнаружен ключ защиты программы». При этом сетевые USB-ключи HASP исправно отображаются в утилите Aladdin Monitor, перезагрузка ПК пользователя не дает эффекта, а прописывание другого IP-адреса сервера в файле nethasp.ini помогает лишь временно.

Проанализируем причины такого поведения платформы 1С 8.3 и разберем по шагам, как правильно настроить конфигурационные файлы клиентов и серверов лицензий для надежного получения лицензий.

Выясним причины нестабильного поиска аппаратных ключей HASP

Рассмотрим стандартную схему: в организации установлены три аппаратных ключа защиты (например, два ключа по 50 пользователей и один на 100) на трех разных серверах со статическими IP-адресами. Если на рабочих местах пользователей в файле nethasp.ini указан только один конкретный IP-адрес сервера, возникают следующие риски:

  1. Конфликт ключей одинаковой емкости: Служба HASP License Manager при наличии в одной сети двух ключей одинакового номинала (50 и 50 пользователей) без явного указания имен серверов может некорректно идентифицировать источник лицензий.
  2. Потеря пакетов по протоколу UDP: По умолчанию клиент HASP пытается опрашивать менеджер лицензий через широковещательные запросы или протокол UDP (порт 475). При сетевых задержках или кратковременных сбоях пакеты теряются, и платформа 1С считает, что ключ недоступен.
  3. Исчерпание свободных лицензий на выбранном сервере: Если в nethasp.ini прописан только один IP, клиент обращается исключительно к нему. Когда на этом сервере заканчиваются свободные лицензии, клиент 1С не пытается автоматически опросить другие серверы сети.
  4. Обновление платформы и изменение путей EXE-файлов: После установки новой версии 8.3 платформа запускается из новой директории (например, C:\Program Files\1cv8\8.3.10.2561\bin). Клиент считывает файл nethasp.ini именно из каталога текущей исполняемой версии, где настройки могли остаться по умолчанию.

Решение 1: Настройка файлового конфигуратора nethasp.ini на рабочих местах

Разберем основной способ устранения проблемы — указание списка всех серверов лицензий и переключение работы на надежный протокол TCP.

Файл nethasp.ini должен располагаться в каталоге bin той версии платформы, которая используется для запуска (для 32-разрядной платформы — C:\Program Files (x86)\1cv8\8.3.X.X\bin, для 64-разрядной — C:\Program Files\1cv8\8.3.X.X\bin), либо в каталоге C:\Program Files\1cv8\conf для применения ко всем версиям сразу.

Выполним следующую настройку файла nethasp.ini:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11, 192.168.1.12
NH_TCPIP_METHOD = TCP
NH_USE_BROADCAST = Disabled

Посмотрим на ключевые параметры этой настройки:

  1. NH_SERVER_ADDR — перечисляем через запятую IP-адреса всех трех серверов, на которых установлены USB-ключи. Клиент 1С будет последовательно опрашивать указанные адреса в поисках свободной лицензии.
  2. NH_TCPIP_METHOD = TCP — принудительно переводим обмен данными с UDP на TCP, что гарантирует доставку пакетов и исключает ошибки из-за сетевых таймаутов.
  3. NH_USE_BROADCAST = Disabled — отключаем широковещательные запросы в сеть, что сокращает время поиска ключа и снижает нагрузку на сеть.

Решение 2: Настройка уникальных имен менеджеров лицензий в nhsrv.ini

Если в сети используются два ключа одинаковой емкости (например, два ключа по 50 пользователей), необходимо развести службы HASP License Manager по уникальным именам. В противном случае клиенты будут путать службы между собой.

Разберем по шагам настройку серверов ключей:

  1. На каждом сервере с USB-ключом найдем файл конфигурации службы HASP LM — nhsrv.ini (обычно находится в папке со службой License Manager).
  2. В секции [NHS_SERVER] зададим уникальное имя сервера с помощью параметра NHS_SERVERNAMES.

Пример настройки для Сервера №1:


[NHS_SERVER]
NHS_SERVERNAMES = HASP_SRV_1

Пример настройки для Сервера №2:


[NHS_SERVER]
NHS_SERVERNAMES = HASP_SRV_2

После внесения изменений перезапустим службу HASP Loader (nhsrvice) на каждом сервере.

Теперь на рабочих местах пользователей в файле nethasp.ini пропишем эти имена в параметре NH_SERVER_NAME:


[NH_TCPIP]
NH_SERVER_NAME = HASP_SRV_1, HASP_SRV_2, HASP_SRV_3

Решение 3: Передача функции выдачи лицензий серверу 1С:Предприятия

Если в организации используется клиент-серверный вариант работы 1С, наиболее эффективным решением будет централизованная раздача лицензий сам сервер 1С:Предприятия.

В этом случае клинетам больше не требуется прямой доступ по сети к службе HASP License Manager и локальная настройка файлов nethasp.ini. Сервер 1С сам забирает лицензии с ключей защиты и распределяет их по пользовательским сессиям.

Чтобы включить этот режим, выполним следующие действия:

  1. Откроем консоль Администрирование серверов 1С:Предприятия.
  2. Перейдем в свойства информационной базы.
  3. Установим флаг «Разрешить выдачу лицензий сервером 1С:Предприятия» в значение Да.
  4. На самом сервере 1С:Предприятия убедимся, что служба имеет доступ к ключам (или в файле nethasp.ini на сервере 1С прописаны IP-адреса серверов ключей).

Профилактические настройки оборудования и Драйверов

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

  1. Отключение энергосбережения USB: В Диспетчере устройств на серверах с ключами в свойствах всех «USB-корневых концентраторов» и «Корневых USB-гибких концентраторов» перейдем на вкладку «Управление электропитанием» и снимем галочку «Разрешить отключение этого устройства для экономии энергии».
  2. Обновление драйвера HASP: Обновим драйвер Sentinel HASP на серверах ключей до актуальной версии с помощью утилиты командной строки: haspdinst.exe -i
  3. Очистка кэша платформы: Если у конкретного пользователя продолжают возникать сбои, очистим локальный кэш платформы 1С в каталогах %LOCALAPPDATA%\1C\1Cv8 и %APPDATA%\1C\1Cv8.

Применение комплекса этих настроек — явное указание списка IP-адресов в nethasp.ini, переход на протокол TCP и запуск уникальных имен серверов лицензий — позволяет полностью устранить ошибку «Не обнаружен ключ защиты программы» в 1С 8.3.

← На главную