Часто в организациях возникает ситуация, когда парк лицензий 1С состоит из нескольких физических USB-ключей (например, 5+5+10 рабочих мест). При попытке установить их все в один сервер системный администратор сталкивается с проблемой: пользователи не могут получить лицензии, хотя ключи физически исправны и светятся. Рассмотрим подробно, почему так происходит, и разберем по шагам варианты решения этой задачи.
Разберем фундаментальное ограничение защиты HASP. Аппаратные ключи 1С делятся на серии. Самая распространенная серия пользовательских ключей (от 1 до 100 рабочих мест) имеет маркировку ORGL8. Проанализируем логику работы драйвера: при опросе USB-шины менеджер лицензий или сама платформа находит первый попавшийся ключ серии ORGL8 и работает только с ним. Все остальные ключи той же серии, вставленные в ту же операционную систему, будут полностью игнорироваться.
Важно помнить, что исключение составляют только многопользовательские ключи на 300 (серия ORG8A) и 500 (серия ORG8B) рабочих мест. Они могут сосуществовать с ключами ORGL8 на одной машине, так как воспринимаются драйвером как разные устройства. Однако в нашем случае (комбинация 5, 5 и 10 мест) все они принадлежат к одной серии, а значит, физически не могут раздавать лицензии одновременно с одного порта или одного сервера.
Если мы хотим продолжить использовать имеющиеся USB-ключи, нам необходимо разнести их по разным физическим (или виртуальным) машинам. Рассмотрим этот процесс по шагам:
HASP License Manager запущен как служба. Это позволит лицензиям быть доступными даже если на компьютере не выполнен вход пользователя.После того как мы «раскидали» ключи по разным адресам (например, 192.168.1.10, 192.168.1.11 и 192.168.1.12), нам нужно заставить клиентские ПК видеть их все. По умолчанию 1С использует широковещательный запрос (Broadcast), который может «зацепиться» только за первый ответивший ключ. Чтобы этого избежать, настроим файл nethasp.ini.
Проанализируем конфигурационный файл nethasp.ini, который обычно располагается в папке conf в каталоге установки платформы (или в профиле пользователя). Нам необходимо жестко прописать адреса наших менеджеров лицензий.
Рассмотрим пример настройки секции [NH_TCPIP]:
[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-адреса всех машин, в которые воткнуты наши ключи.NH_TCPIP_METHOD = TCP — заставили систему работать по протоколу TCP для стабильности.NH_USE_BROADCAST = Disabled — отключили широковещательный поиск, чтобы 1С опрашивала указанные адреса по очереди, пока не найдет свободный слот.Если вариант с распределением ключей по разным ПК кажется неудобным, можно рассмотреть обмен USB-ключей на программные лицензии (пин-коды), для анализа которых пригодится расшифровщик файлов программных лицензий. У программных лицензий нет ограничения на «один ключ на одну машину». Вы можете активировать сколько угодно комплектов лицензий на одном сервере, и они будут суммироваться.
Внимание! Рассмотрим критически важный нюанс, о котором часто забывают. Изменяется механизм подсчета лицензий:
Посмотрим на пример: если у вас 20 сотрудников, и каждый привык держать открытыми одновременно по 2-3 базы, то аппаратных лицензий на 20 мест вам хватит, а программных потребуется уже около 50. Перед обменом обязательно проанализируйте привычки ваших пользователей.
Чтобы понять, какой ключ в данный момент занят и с какого адреса компьютер получил лицензию, рекомендуем использовать бесплатную утилиту AKS Monitor (Aladdin Monitor). Проанализируем её возможности:
Запустив монитор, вы увидите список всех найденных в сети менеджеров лицензий (HASP LM). Выбрав конкретный сервер, вы сможете просмотреть список IP-адресов компьютеров, которые в данный момент «отъели» лицензии. Если ваш ключ на 5 мест не отображается в списке монитора — значит, либо не запущен HASP LM, либо порт 475 (UDP/TCP) заблокирован брандмауэром.
Если вы используете клиент-серверный вариант (SQL), например при обслуживании баз на Postgresql, важно понимать, кто именно раздает лицензии. В настройках информационной базы есть параметр "Разрешить выдачу лицензий сервером 1С:Предприятия".
Если эта галочка включена, сервер сам ищет ключи, воткнутые в него локально. И здесь мы снова упираемся в ограничение: сервер 1С увидит только один ключ ORGL8. Более того, даже если вы разнесете ключи по другим машинам, сервер 1С не сможет забрать лицензии со второго и третьего ключа — он умеет работать только с локальными ключами или списком программных лицензий.
Решение: Если вам нужно использовать несколько сетевых USB-ключей, раздавайте их напрямую клиентам через nethasp.ini, минуя раздачу сервером 1С. В этом случае клиентское приложение само найдет ключ в сети, заберет лицензию (1 лицензия на ПК), и сервер 1С не будет участвовать в этом процессе. Это наиболее экономный и стабильный вариант для парка USB-защиты.