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

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

Многие администраторы 1С сталкиваются с ситуацией, когда при наличии физического USB-ключа защиты (например, на 20 пользователей) программа внезапно начинает сообщать об ошибке: Не обнаружено свободной лицензии! При этом в логах сервера мы видим долгий поиск лицензий по локальной сети и множество ошибок соединения с менеджером лицензий. Давайте подробно разберем, проанализируем ситуацию и выясним причину такого поведения платформы.

Назначение USB-ключей HASP по цветам

В первую очередь рассмотрим, за что отвечают различные цвета аппаратных ключей защиты. В нашей ситуации фигурируют красный и зеленый ключи, установленные в один сервер.

  1. Зеленый ключ (маркировка EN8SA) — это локальный аппаратный ключ исключительно для 64-битного сервера 1С:Предприятия. Он позволяет запуститься службе сервера в 64-разрядном режиме. Данный ключ не содержит клиентских лицензий и не раздает их пользователям. Для клиентов он полностью бесполезен.
  2. Красный ключ (маркировка ORGL8, ORG8A, ORG8B) — это сетевой клиентский ключ. Именно он определяет, сколько пользователей смогут одновременно работать с базами 1С. Серии ORG меняются в зависимости от номинала ключа (например, ORG8A обычно идет для номиналов свыше 300 пользователей).
  3. Фиолетовый/малиновый ключ (ENSR8) — аналог зеленого ключа, но предназначенный для 32-битного сервера 1С.
  4. Синий ключ (H4 M1) — локальный клиентский ключ для одного рабочего места.

Таким образом, если сервер перестал пускать пользователей, надеяться на то, что «зеленый ключ раздаст лицензии», ошибочно.

Разница в расходе аппаратных и программных лицензий

Рассмотрим подробнее один из главных вопросов: как 70 человек могли успешно работать, если установлен только один красный ключ на 20 лицензий? Секрет кроется в механике выдачи лицензий.

Если клиентский компьютер получает лицензию по сети от менеджера лицензий HASP LM, то лицензия выдается на физический ПК (или терминальную сессию). В этом случае один сотрудник может запустить на своем компьютере хоть пять разных информационных баз — это израсходует всего одну лицензию из ключа.

Если же лицензию раздает сам сервер 1С:Предприятия (что обязательно происходит при использовании современных программных пин-кодов), то лицензии выдаются на каждый сеанс. Запустил сотрудник три базы — сервер забрал три лицензии. Это часто приводит к резкой нехватке свободных подключений после обновления оборудования или перехода на программные лицензии.

Проблема «фантомных» лицензий и эмуляторов HASP

Проанализируем историю поиска ключей в логе 1С. Если мы видим строки вида:


Информационная база:
Локальный HASP4 ORGL8 10
Сетевой HASP4 ORGL8 20
Сетевой HASP4 ORGL8 50

Это говорит о том, что платформа «помнит» ключи на 10, 20 и 50 мест. Если физически в наличии только один ключ на 20 мест, а ранее в базе работало 70 человек, мы имеем дело с классическим симптомом работы эмулятора аппаратных ключей (например, vusbbus или MultiKey).

Эмуляторы создают в системе виртуальные USB-устройства, которые менеджер лицензий воспринимает как настоящие. Даже после переустановки сервера следы эмулятора могут остаться в реестре Windows, вызывая конфликты с легальными ключами. Для решения этой проблемы необходимо вручную удалить скрытые устройства в Диспетчере задач и вычистить ветки реестра, связанные с виртуальными HASP-устройствами.

Ограничения установки нескольких аппаратных ключей

Если вы решили докупить аппаратные ключи, важно помнить критическое ограничение: в один физический или виртуальный компьютер нельзя устанавливать два сетевых ключа одной серии (например, два красных ключа ORGL8). Служба HASP LM захватит только один из них, а второй будет игнорироваться. Для использования нескольких одинаковых сетевых ключей их нужно физически разнести по разным компьютерам локальной сети и на каждом поднять свой экземпляр менеджера лицензий.

Настройка и оптимизация поиска лицензий (nethasp.ini)

В логах часто можно встретить ошибки сети (Net Status=0, System Error=0, Warning=129). По умолчанию 1С ищет лицензии с помощью широковещательных запросов (Broadcast) по всей сети, перебирая все возможные серии ключей. Это сильно замедляет запуск программы.

Разберем по шагам, как оптимизировать этот процесс с помощью файла nethasp.ini на рабочих местах пользователей:

  1. Откройте файл nethasp.ini (обычно лежит в папке conf установленной платформы).
  2. Отключите широковещательный поиск. Для этого найдите параметр NH_USE_BROADCAST и установите его значение в Disabled.
  3. Явно укажите IP-адрес компьютера, в который вставлен красный ключ и работает служба менеджера лицензий. За это отвечает параметр NH_SERVER_ADDR. Например: NH_SERVER_ADDR = 192.168.1.100.

Управление приоритетом выдачи лицензий на сервере

По умолчанию 1С ищет лицензии по цепочке: локальный ключ -> локальная программная -> сеть (HASP LM) -> сервер 1С. Чтобы сэкономить лицензии и заставить пользователей получать их строго на ПК через HASP LM, мы можем запретить серверу раздавать клиентские лицензии.

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

← На главную