Как устранить ошибки лицензирования и конфликты уровней ПРОФ и КОРП в кластере 1С:Предприятие

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

В процессе эксплуатации крупных информационных систем на базе 1С:Предприятие 8.3 администраторы нередко сталкиваются с ситуацией, когда сервер внезапно перестает принимать клиентские соединения, выдавая ошибки об отсутствии свободных лицензий или ограничении функционала. Особенно остро эта проблема проявляется в смешанных средах, где одновременно присутствуют лицензии уровней ПРОФ и КОРП. Рассмотрим подробно, почему возникают такие сбои и как их диагностировать и устранять.

Анализ причин возникновения ошибки «Не обнаружено свободной лицензии»

Проанализируем типичный лог ошибки, который получает пользователь при попытке входа. В нем часто фигурируют сообщения о поиске в файлах nethasp.ini, программных лицензиях .lic и обращении к сервису лицензирования. Выясним причину: почему система видит КОРП-лицензии в консоли, но ведет себя так, будто установлены ограничения ПРОФ?

Основная сложность заключается в том, что платформа 1С строго разграничивает возможности уровней лицензирования. Если в кластере активирована хотя бы одна функция уровня КОРП (например, управление потреблением ресурсов или использование более 500 одновременных сеансов), система требует, чтобы абсолютно все активные лицензии — и серверные, и клиентские — имели уровень КОРП. Если сервер случайно «подцепит» лицензию ПРОФ, он может принудительно ограничить функционал всего кластера.

Разбор работы сервиса лицензирования (LicenseService)

Обратим внимание на специфическую ошибку в логе: Не найдено ни одного сервера с размещенным сервисом serviceName=LicenseService. Начиная с версии платформы 8.3.14, управление программными лицензиями может быть выделено в отдельный сервис кластера. Рассмотрим по шагам, что это означает и как это проверить:

  1. Идентификация сервиса: Внутренний идентификатор 0a3db51c-6b29-4c6c-9e4b-8174fc77afd6 отвечает за LicenseService. Если рабочий процесс rmngr, на котором назначен этот сервис, завершился аварийно или завис, остальные рабочие серверы кластера «потеряют» доступ к лицензиям.
  2. Проверка консоли администрирования: Откроем штатную оснастку или воспользуемся альтернативной мультиверсионной консолью OneS Cluster Admin, перейдем в раздел «Сервисы» конкретного кластера. Найдем «Сервис лицензирования» и посмотрим, на какой рабочий сервер он назначен.
  3. Перезапуск службы: Если сервис назначен на сервер, который перегружен или недоступен, попробуем переназначить его на другой активный сервер или перезапустить службу 1C:Enterprise 8.3 Server Agent.

Проблема смешивания лицензий ПРОФ и КОРП

Выясним, почему система ограничивает количество пользователей числом 500, несмотря на наличие 2000 КОРП-лицензий. С 2019 года компания «1С» ввела жесткий программный контроль. Если система обнаруживает в папке C:/ProgramData/1C/licenses старые файлы лицензий уровня ПРОФ, она может считать их приоритетными или войти в режим конфликта. При настройке новых инстансов, например, для целей разработки, рекомендуется использовать рецепты по установке комьюнити-лицензии на сервер, чтобы избежать влияния лишних файлов на промышленный контур.

Проанализируем ситуацию: в логе автора упоминаются два файла лицензий, например, 2023011222443.lic и 20240229150211.lic. Один из них может быть серверной лицензией КОРП, а другой — клиентской лицензией ПРОФ на 500 мест, оставшейся после апгрейда. Для решения проблемы выполним следующие действия:

  1. Инвентаризация файлов: Проверим содержимое всех файлов .lic в папке лицензий. Нам необходимо убедиться, что среди них нет «забытых» лицензий уровня ПРОФ.
  2. Удаление дублей: Если была произведена процедура апгрейда с ПРОФ на КОРП, старые файлы лицензий ПРОФ необходимо физически переместить в архивную папку вне каталога 1С.
  3. Проверка типа лицензии: Используем утилиту для чтения лицензий или внимательно изучим текстовый блок в конце файла. Лицензия КОРП должна содержать явное указание уровня КОРП в наименовании продукта.

Управление потреблением ресурсов и функционал КОРП

Текст ошибки прямо указывает: «В кластере определены счетчики потребления ресурсов... Использование этих функций возможно только для лицензий КОРП». Разберем, какие именно настройки в консоли администрирования могут блокировать запуск системы:

Если сервер 1С считает, что у него нет действующей КОРП-лицензии, он запрещает использование следующих функций:

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

  1. Зайдем в свойства кластера в консоли администрирования.
  2. Временно обнулим все значения в полях, касающихся «Интервала превышения допустимого объема памяти» и «Допустимого объема памяти».
  3. Выключим ограничения на количество сеансов на рабочий процесс.

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

Настройка приоритета программных лицензий над аппаратными

В представленном логе видно, что система пытается опрашивать ключи HASP (маркировки ORG8B, ORG8A). Если в сети присутствует аппаратный ключ ПРОФ, 1С может попытаться захватить его первым. Чтобы этого избежать, мы можем принудительно задать приоритет программных лицензий.

Для этого проанализируем файл conf.cfg, расположенный в каталоге conf установленной платформы. Мы можем добавить туда параметр, управляющий приоритетом. Посмотрим на пример настройки:


# Пример файла conf.cfg с установленным приоритетом
V8_AUTO_LICENSE_PRIORITY=Software

Эта настройка заставляет систему сначала искать программные файлы .lic (КОРП), и только если они не найдены, обращаться к менеджеру лицензий NetHASP.

Диагностика через консоль администрирования

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

Если мы видим, что часть пользователей получает лицензию Локальный КОРП, а часть — Сетевой ПРОФ, это явный признак того, что в сети работает лишний менеджер лицензий с ключом ПРОФ, который «портит» общую картину кластера.

Итоговый чек-лист по устранению проблемы

  1. Проверить работоспособность rmngr: Убедиться, что сервис лицензирования в консоли активен и назначен на работающий сервер.
  2. Очистить папку лицензий: Удалить все .lic файлы, не относящиеся к текущему набору КОРП-лицензий.
  3. Проверить nethasp.ini: Если аппаратные ключи не должны использоваться, можно временно отключить их опрос, установив NH_TCPIP = DISABLED в настройках драйвера или конфиге 1С.
  4. Сбросить счетчики ресурсов: Если система не пускает из-за «функций КОРП», временно отключить лимиты памяти в свойствах кластера до восстановления видимости КОРП-ключей.
  5. Анализ журналов: Проверить технологический журнал 1С (события LEvent), чтобы увидеть детальный процесс поиска лицензии. Для обработки логов и поиска причин «тормозов» можно использовать конвертер технологического журнала в JSON, а затем провести замер производительности контура 1С для поиска узких мест.

Таким образом, совместная работа администратора по очистке старых лицензий и настройке сервисов кластера позволяет полностью устранить ошибки уровня КОРП и обеспечить стабильную работу системы для любого количества пользователей.

← На главную