Как разграничить лицензии 1С на предприятии и предотвратить их «заимствование» другими отделами

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

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

Порядок поиска лицензий платформой

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

  1. Локальный аппаратный ключ: USB-ключ, вставленный непосредственно в компьютер пользователя.
  2. Локальная программная лицензия: файлы с расширением .lic, активированные на данном рабочем месте.
  3. Многопользовательский аппаратный ключ: поиск через HASP License Manager по сети.
  4. Лицензии от сервера «1С:Предприятия»: если используется клиент-серверный вариант (SQL), сервер сам может выдавать лицензии из своего пула.

Зная этот порядок, мы можем сделать вывод: чтобы разграничить доступ, нам нужно вмешаться в процесс сетевого поиска (пункт 3) и механизм раздачи сервером (пункт 4).

Решение 1: Настройка HASP License Manager через nhsrv.ini

Если у вас есть аппаратные многопользовательские ключи (например, на 5, 10, 20 или более пользователей), ими управляет служба HASP License Manager. По умолчанию она отдает лицензию любому, кто «постучится» в сеть. Чтобы ограничить список компьютеров, которым разрешено брать лицензии с конкретного сервера, проанализируем файл nhsrv.ini, который находится в папке с установленным менеджером лицензий.

Разберем основные параметры, которые нам помогут:

  1. Найдем секцию [NHS_IP].
  2. Используем параметр NHS_IP_LIMIT. Здесь мы можем через запятую перечислить конкретные IP-адреса или целые подсети, которым разрешен доступ к данному ключу.

Посмотрим на пример настройки файла nhsrv.ini на сервере, где установлен ключ для конкретного отдела:


[NHS_IP]
NHS_USE_UDP = Enabled
NHS_USE_TCP = Enabled
; Разрешаем доступ только для диапазона адресов бухгалтерии
NHS_IP_LIMIT = 192.168.1.10-192.168.1.50, 192.168.1.100

Важно: После внесения изменений в nhsrv.ini необходимо обязательно перезапустить службу HASP License Manager в консоли управления службами Windows.

Решение 2: Настройка клиентских мест через nethasp.ini

Теперь рассмотрим ситуацию с другой стороны — со стороны компьютера пользователя. Если мы хотим, чтобы конкретный ПК «видел» только определенный сервер лицензий и не пытался опрашивать всю сеть широковещательными запросами (Broadcast), нам нужно отредактировать файл nethasp.ini.

Обычно этот файл располагается по пути: C:\Program Files\1cv8\conf (или в папке bin конкретной версии платформы).

Выполним следующие шаги по настройке:

  1. Отключим широковещательный поиск, установив NH_USE_BROADCAST = Disabled. Это предотвратит «кражу» случайных лицензий из сети.
  2. Явно укажем IP-адрес сервера, на котором стоит «наш» ключ, с помощью параметра NH_SERVER_ADDR.
  3. Убедимся, что протокол NH_TCPIP включен.

Пример настройки nethasp.ini для пользователя, который должен брать лицензию только с сервера 192.168.1.10:


[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
; Указываем адрес конкретного менеджера лицензий
NH_SERVER_ADDR = 192.168.1.10
; Отключаем поиск по всей сети
NH_USE_BROADCAST = Disabled
; Можно также ограничить время ожидания ответа
NH_TCPIP_METHOD = TCP

Решение 3: Разграничение программных лицензий на сервере 1С

Ситуация усложняется, когда на одном сервере работают SQL-базы, а на другом — файловые. В этом случае сервер «1С:Предприятия» (например, Сервер 1) может сам раздавать программные лицензии. Если пользователи Сервера 1 начинают занимать лицензии, предназначенные для файловой базы на Сервере 2, нужно проверить настройки в консоли администрирования серверов 1С.

Рассмотрим подробнее настройку свойств информационной базы:

  1. Откроем «Администрирование серверов 1С:Предприятия».
  2. Выберем нужную базу и зайдем в ее «Свойства».
  3. Найдем параметр «Разрешить выдачу лицензий сервером 1С:Предприятия».

Если мы снимем эту галочку, сервер перестанет отдавать программные лицензии из своего общего пула. В этом случае клиентское приложение (тонкий или толстый клиент) будет вынуждено искать лицензию самостоятельно — либо локально, либо через nethasp.ini на сетевом ключе. Это отличный способ разделить «серверных» пользователей и «файловых».

Решение 4: Использование нестандартных портов

Еще один продвинутый метод разграничения — запуск менеджеров лицензий на разных портах. По умолчанию используется порт 475. Если на одном сервере (или в разных сегментах) нужно разделить потоки, мы можем в файле nhsrv.ini изменить порт:


[NHS_IP]
NHS_IP_port = 476

В этом случае в клиентском nethasp.ini также нужно будет указать соответствующий порт, иначе 1С просто не увидит этот менеджер лицензий. Это создает надежный барьер для «чужих» подключений.

Мониторинг занятых лицензий

Чтобы выяснить причину нехватки ключей, рекомендуется использовать утилиту AKS Monitor (Aladdin Monitor). Проанализируем ее возможности:

Если вы видите в списке «лишние» IP-адреса, это сигнал к тому, что настройки NHS_IP_LIMIT на данном сервере не заданы или настроены неверно.

Особенности использования нескольких ключей одной серии

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

Подведем итог: наиболее эффективный метод разграничения — это комбинация настройки nhsrv.ini на сервере (белый список IP) и жесткое указание адреса сервера в nethasp.ini на стороне клиента с отключением широковещательного поиска (Broadcast). Это гарантирует, что лицензии будут распределяться строго по назначению.

← На главную