Почему файловым базам 1С не хватает клиентских лицензий при наличии свободных аппаратных ключей?

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

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

Анализ причин проблемы

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

  1. Ограничение файлового режима: при запуске файловой базы по локальной сети клиентское приложение (толстый или тонкий клиент) обязано найти лицензию самостоятельно. Кластер серверов 1С не знает о существовании файловых баз и технически не может выделить им лицензию.
  2. Широковещательный опрос сети (Broadcast): по умолчанию клиент 1С отправляет широковещательный запрос на поиск менеджера лицензий HASP License Manager. Клиент захватывает лицензию с первого ответившего сервера. Если на этом первом сервере все лицензии ключа исчерпаны, клиент не переходит к поиску на других серверах с ключами той же серии ORGL8, а сразу возвращает ошибку «Не обнаружен свободный ключ защиты».
  3. Разница в расходе лицензий: если в свойствах серверной базы установлен параметр «Разрешить выдачу лицензий сервером 1С:Предприятия = Да», сервер забирает одну лицензию на каждое подключение (сеанс). Если же лицензии получает клиент через HASP LM, одна лицензия расходуется на одно рабочее место (компьютер или сеанс терминала), независимо от количества открытых баз.
  4. Программные лицензии на сервере: программные многопользовательские лицензии (файлы .lic), привязанные к серверу 1С, раздаются исключительно кластером и недоступны для клиентских приложений файловых баз.

Решение 1. Корректная настройка файла nethasp.ini на клиентских ПК

Чтобы клиентские приложения опрашивали все имеющиеся в сети ключи HASP последовательно, а не останавливались на первом попавшемся сервере, необходимо отключить широковещательный поиск и явно перечислить IP-адреса всех серверов с ключами.

Разберем по шагам настройку конфигурационного файла nethasp.ini:

  1. Найдем или создадим файл nethasp.ini. Рекомендуется размещать его в общем каталоге конфигурации платформы %ProgramFiles%\1cv8\conf (или %ProgramFiles(x86)%\1cv8\conf). В этом случае настройки применятся ко всем установленным версиям и релизам 1С (как 8.3, так и 8.2).
  2. Откроем файл в текстовом редакторе и настроим секцию [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_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = TCP_OR_UDP

Посмотрим на параметры конфигурации: директива NH_USE_BROADCAST = Disabled запрещает неконтролируемый опрос сети, а директива NH_SERVER_ADDR задает список серверов через запятую. Клиент будет последовательно опрашивать указанные хосты, пока не найдет свободную лицензию.

Решение 2. Проверка сетевого доступа к службам HASP License Manager

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

  1. Служба HASP License Manager (nhsrv.exe) работает по сетевому порту 475 (по протоколам TCP и UDP). Этот порт должен быть открыт в брандмауэрах на всех машинах с аппаратными ключами.
  2. Для работы менеджера лицензий не требуется учетных записей Windows или доменной авторизации Active Directory. Запросы идут исключительно по сетевому протоколу. Клиентский компьютер пользователя должен иметь прямой IP-доступ к порту 475 серверов лицензирования.

Решение 3. Перевод файловых баз в клиент-серверный режим или публикация на веб-сервере

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

  1. Публикация файловых баз на веб-сервере (IIS / Apache): веб-сервер выступает единой точкой входа и может самостоятельно забирать лицензии, установленные на машине веб-сервера, для всех подключающихся веб-клиентов и тонких клиентов.
  2. Запуск двух кластеров серверов 1С: если требуется параллельная работа разных версий платформы (например, 8.2 и 8.3), на одном физическом сервере можно развернуть две службы кластера, назначив второй службе смещенный диапазон портов (например, порт кластера 2540 вместо стандартного 1540). Все файловые базы при этом переводятся в клиент-серверный режим под управление соответствующих версий платформы.

Диагностика используемых лицензий

Чтобы точно определить, откуда именно текущий сеанс 1С получил лицензию, перейдем в меню «Справка» -> «О программе». В блоке «Лицензия» будет подробно указан тип лицензии (локальная, сетевая или программная), сетевое имя сервера раздачи или путь к файлу лицензии.

← На главную