Почему количество подключений 1С превышает лимит программной лицензии и как это исправить

Системный администратор IT и автоматизация бизнеса
← На главную

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

Причины превышения лимита программной лицензии

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

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

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

    Если же лицензии выдаются сервером 1С:Предприятия, то на каждый запущенный сеанс (каждое открытое окно) расходуется отдельная лицензия.

  3. Учет фоновых заданий, веб-сервисов и зависших сеансов. В консоли кластера отображаются не только физические пользователи, но и фоновые/регламентные задания, внешние соединения (COM) и веб-сеансы. Кроме того, при нештатном обрыве связи сеанс пользователя остается активным на сервере до истечения таймаута (в среднем около 20 минут), занимая позицию в списке подключений.

Разбор ошибки LicenseBaseImpl.cpp в технологическом журнале

Рассмотрим причину появления в технологическом журнале многочисленных записей вида:

src\LicenseBaseImpl.cpp: Ошибка программного лицензирования Превышено максимальное количество пользователей, разрешенное файлом программной лицензии

Данная запись является штатным поведением платформы при наличии нескольких лицензионных файлов .lic. Процесс проверки лицензий происходит поочередно:

  1. При запуске нового сеанса платформа 1С последовательно опрашивает найденные файлы программных лицензий.
  2. Если в первом опрашиваемом файле .lic все места уже заняты, платформа фиксирует исключение LicenseBaseImpl.cpp в технологическом журнале и переходит к проверке следующего файла лицензии или аппаратного ключа HASP.
  3. Если в одном из последующих файлов свободная лицензия находится, пользователь успешно запускает программу, но запись об отказе по первому файлу остается в логах.

Пошаговое решение и настройка системы

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

  1. Проведем аудит всех активированных лицензий.

    Откроем любое клиентское приложение 1С, перейдем в меню «Справка — О программе» и детально изучим раздел «Лицензия». Убедимся, какие именно файлы лицензий и аппаратные ключи видит платформа. Проверим каталоги с лицензиями (C:\ProgramData\1C\licenses, C:\Program Files\1cv82\conf или пути к профилям пользователей) и удалим недействительные, продублированные или устаревшие файлы .lic.

  2. Настроим параметр выдачи лицензий сервером.

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

    • Включим этот параметр (значение «Да»), если требуется жесткий контроль: 1 открытый сеанс = 1 лицензия. Это предотвратит ситуативный запуск десятков окон одним пользователем.
    • Отключим этот параметр (значение «Нет»), если пользователи работают в терминальном режиме RDP и им необходимо открывать по несколько баз 1С на одном рабочем месте без дополнительного расхода лицензий.
  3. Исключим «шум» в технологическом журнале.

    Чтобы файлы технологического журнала не разрастались из-за штатных сообщений о поиске свободных лицензий, настроим файл конфигурации ТЖ logcfg.xml. Добавим фильтрацию для событий EXCP, исключающую логирование ошибок по методу src\LicenseBaseImpl.cpp.

← На главную