Как проверить количество и состояние активированных программных лицензий 1С:Предприятие 8.3?

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

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

Использование утилиты Ring и модуля License

Одним из самых мощных и официальных инструментов для управления лицензиями является утилита ring. Это кроссплатформенная утилита, входящая в состав дистрибутива 1С. Рассмотрим, как с ней работать. Прежде всего, важно помнить, что для функционирования ring в системе должна быть установлена среда выполнения Java (JRE).

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

ring license list

Эта команда выведет список идентификаторов (имен) всех установленных лицензий. Однако сама по себе эта информация мало что дает. Чтобы получить подробности, разберем команду получения детальной информации:

ring license info --name <Имя_лицензии>

Где <Имя_лицензии> — это идентификатор, полученный из предыдущей команды. В ответ утилита выдаст данные в формате JSON, где будут указаны:

  1. Регистрационный номер программного продукта.
  2. Тип лицензии (клиентская на определенное количество рабочих мест или серверная).
  3. Текущий статус активации.
  4. Параметры привязки к оборудованию.

Посмотрим на пример автоматизации. Поскольку вывод данных осуществляется в формате JSON, мы можем написать сценарий (на PowerShell или Python), который будет запускать ring по расписанию, парсить результат и выводить сводную таблицу по всем активированным лицензиям. Это позволит избежать ручной проверки каждой лицензии по отдельности.

Анализ файлов лицензий (.lic) напрямую

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

Рассмотрим типичные пути размещения этих файлов:

Хотя файлы лицензий являются бинарными и их нельзя просто прочитать в текстовом редакторе, само их наличие и количество дают важную информацию. Каждая активация (даже если это повторная активация после изменения параметров железа) создает новый файл. Важно помнить: если вы видите в папке много файлов, это не всегда означает, что у вас много лицензий — возможно, это история переактиваций одной и той же лицензии. Для точной идентификации можно использовать сторонние утилиты, такие как liccnt (License Counter), которые умеют "заглядывать" внутрь этих файлов и показывать регистрационный номер и номинал (количество рабочих мест).

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

Разберем стандартный, но ограниченный способ мониторинга через консоль администрирования (MMC-оснастку). Если вы используете клиент-серверный вариант работы, то в разделе "Сеансы" есть колонка "Лицензия".

Проанализируем ситуацию: в этой колонке отображается, какая именно лицензия выдана конкретному пользователю. Однако здесь есть существенный нюанс. Консоль показывает только те лицензии, которые **заняты** в данный момент. Если у вас куплена лицензия на 100 пользователей, а в системе сейчас сидит 10 человек, вы увидите информацию только по этим 10 лицензиям. Узнать общий объем купленного пула лицензий через стандартную консоль невозможно.

Этот метод полезен для оперативной проверки: "Кто занял последнюю лицензию?", но бесполезен для инвентаризации всех активов компании.

Программный метод получения информации в 1С 8.3

Начиная с версии платформы 8.3.15, разработчики добавили возможность получать сведения о лицензиях непосредственно из кода на встроенном языке 1С. Это открывает широкие возможности для создания собственных отчетов по мониторингу прямо внутри информационной базы.

Рассмотрим пример кода, который позволяет получить массив структур с описанием лицензий:


// Пример получения информации о лицензиях
МассивЛицензий = ПолучитьИнформациюОПрограммныхЛицензиях();

Для Каждого Лицензия Из МассивЛицензий Цикл
    Сообщить("Рег. номер: " + Лицензия.РегистрационныйНомер);
    Сообщить("Количество мест: " + Лицензия.КоличествоРабочихМест);
    Сообщить("Путь к файлу: " + Лицензия.ПутьКФайлу);
КонецЦикла;

Использование метода ПолучитьИнформациюОПрограммныхЛицензиях() позволяет создать обработку, которая будет выводить на форму список всех доступных системе лицензий, их тип (клиентская или серверная) и параметры активации. Это особенно удобно для администраторов файловых баз, работающих через веб-сервер, так как им не нужно настраивать сложные системы мониторинга типа Zabbix.

Интеграция с внешними системами мониторинга (Zabbix, Prometheus)

Для крупных инфраструктур рекомендуется использовать профессиональные системы сбора метрик. Рассмотрим, как настроить такую связку. Основная идея заключается в создании скрипта-агента, который будет выполнять команды ring и передавать данные в Zabbix.

Посмотрим на алгоритм работы такого скрипта:

  1. Скрипт вызывает ring license list для получения списка всех ID.
  2. Для каждого ID выполняется ring license info.
  3. Скрипт суммирует поле КоличествоРабочихМест.
  4. Результат отправляется серверу мониторинга как числовая метрика.

Это позволяет строить графики использования лицензий во времени и настраивать уведомления (триггеры), если количество свободных лицензий приближается к критическому минимуму (например, осталось менее 5% свободных мест).

Особенности лицензирования при работе через Веб-сервер

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

Важный момент: если вы используете многопользовательскую лицензию, активированную на сервере, платформа считает "сеансы", а не "компьютеры". Мониторинг в этом случае должен быть сосредоточен именно на подсчете общего номинала всех активированных .lic файлов по сравнению с текущим количеством активных соединений в журнале регистрации или через COM-соединение к серверу.

Подводя итог, можно сказать, что наиболее надежным и современным способом контроля является сочетание утилиты ring для инвентаризации и встроенной функции ПолучитьИнформациюОПрограммныхЛицензиях() для оперативного контроля внутри программы.

← На главную