Как настроить одновременную работу нескольких сетевых ключей HASP 1С одной серии

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

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

Выясним причину: почему ключи HASP одной серии не работают вместе

Рассмотрим техническую сторону вопроса. Большинство аппаратных ключей защиты 1С (на 5, 10, 20, 50 и 100 пользователей) относятся к одной серии — ORGL8. Драйвер HASP HL и служба HASP License Manager (HASP LM) устроены таким образом, что они не умеют суммировать лицензии от двух устройств одной и той же серии, подключенных к одному физическому или виртуальному компьютеру. Если вы вставите два таких ключа в один сервер, менеджер лицензий захватит первый попавшийся ключ, а второй останется неактивным.

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

Разберем разницу между выдачей лицензий сервером и менеджером лицензий

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

  1. Выдача лицензий сервером (Да): Лицензии выдает сам процесс rphost. Особенность в том, что лицензия тратится на каждый запуск сеанса. Если один пользователь откроет три разные базы или три окна одной базы, он займет 3 лицензии. Это крайне невыгодно при дефиците ключей — решить проблему поможет обработка управления сеансами для освобождения лицензий 1С.
  2. Выдача лицензий менеджером HASP (Нет): Лицензию получает клиентское приложение непосредственно по сети через HASP LM. В этом случае лицензия привязывается к рабочему месту (IP-адресу/имени компьютера). Один пользователь может открыть сколько угодно окон 1С на своем компьютере, потратив всего 1 лицензию из ключа.

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

Шаг 1. Подготовка серверов лицензий

Рассмотрим конфигурацию: у нас есть два сервера. На сервере 192.168.0.20 установлен ключ на 20 пользователей, на сервере 192.168.0.50 — на 50 пользователей. На каждом из этих серверов должна быть выполнена следующая последовательность действий:

  1. Устанавливаем драйвер аппаратного ключа HASP.
  2. Устанавливаем HASP License Manager (HASP LM) как сервис (Service). Именно этот компонент отвечает за «раздачу» лицензий по сети.
  3. Убеждаемся, что порты 475 (UDP и TCP) открыты в брандмауэре для входящих соединений.

Шаг 2. Настройка менеджера лицензий (nhsrv.ini)

Теперь выясним важный нюанс, который помог автору решить проблему. Когда в сети несколько менеджеров лицензий, они могут конфликтовать, если их имена не уникальны. Нам нужно отредактировать файл nhsrv.ini, который обычно находится в папке с установленным менеджером лицензий (например, в C:\Program Files (x86)\Aladdin\HASP LM\).

На первом сервере (192.168.0.20) в секции [NHS_SERVER] зададим уникальное имя:


[NHS_SERVER]
NHS_USERLIST = 250
NHS_SERVERNAMES = Server20

На втором сервере (192.168.0.50) сделаем аналогично:


[NHS_SERVER]
NHS_USERLIST = 250
NHS_SERVERNAMES = Server50

Важно: После изменения файла nhsrv.ini необходимо перезапустить службу HASP Loader (или Sentinel LDK-License Manager) через оснастку services.msc.

Шаг 3. Настройка клиентских компьютеров (nethasp.ini)

Теперь перейдем к настройке рабочих мест пользователей. По умолчанию 1С ищет ключи широковещательным запросом (Broadcast). В сложных сетях или при наличии нескольких ключей это работает нестабильно: 1С может «зависнуть» на поиске или не увидеть второй ключ, когда первый занят — эту проблему решит система централизованного администрирования рабочих мест и баз 1С.

Нам нужно отредактировать файл nethasp.ini. На клиентских машинах он обычно лежит в C:\Program Files\1cv8\conf\ или в папке конкретной версии платформы. Настроим прямой опрос наших серверов лицензий:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
;; Указываем адреса наших серверов через запятую
NH_SERVER_ADDR = 192.168.0.20, 192.168.0.50
;; Отключаем широковещательный поиск для ускорения запуска
NH_USE_BROADCAST = Disabled

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

Оптимизация и мониторинг

Рассмотрим ситуацию с задержкой запуска. Автор темы упомянул, что при указании нескольких серверов поиск может длиться около 5 секунд. Это происходит потому, что 1С ждет ответа от первого IP в списке. Если вы хотите ускорить процесс, убедитесь, что самый «быстрый» или самый «вместительный» сервер стоит в списке первым.

Для контроля использования лицензий рекомендуем использовать утилиту Aladdin Monitor. В ней вы сможете увидеть:

Если Aladdin Monitor не видит один из ключей, проверьте, запущен ли драйвер и не блокирует ли антивирус процесс nhsrv.exe.

Заключение

Мы проанализировали механизм работы сетевых ключей 1С и выяснили, что для успешной работы нескольких ключей серии ORGL8 необходимо:

  1. Разнести ключи по разным физическим машинам.
  2. Установить на каждой HASP License Manager.
  3. Присвоить менеджерам уникальные имена через NHS_SERVERNAMES.
  4. Настроить клиенты через nethasp.ini на последовательный опрос серверов.

Такой подход позволяет гибко управлять лицензиями и гарантирует, что пользователи смогут использовать все доступные 70 рабочих мест без конфликтов программного обеспечения.

← На главную