Почему веб-клиенты 1С не видят аппаратные ключи защиты HASP и как это исправить?

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

При работе с 1С в клиент-серверном режиме через веб-клиент (IIS или Apache/Nginx) часто возникает ситуация: тонкие клиенты успешно подхватывают аппаратные лицензии HASP, расположенные на других рабочих станциях в сети, а веб-клиенты используют только программные лицензии или выдают ошибку о недостатке свободных лицензий. Рассмотрим подробно, почему так происходит, как устроена раздача лицензий для веб-клиентов и как правильно настроить сервер 1С для работы с сетевыми USB-ключами.

Выясним причину: особенности работы веб-клиентов и механизма лицензирования

Разберем механику взаимодействия веб-клиента с системой защиты 1С. В отличие от тонкого клиента, веб-клиент исполняется внутри браузера. У него нет доступа к локальному оборудованию ПК пользователя, драйверам защиты и сетевой службе HASP License Manager.

По этой причине веб-клиент полностью зависит от сервера 1С: лицензию для него всегда получает и выдает сам сервер 1С (параметр «Выдавать лицензии сервером 1С»). Тонкий же клиент при прямой работе в сети может самостоятельно обратиться к HASP License Manager по протоколу NetHASP и взять аппаратную лицензию напрямую с рабочей станции, где установлен USB-ключ.

Кроме того, проанализируем разницу в подсчете лицензий:

  1. Тонкий клиент (при самостоятельной получении): подсчет выполняется на уровне HASP LM по имени компьютера/IP-адресу (одна лицензия на одно рабочее место независимо от числа запущенных сеансов).
  2. Сервер 1С (при раздаче лицензий сервером): подсчет происходит посеансово. Каждый открытый веб-клиент (каждая вкладка) занимает отдельную лицензию.

Основные причины, по которым сервер 1С не видит аппаратные ключи

Проанализируем ситуации, когда сервер 1С не может достучаться до ключей HASP, находящихся на других компьютерах в сети:

  1. Не настроен поиск ключей по сети: служба сервера 1С (обычно usr1cv8) работает в изолированном системном сеансе. Автоматический широковещательный поиск (broadcast) по UDP из-под этой службы часто блокируется или не проходит между разными подсетями (VLAN).
  2. Отключено использование аппаратных ключей в кластере: в свойствах кластера 1С параметр AllowUseHAKey установлен в значение «Ложь».
  3. Блокировка сетевых портов: фаервол на сервере или рабочих станциях блокирует порт 475 (UDP/TCP), который использует HASP License Manager.
  4. Конфликт одинаковых серий ключей: если в сети установлены несколько ключей одной серии (например, два ключа ORGL8 на 50 и 20 пользователей), сервер 1С без точных настроек адресов не сможет корректно опрашивать оба менеджера лицензий.

Шаг 1. Настройка файла nethasp.ini на сервере 1С

Главным решением проблемы является явное указание IP-адресов компьютеров, на которых запущен HASP License Manager. Для этого настроим файл nethasp.ini на сервере 1С.

Расположите файл nethasp.ini в каталоге конфигурационных файлов сервера 1С: обычно это C:\Program Files\1cv8\conf или каталог конкретной версии платформы (например, C:\Program Files\1cv8\8.3.23.1865\bin).

Откроем файл и пропишем в нем настройки секции [NH_TCPIP]:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_USE_BROADCAST = Disabled
NH_SERVER_ADDR = 192.168.1.50, 192.168.1.51

В параметре NH_SERVER_ADDR укажем через запятую IP-адреса рабочих станций, где физически установлены USB-ключи и работает служба HASP License Manager.

Важно: после сохранения изменений необходимо обязательно перезапустить службу 1C:Enterprise 8.3 Server Agent (Агент сервера 1С:Предприятия), так как конфигурация NetHASP считывается сервером только при запуске процессов rphost.

Шаг 2. Проверка настроек кластера серверов 1С

Проверим параметры кластера 1С через консоль администрования:

  1. Откроем консоль администрирования кластера серверов 1С:Предприятия.
  2. Перейдем в свойства нужного кластера.
  3. Убедимся, что флаг «Аппаратные ключи защиты включены» (параметр AllowUseHAKey) установлен в значение «Истина».
  4. В свойствах информационной базы убедимся, что параметр «Выдавать лицензии сервером 1С» установлен в значение «Да».

Альтернативные варианты решения

Если сетевая инфраструктура сложная или возникают частые сбои связи с рабочими станциями, рассмотрим альтернативные подходы:

  1. Перенос USB-ключей на сервер 1С: физически установите аппаратные ключи в USB-порты сервера 1С (или выполните проброс USB-устройств в гипервизор виртуальной машины). В этом случае сервер подхватит лицензии напрямую через локальный драйвер HASP.
  2. Замена аппаратных ключей на программные: обменяйте USB-ключи на программные пин-коды. Программные лицензии привязываются к параметрам сервера и не требуют использования сетевых служб лицензирования.
  3. Использование тонкого клиента по HTTP/HTTPS: если вместо браузера использовать тонкий клиент 1С с подключением к базе через URL веб-сервера (IIS), в настройках подключения тонкого клиента можно включить опцию Использовать аппаратный ключ защиты. Тогда клиент будет забирать лицензию самостоятельно из локальной сети через HASP LM, не расходуя лицензии сервера.
← На главную