Считаем клиентские лицензии 1С на сервере: файлы, ring, консоль и rac
Содержание
Чтобы узнать, сколько лицензий 1С установлено на сервере, откройте папку C:\ProgramData\1C\licenses (в Linux — /var/1C/licenses) и выполните ring license list: каждый файл .lic — это один комплект, а число рабочих мест в нём показывает ring license info. Сколько мест занято прямо сейчас, видно в консоли администрирования серверов 1С и в выводе rac session list --licenses.
Обычно вопрос звучит так: «Купили 30 мест, а пользователи жалуются, что лицензий не хватает». Ответ всегда складывается из двух чисел — сколько мест активировано на сервере и сколько их выдано сеансам. Оба считаются за 10–15 минут.
С чего начать: какие лицензии бывают на сервере 1С
На сервере 1С:Предприятия живут лицензии двух разных назначений. Их нельзя складывать между собой.
- 🖥️ Лицензия на сервер — разрешает запуск самого сервера 1С (обычная или КОРП). Она одна на рабочий сервер и количество пользователей не задаёт.
- 👥 Клиентские лицензии — комплекты на 1, 5, 10, 20, 50, 100, 300 или 500 рабочих мест. Именно их считают, когда спрашивают «сколько у нас лицензий».
По носителю лицензии делятся на программные и аппаратные:
| Носитель | Где лежит | Чем считать |
|---|---|---|
| Программная (PIN-код) | файлы .lic в папке licenses | ring license list, ring license info |
| Аппаратный ключ HASP | USB-ключ в сервере или в соседнем компьютере | менеджер лицензий Sentinel, маркировка ключа |
| Выдана сервером сеансу | память рабочего процесса | консоль кластера, rac |
Сводная таблица по видам лицензий, которые встречаются на сервере:
| Вид лицензии | Что даёт | Сколько мест | Как распознать в ring |
|---|---|---|---|
| Лицензия на сервер | запуск рабочего сервера, ограничений по числу пользователей нет | — | в названии «на сервер» |
| Лицензия на сервер КОРП | то же плюс функции для крупных внедрений | — | в названии «КОРП» |
| Клиентская на 1 место | одно одновременное подключение | 1 | «на 1 рабочее место» |
| Клиентская многопользовательская | комплект одновременных подключений | 5, 10, 20, 50, 100, 300, 500 | число в названии |
| Сетевой ключ HASP | то же, что многопользовательская | по маркировке ключа | в ring не виден |
Клиентская лицензия считается по одновременным сеансам, а не по людям в справочнике пользователей. В базе может быть 60 учётных записей при 20 местах — проблем не будет, пока одновременно работают не больше 20 человек.
Клиентская лицензия, установленная на сервере, раздаётся пользователям только если в свойствах информационной базы разрешена выдача лицензий сервером 1С:Предприятия. Если флаг снят, клиент ищет лицензию у себя на компьютере, и серверные комплекты простаивают.
Отсюда первое правило подсчёта: считать нужно лицензии на той машине, где работает менеджер кластера и рабочие процессы. Лицензии на рабочих местах пользователей к серверу отношения не имеют.
Сколько лицензий активировано: файлы .lic и утилита ring
Это самый точный способ узнать, сколько клиентских лицензий 1С установлено на сервере. Он не зависит от того, работает ли кластер.
Шаг 1. Откройте каталог лицензий
- Подключитесь к серверу по RDP или SSH с правами администратора.
- Откройте каталог:
- Windows:
C:\ProgramData\1C\licenses(папкаProgramDataскрытая, путь удобнее вставить в адресную строку проводника); - Linux:
/var/1C/licenses.
- Windows:
- Посчитайте файлы с расширением
.lic. Один файл — один активированный комплект: серверный или клиентский на N мест.
По имени файла количество мест не определить. Файл зашифрован, открывать его в блокноте бессмысленно.
Шаг 2. Получите список лицензий через ring
Утилита ring с модулем license-tools входит в состав дистрибутива платформы. В Windows она обычно лежит в C:\Program Files\1C\1CE\components\ внутри каталога 1c-enterprise-ring-…, в Linux — в /opt/1C/1CE/components/.
ring license list
Команда выводит имена лицензий в формате PIN-код-регистрационный номер и файл, в котором каждая лежит. Строк будет столько же, сколько файлов в каталоге.
Шаг 3. Посмотрите состав каждой лицензии
ring license info --name 012345678901234-1234567
В выводе есть название продукта: «Клиентская лицензия на 20 рабочих мест», «Лицензия на сервер» и так далее. Сложите числа из названий клиентских лицензий — это и есть ёмкость сервера.
Пример: на сервере четыре файла .lic. ring показывает одну лицензию на сервер, комплекты на 10, 5 и 1 место. Итого 10 + 5 + 1 = 16 клиентских мест.
Если ring пишет, что не находит Java, установите 64-разрядную Java нужной версии или пропишите путь к ней в переменной JAVA_HOME. Сами лицензии от этого не страдают.
Если какой-то файл не проходит проверку, выполните ring license validate --name <имя>. Лицензия, у которой изменились ключевые параметры компьютера (процессор, диски, сетевые карты, имя), перестаёт быть действительной. Такой файл лежит в папке, но мест не даёт — его нельзя учитывать в сумме.
Кто занимает лицензии сейчас: консоль администрирования серверов
Файлы показывают, сколько мест есть. Консоль администрирования серверов 1С показывает, сколько из них занято в эту минуту.
- Запустите оснастку «Администрирование серверов 1С Предприятия».
- Разверните
Центральные серверы 1С:Предприятия → <имя сервера> → Кластеры → <кластер>. - Откройте узел
Сеансы. В списке сеансов есть колонки с данными лицензии: кем выдана, тип (программная или HASP), максимальное число пользователей комплекта. - Разверните отдельный сеанс: в дочернем узле
Лицензиивидно, из какого файла взята лицензия.
Чтобы получить итог, отсортируйте сеансы по колонке лицензии и посчитайте строки, у которых она заполнена. Сеансы без лицензии (часть служебных и фоновых) в сумму не входят.
Если консоль не открывается и пишет об ошибке класса, перерегистрируйте компонент от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Подставьте номер установленной версии платформы. Версия radmin.dll должна совпадать с версией сервера.
Узел Рабочие процессы → <процесс> → Лицензии показывает лицензию на сервер, которую получил процесс. Если там пусто, проблема не в клиентских местах, а в серверной лицензии.
Что лежит в srvinfo и почему лицензий там нет
В запросах про подсчёт часто советуют «заглянуть в конфигурационный файл srvinfo». Важно не перепутать каталоги.
Каталог srvinfo — это реестр кластера. По умолчанию в Windows он находится в C:\Program Files\1cv8\srvinfo, если служба запущена с этим путём в параметре -d. Внутри:
- 📁
1CV8Clst.lst— список кластеров, информационных баз и администраторов; - 📁 папки
reg_1541(по номеру порта менеджера кластера) — данные баз и сеансов; - 📁
snccntx…— сеансовые данные, кэш.
Лицензионных файлов в srvinfo нет. Из 1CV8Clst.lst можно узнать только, сколько рабочих серверов в кластере, а значит, сколько нужно серверных лицензий.
Путь к srvinfo смотрите в свойствах службы «Агент сервера 1С:Предприятия 8.3» — строка запуска ragent.exe содержит параметр -d "<путь>".
Не редактируйте и не удаляйте файлы srvinfo на работающем сервере. Повреждённый 1CV8Clst.lst приводит к тому, что кластер стартует без баз.
Подсчёт через ras и rac из командной строки
Консоль удобна для разового взгляда. Для регулярного контроля и скриптов используют сервер администрирования ras и клиент rac.
Запуск ras
ras устанавливается вместе с сервером. Запуск в консоли:
"C:\Program Files\1cv8\8.3.24.1548\bin\ras.exe" cluster --port=1545 localhost:1540
Здесь 1540 — порт агента сервера, 1545 — порт, на котором ras принимает команды. Для постоянной работы ras регистрируют службой Windows.
Команды rac
- Получите идентификатор кластера:
rac localhost:1545 cluster list
- Выведите сеансы с данными лицензий:
rac localhost:1545 session list --cluster=<uuid> --licenses
Если на кластере задан администратор, добавьте --cluster-user=<имя> --cluster-pwd=<пароль>.
В выводе у каждого сеанса есть поля license-type, issued-by-server, max-users-all, max-users-cur, full-name (путь к файлу лицензии). Количество блоков с заполненной лицензией и есть число занятых мест.
Быстрый подсчёт в PowerShell:
$uuid = "<uuid кластера>"
(rac localhost:1545 session list --cluster=$uuid --licenses |
Select-String "^license-type").Count
Аналог в Linux:
rac localhost:1545 session list --cluster="$UUID" --licenses | grep -c '^license-type'
Сравните результат с суммой из ring. Если занято 16 из 16 — следующий пользователь получит отказ.
Серверные лицензии проверяют отдельной командой:
rac localhost:1545 process list --cluster=<uuid> --licenses
Она показывает, какую лицензию на сервер получил каждый рабочий процесс. Пустой вывод при работающих процессах означает, что сервер запущен без серверной лицензии, и клиентские места тут ни при чём.
Скрипт удобно запускать от имени отдельной учётной записи с правами администратора кластера. Пароль не храните в теле скрипта открытым текстом: вынесите его в защищённый файл или переменную окружения службы.
Если нужна команда, которой нет здесь, смотрите встроенную справку rac help session — синтаксис отличается между версиями платформы.
Аппаратные ключи HASP: как узнать количество мест
Если в сервер вставлен USB-ключ, файлов .lic для него нет. Количество мест определяется самим ключом.
- Посмотрите на маркировку ключа. Сетевые многопользовательские ключи 1С имеют разный цвет и надпись с числом пользователей, например
ORGL8 NET5,NET10,NET50. - Откройте Sentinel Admin Control Center в браузере на сервере:
http://localhost:1947. В разделе ключей видно, что ключ подключён и опознан, а в разделе сеансов — сколько соединений к нему открыто. - Проверьте файл
nethasp.iniв каталогеconfплатформы на клиентах. В нём указывают адрес сервера с ключом, если широковещательный поиск в сети не работает .
Ключ на 10 мест плюс программная лицензия на 5 мест дают 15 мест только при условии, что обе лицензии доступны одному серверу. Ключ на соседнем компьютере работает через менеджер лицензий по сети, и при его недоступности 10 мест пропадают разом.
Почему лицензий не хватает: диагностика
Типичная картина: по документам 20 мест, в консоли занято 14, а пятнадцатый пользователь видит Не обнаружена лицензия для использования программы!. Причины проверяйте по порядку.
Завершение сеанса из консоли обрывает работу пользователя без сохранения. Предупредите людей или делайте это вне рабочего времени. Перезапуск службы агента сервера отключает всех пользователей всех баз кластера сразу.
Ещё одна частая ситуация — лицензия привязана к виртуальной машине, а гипервизор при переносе меняет MAC-адрес или идентификатор диска. После такой миграции лицензия становится недействительной. Закрепите параметры виртуальной машины статично до активации.
Как не терять счёт лицензиям
- 📋 Ведите реестр: PIN-код, регистрационный номер, число мест, дата активации, имя сервера. Конверты с резервными PIN-кодами храните отдельно от сервера.
- 🔁 Делайте копию каталога
licensesперед обновлением ОС, переносом виртуальной машины или заменой оборудования. - 📊 Повесьте скрипт с
rac session list --licensesв планировщик раз в 15 минут и пишите число в лог. Через неделю видно пиковую загрузку, и спор «хватает или нет» решается цифрами. - 🧹 Настройте в свойствах кластера автоматическое завершение неактивных сеансов, если пользователи часто оставляют 1С открытой на ночь.