Почему закончились свободные лицензии 1С и как понять распределение между менеджером лицензий и сервером

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

При запуске 1С:Предприятия системные администраторы нередко сталкиваются с ситуацией, когда окно запуска сообщает об исчерпании лицензий и показывает детальную строку вида: «свободные лицензии закончились. Занято через менеджер лицензий 70, через сервер 30». Разберем детально, как платформа 1С распределяет клиентские лицензии, почему предположение о разделении на файловые и клиент-серверные (SQL) базы ошибочно, и как оптимизировать инфраструктуру, чтобы исключить дублирование и перерасход лицензий.

Анализ ошибки: как сервер и менеджер лицензий считают подключения

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

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

Почему смешанный режим выдачи лицензий приводит к перерасходу

Проанализируем типичный сценарий перерасхода лицензий в смешанной среде. Если часть пользователей получает лицензии от менеджера лицензий HASP LM, а другая часть — от сервера 1С, либо если один и тот же клиент сначала берет лицензию с ключа для одной базы, а затем сервер выделяет ему дополнительную лицензию для другой базы, возникает нерациональное потребление слотов:

  1. Дублирование лицензий на одного пользователя: открыв первую базу с получением лицензии от HASP LM, пользователь занимает 1 слот на ключе защиты. Открывая вторую базу, где выдача разрешена сервером, пользователь забирает еще 1 лицензию с сервера 1С, хотя физически работает за одним компьютером.
  2. Фоновые и регламентные задания: если сервер 1С раздает клиентские лицензии, каждое фоновое или регламентное задание информационной базы может захватывать отдельную лицензию на время своего выполнения, что быстро опустошает свободный пул при активном расписании.
  3. Интеграции и внешние сервисы: подключения через COM-соединения, HTTP- и web-сервисы, а также OData при серверной раздаче также расходуют по одной клиентской лицензии на сеанс.
  4. Особенности терминальных серверов (RDP): в терминальной сессии менеджер лицензий HASP LM ведет себя иначе, чем на физическом ПК — он захватывает лицензию на каждую терминальную сессию, что исключает экономию по принципу «одна лицензия на рабочую станцию».

Способы устранения проблемы и оптимизации лицензирования

Рассмотрим конкретные шаги, которые позволят навести порядок в распределении лицензий и избежать их дефицита.

Шаг 1. Выбор единой схемы раздачи лицензий

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

Если требуется запретить серверу 1С тратить лицензии на сеансы и перевести клиентов на прямое получение лицензий от HASP LM:

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

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

Шаг 2. Настройка файла nethasp.ini на клиентских машинах

Чтобы рабочие станции стабильно и быстро находили менеджер лицензий без широковещательных сбоев в сети, настроим конфигурационный файл nethasp.ini. Файл располагается в каталоге conf платформы (например, C:\Program Files\1cv8\conf\nethasp.ini).

Разберем параметры, которые необходимо задать в секции [NH_TCPIP]:

  1. Отключим широковещательный опрос сети, который может вызывать таймауты и ошибки поиска: параметр NH_USE_BROADCAST = Disabled.
  2. Укажем точный статический IP-адрес компьютера или сервера, на котором физически установлен ключ защиты и запущена служба HASP License Manager: параметр NH_SERVER_ADDR = 192.168.1.100 (где вместо примера укажем реальный IP-адрес).
  3. Ограничим используемый протокол только TCP/IP, отключив ненужные протоколы IPX и NetBIOS в секции [NH_COMMON].

Шаг 3. Диагностика активных сеансов через консоль кластера

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

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

Шаг 4. Настройка автоматического завершения спящих сеансов

Чтобы зависшие подключения пользователей не удерживали серверные лицензии часами, настроим параметры политики сеансов в свойствах информационной базы через консоль кластера серверов 1С:

  1. Параметр Время засыпания пассивного сеанса — установим интервал неактивности пользователя (в секундах), после которого сеанс считается спящим.
  2. Параметр Время завершения спящего сеанса — установим время, по истечении которого спящий сеанс принудительно удаляется сервером, возвращая клиентскую лицензию обратно в пул доступных лицензий.

Шаг 5. Отключение поиска аппаратного ключа при программном лицензировании

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

← На главную