При обслуживании инфраструктуры 1С:Предприятие системные администраторы часто сталкиваются с ситуацией, когда после обновления платформы (например, на версию 8.3.10 и выше) у пользователей начинает плавающе возникать ошибка «Не обнаружен ключ защиты программы». При этом сетевые USB-ключи HASP исправно отображаются в утилите Aladdin Monitor, перезагрузка ПК пользователя не дает эффекта, а прописывание другого IP-адреса сервера в файле nethasp.ini помогает лишь временно.
Проанализируем причины такого поведения платформы 1С 8.3 и разберем по шагам, как правильно настроить конфигурационные файлы клиентов и серверов лицензий для надежного получения лицензий.
Рассмотрим стандартную схему: в организации установлены три аппаратных ключа защиты (например, два ключа по 50 пользователей и один на 100) на трех разных серверах со статическими IP-адресами. Если на рабочих местах пользователей в файле nethasp.ini указан только один конкретный IP-адрес сервера, возникают следующие риски:
nethasp.ini прописан только один IP, клиент обращается исключительно к нему. Когда на этом сервере заканчиваются свободные лицензии, клиент 1С не пытается автоматически опросить другие серверы сети.C:\Program Files\1cv8\8.3.10.2561\bin). Клиент считывает файл 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
Посмотрим на ключевые параметры этой настройки:
NH_SERVER_ADDR — перечисляем через запятую IP-адреса всех трех серверов, на которых установлены USB-ключи. Клиент 1С будет последовательно опрашивать указанные адреса в поисках свободной лицензии.NH_TCPIP_METHOD = TCP — принудительно переводим обмен данными с UDP на TCP, что гарантирует доставку пакетов и исключает ошибки из-за сетевых таймаутов.NH_USE_BROADCAST = Disabled — отключаем широковещательные запросы в сеть, что сокращает время поиска ключа и снижает нагрузку на сеть.Если в сети используются два ключа одинаковой емкости (например, два ключа по 50 пользователей), необходимо развести службы HASP License Manager по уникальным именам. В противном случае клиенты будут путать службы между собой.
Разберем по шагам настройку серверов ключей:
nhsrv.ini (обычно находится в папке со службой License Manager).[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
Если в организации используется клиент-серверный вариант работы 1С, наиболее эффективным решением будет централизованная раздача лицензий сам сервер 1С:Предприятия.
В этом случае клинетам больше не требуется прямой доступ по сети к службе HASP License Manager и локальная настройка файлов nethasp.ini. Сервер 1С сам забирает лицензии с ключей защиты и распределяет их по пользовательским сессиям.
Чтобы включить этот режим, выполним следующие действия:
Да.nethasp.ini на сервере 1С прописаны IP-адреса серверов ключей).Для предотвращения эпизодических отвалов ключей рекомендуем выполнить дополнительные проверки инфраструктуры:
haspdinst.exe -i
%LOCALAPPDATA%\1C\1Cv8 и %APPDATA%\1C\1Cv8.Применение комплекса этих настроек — явное указание списка IP-адресов в nethasp.ini, переход на протокол TCP и запуск уникальных имен серверов лицензий — позволяет полностью устранить ошибку «Не обнаружен ключ защиты программы» в 1С 8.3.