В современных инсталляциях 1С:Предприятие часто возникает ситуация, когда в системе одновременно присутствуют и программные лицензии, и аппаратные ключи защиты (HASP). По умолчанию платформа может отдавать приоритет программным лицензиям, выдаваемым сервером 1С. Однако для оптимизации использования ресурсов или при наличии свободных многопользовательских ключей возникает задача принудительно заставить клиентское приложение использовать именно аппаратную лицензию. Рассмотрим подробно, как это реализовать и какие нюансы следует учесть.
Прежде чем переходить к настройкам, разберем, в каком порядке платформа 1С ищет лицензию. Знание этой иерархии поможет понять, почему клиент игнорирует ключ. Стандартный порядок поиска выглядит следующим образом:
HASP License Manager).Если сервер 1С настроен на раздачу лицензий, он может перехватить запрос клиента раньше, чем тот успеет достучаться до сетевого ключа по протоколу UDP. Чтобы изменить это поведение, необходимо выполнить ряд настроек на стороне клиента и, возможно, сервера.
Первым шагом проанализируем настройки запуска. Нам нужно явно указать платформе, что поиск аппаратного ключа обязателен. Это можно сделать двумя способами:
1CEStart.cfg. Обычно он располагается в каталоге %AppData%\1C\1CEstart. Добавим или изменим параметр:
UseHWLicenses=1/UseHwLicenses+Использование ключа /UseHwLicenses+ принудительно включает поиск HASP. Если же вы хотите, наоборот, запретить поиск ключа, используется ключ /UseHwLicenses-.
Если клиент "не видит" ключ в сети, хотя HASP License Manager установлен и запущен на сервере с ключом, нам потребуется отредактировать файл nethasp.ini. Проанализируем, где он должен находиться. Платформа ищет его в папке conf конкретной версии платформы (например, C:\Program Files\1cv8\8.3.21.1622\bin\conf) или в общем каталоге конфигурации C:\Program Files\1cv8\conf.
Рассмотрим пример правильной настройки секции [NH_TCPIP] для ускорения поиска ключа и исключения широковещательных запросов (broadcast), которые часто блокируются маршрутизаторами:
[NH_COMMON]
NH_TCPIP = ENABLED
[NH_TCPIP]
; Указываем конкретный IP-адрес сервера, где установлен USB-ключ
NH_SERVER_ADDR = 192.168.13.12
; Отключаем широковещательный опрос сети
NH_USE_BROADCAST = DISABLED
; Можно ограничить порты, если используется нестандартная настройка
NH_TCPIP_METHOD = UDP
Важно: Основной обмен данными между драйвером HASP и менеджером лицензий идет по протоколу UDP (порт 475). Проверка через telnet (который работает по TCP) может показать, что порт открыт, но лицензия не будет получена, если UDP-трафик заблокирован брандмауэром.
Иногда настройки клиента недостаточно, так как сервер 1С "навязывает" свою программную лицензию. Выясним, как ограничить выдачу лицензий сервером для конкретной информационной базы:
После этого сервер перестанет выдавать лицензии из своего программного пула, и клиент будет вынужден искать либо локальный ключ, либо сетевой HASP через менеджер лицензий.
Проанализируем ситуацию, когда все настройки верны, но лицензия все равно не подхватывается. Существует несколько критических факторов:
HASP LM или программные лицензии..lic), чтобы заставить платформу инициировать новый поиск.Для глубокой диагностики рекомендуется использовать утилиту Aladdin Monitor (AKS Monitor). Она позволяет в режиме реального времени увидеть, видит ли менеджер лицензий ваш USB-ключ, сколько лицензий свободно и с каких IP-адресов подключены пользователи. Если в мониторе ключ не отображается, проблему нужно искать в драйверах или физическом подключении устройства к серверу.
Посмотрим на типичный алгоритм действий при возникновении проблем:
HASP License Manager запущена.nethasp.ini.Таким образом, комбинируя настройки nethasp.ini, параметры запуска /UseHwLicenses+ и управление раздачей лицензий на сервере, мы можем гибко управлять распределением аппаратных и программных ресурсов защиты в инфраструктуре 1С.