Как разграничить использование аппаратных и программных лицензий 1С между разными серверами?

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

В крупных инфраструктурах часто возникает ситуация, когда на предприятии функционируют несколько серверов 1С, на каждом из которых установлены свои лицензии (как аппаратные ключи HASP, так и программные лицензии). Без должной настройки клиентские приложения 1С могут хаотично занимать лицензии с «чужих» серверов, что приводит к дефициту свободных лицензий там, где они действительно необходимы. Рассмотрим подробно, как правильно настроить разграничение лицензий, проанализируем ошибки в конфигурационных файлах и разберем специфику работы в терминальном режиме (RDP).

Анализ проблемы и механизма поиска лицензий

Прежде всего, разберем, как 1С ищет лицензию. По умолчанию поиск происходит в следующем порядке: локальный аппаратный ключ, локальная программная лицензия, затем поиск сетевого ключа через HASP License Manager. Если в локальной сети находятся несколько менеджеров лицензий, клиент 1С отправляет широковещательный (broadcast) запрос и занимает первую ответившую лицензию. В условиях работы через RDP ситуация осложняется тем, что все пользователи «стучатся» с одного IP-адреса сервера, и без жесткой привязки настройки 1С будут игнорировать ваши ожидания по распределению ресурсов.

Шаг 1. Настройка файла nethasp.ini на клиентской стороне (терминальном сервере)

Основная ошибка многих администраторов заключается в неправильном заполнении файла nethasp.ini. Проанализируем структуру этого файла. Параметры должны быть строго разделены по секциям, иначе платформа их просто не увидит. Для жесткой привязки к конкретному серверу лицензий нам необходимо отключить широковещательный опрос и указать конкретный IP-адрес.

Рассмотрим правильную конфигурацию для Первого сервера (IP 192.168.0.42):


[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.42
NH_USE_BROADCAST = Disabled

Для Второго сервера (IP 192.168.0.51) конфигурация будет аналогичной, но с его адресом:


[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.51
NH_USE_BROADCAST = Disabled

Важный момент: Мы намеренно отключаем NH_USE_BROADCAST. Это гарантирует, что 1С не будет «оглядываться» по сторонам в поисках других ключей, а пойдет строго по указанному адресу NH_SERVER_ADDR.

Шаг 2. Корректное размещение файла nethasp.ini

Выясним причину, по которой настройки могут не вступать в силу. Часто это связано с разрядностью установленной платформы 1С. В операционных системах x64 пути поиска различаются:

  1. Для 64-разрядной платформы 1С: C:\Program Files\1cv8\conf
  2. Для 32-разрядной платформы 1С: C:\Program Files (x86)\1cv8\conf

Проанализируем ситуацию: если у вас установлена 32-битная платформа на 64-битной Windows, файл nethasp.ini в папке Program Files будет проигнорирован. Рекомендуем разместить файл в обе директории или непосредственно в папку bin\conf конкретной версии платформы, которую используют ваши пользователи. Также проверьте отсутствие файла nethasp.ini в профилях пользователей (AppData), так как настройки пользователя имеют приоритет над общесистемными.

Шаг 3. Уникальные имена менеджеров лицензий (nhsrv.ini)

Если в сети присутствуют два одинаковых ключа (например, оба Net5), 1С может их путать. Чтобы этого избежать, на стороне серверов, где физически установлены ключи, нужно отредактировать файл nhsrv.ini (настройки менеджера лицензий HASP). Нам потребуется параметр NHS_SERVERNAMES.

Внимание: Имя сервера в этом файле не должно превышать 7 символов. Например:

После этого в клиентском файле nethasp.ini в секции [NH_TCPIP] можно добавить строку NH_SERVER_NAME = SRV1. Это создаст однозначную связку между клиентом и конкретным ключом.

Шаг 4. Особенности подсчета лицензий в режиме RDP

Разберем проблему «жора» лицензий, когда бухгалтеры открывают несколько баз одновременно. В терминальном режиме подсчет лицензий работает по-разному для разных типов защиты:

  1. Аппаратные ключи (HASP): Если используется сетевой ключ, лицензию выдает HASP License Manager. В рамках одной терминальной сессии (одного пользователя) можно запустить неограниченное количество баз 1С, и будет израсходована всего одна лицензия.
  2. Программные лицензии: Если программные лицензии активированы «на компьютер» (сервер), то при работе в файловом режиме 1С будет расходовать одну лицензию на каждый запущенный сеанс. Если бухгалтер открывает 6 баз, он заберет 6 программных лицензий.

Выясним причину нехватки лицензий: если ваши пользователи начинают занимать чужие программные лицензии, это верный признак того, что настройки nethasp.ini либо не применяются, либо аппаратные лицензии на их родном сервере закончились, и платформа перешла к поиску доступных программных лицензий по сети.

Дополнительные методы контроля

Если правка конфигурационных файлов не помогает, рассмотрим альтернативные методы:

  1. Настройка Firewall: Мы можем заблокировать входящие подключения на порт 475 (UDP/TCP) для конкретных IP-адресов. Если пользователям Сервера 2 запретить доступ к порту 475 Сервера 1 на уровне брандмауэра Windows, они физически не смогут «украсть» оттуда лицензию.
  2. Мониторинг через AKS Monitor: Установите утилиту Aladdin Monitor. Она наглядно покажет, с каких IP-адресов и какие именно пользователи в данный момент занимают места на ключе. Это поможет понять, игнорирует ли конкретный ПК настройки nethasp.ini.
  3. Переменные окружения: Можно задать системную переменную HL_SEARCH, указав в ней путь к конкретному файлу настроек. Это заставит 1С использовать нужный конфиг принудительно.

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

← На главную