Как работает параметр «Разрешить выдачу лицензий сервером» в 1С и почему возникает ошибка «Не найдена лицензия»?

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

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

Принцип подсчета лицензий: на сеанс против на рабочий компьютер

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

  1. Выдача лицензии сервером 1С («Разрешить выдачу лицензий сервером — Да»):

    В этом режиме процесс кластера серверов rphost самостоятельно получает лицензии (из активированных на сервере программных файлов .lic или захватывая сетевые аппаратные ключи) и выделяет их клиентским подключениям. Главная особенность серверной раздачи заключается в том, что лицензии расходуются посеансно. Это означает, что если один и тот же пользователь на одном рабочем месте запустит три разные информационные базы или откроет конфигуратор параллельно с режимом предприятия, сервер спишет три отдельные лицензии.

  2. Получение лицензии клиентским приложением («Разрешить выдачу лицензий сервером — Нет»):

    В данном сценарии сервер 1С отказывается выдавать клиенту лицензию из пула сервера. Клиентское приложение обязано найти лицензию самостоятельно до подключения к базе. Клиент ищет локальные программные файлы лицензий на своем ПК, локальные USB-ключи HASP либо опрашивает сетевой менеджер лицензий HASP License Manager. При прямом получении лицензии клиентом действует правило: одна лицензия на один рабочий компьютер. Пользователь может открыть сколько угодно баз и сеансов на своем ПК, израсходовав всего одну клиентскую лицензию.

Почему возникает ошибка «Не найдена лицензия» при значении «Нет»?

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

  1. Программные лицензии активированы только на сервере:

    Если многопользовательский комплект программных лицензий был активирован на сервере с использованием многопользовательского пин-кода, результирующий файл .lic привязан к параметрам серверного оборудования и физически доступен только серверным процессам. Клиентские компьютеры не имеют прямого доступа к файловой системе сервера. Когда мы устанавливаем значение «Разрешить выдачу лицензий сервером — Нет», сервер блокирует раздачу этого файла клиентам. Если на рабочей станции нет собственного файла лицензии или доступа к HASP, запуск блокируется.

  2. Сетевые проблемы или отсутствие настроек HASP License Manager:

    Когда на предприятии используется аппаратный ключ HASP, при значении «Нет» клиентский компьютер обращается к службе HASP License Manager по сети. Если между клиентской машиной и сервером лицензирования закрыты порты (по умолчанию UDP/TCP 475), отключен широковещательный поиск (broadcast) или исчерпан лимит свободных слотов на самом ключе, клиент не сможет забрать лицензию напрямую.

  3. Захват ключа HASP самим сервером 1С:

    Если на одном физическом сервере запущены и кластер серверов 1С, и менеджер лицензий HASP, служба 1С может первой занять все доступные лицензии на USB-ключе для обслуживания баз, где включена раздача сервером. В результате клиентским ПК свободных лицензий на ключе просто не остается.

Способы решения и варианты настройки

Рассмотрим по шагам практические варианты настройки инфраструктуры для эффективного использования лицензий.

1. Точечная настройка конфигурационного файла nethasp.ini на клиентских ПК

Если мы хотим, чтобы клиентские толстые или тонкие клиенты гарантированно находили сетевой аппаратный ключ HASP на выделенном сервере, необходимо исключить нестабильный широковещательный поиск и прописать прямой адрес сервера лицензирования. Разберем настройку файла nethasp.ini, который располагается в каталоге bin\conf установленной платформы 1С:

  1. Откроем файл nethasp.ini в текстовом редакторе.
  2. Найдем секцию [NH_COMMON] и [NH_TCPIP].
  3. Установим прямое подключение по протоколу TCP/IP, указав точный IP-адрес сервера с установленным ключом и менеджером лицензий:

[NH_COMMON]
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.1.10
NH_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = TCP

Параметр NH_USE_BROADCAST = Disabled предотвратит широковещательный опрос подсети и направит запросы напрямую на хост 192.168.1.10.

2. Разделение баз по типу выдачи лицензий

Проанализируем сценарий совмещения баз в кластере, если в организации есть и аппаратный ключ HASP, и программный многопользовательский пул:

  1. Для баз, где сотрудники активно открывают по 3–5 сеансов одновременно (например, основная учетная база и конфигуратор), устанавливаем в консоли кластера свойство базы «Разрешить выдачу лицензий сервером» в значение «Нет». В этом случае клиенты будут брать одну лицензию на весь свой ПК с сетевого ключа HASP через nethasp.ini.
  2. Для баз, к которым пользователи подключаются через веб-клиент, мобильные клиенты или где запуск строго ограничен одним сеансом на человека, оставляем значение «Да». Сервер 1С будет обеспечивать эти сеансы из серверного пула программных лицензий.

3. Запрет захвата аппаратных ключей кластером 1С

Чтобы сервер 1С не расходовал аппаратный HASP посеансно, а отдавал его целиком клиентам, настроим запрет использования HASP серверными процессами. Для этого при запуске службы сервера 1С (или в файле конфигурации conf.cfg) используется параметр:

DisableHASP=1

Либо ключ запуска службы сервера -disable_hasp. В таком случае сервер 1С будет работать только с активированными программными файлами лицензий, а сетевой аппаратный ключ HASP останется полностью в распоряжении локальных компьютеров пользователей.

4. Локальная активация программных лицензий

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

  1. Используем комплект индивидуальных (однопользовательских) пин-кодов из поставки.
  2. Активируем лицензии непосредственно на каждом рабочем месте пользователя.
  3. Файлы с расширением .lic будут сохранены в общедоступном локальном каталоге %PROGRAMDATA%\1C\1Cv8\conf\.
  4. В свойствах информационных баз выставляем значение «Разрешить выдачу лицензий сервером — Нет». Теперь клиентское приложение использует локальный файл лицензии на компьютере для любого количества открываемых сеансов.
← На главную