Какие лицензии 1С установлены на сервере и кто их сейчас занимает
Содержание
Быстрее всего посмотреть, какие лицензии 1С стоят на сервере, в двух местах. Программные лицензии — это файлы .lic в папке C:\ProgramData\1C\licenses (в Linux — /var/1C/licenses), их состав показывает команда ring license list. Какие лицензии сейчас выданы пользователям, видно в консоли администрирования серверов 1С: узел Лицензии внутри кластера и колонки лицензий в списке сеансов.
Если на сервере аппаратный ключ, его проверяют иначе: через веб-панель Sentinel по адресу http://localhost:1947 или утилитой haspdmp. Ниже все способы по порядку, от самого простого к тем, что нужны для регулярного контроля.
Какие лицензии бывают на сервере 1С и где их искать
На одном сервере обычно живут лицензии двух видов, и путать их нельзя:
- 🖥 Лицензия на сервер — разрешает запуск самого кластера 1С:Предприятия. Бывает МИНИ (до 5 подключений), ПРОФ и КОРП. Без неё сервер не обслуживает базы.
- 👥 Клиентские лицензии — определяют, сколько пользователей одновременно работает в базах. Их можно установить на сервер, и тогда сеансы клиент-серверных баз будут получать лицензии оттуда, а не с компьютеров пользователей.
Каждая из них бывает программной (файл, привязанный к оборудованию) или аппаратной (USB-ключ HASP).
| Вид | Где хранится | Чем смотреть |
|---|---|---|
| Программная (Windows) | C:\ProgramData\1C\licenses\*.lic | ring license list, проводник |
| Программная (Linux) | /var/1C/licenses/*.lic | ring license list |
| Аппаратный ключ сервера | USB-порт сервера | Sentinel Admin Control Center, haspdmp |
| Сетевой ключ клиентов | USB-порт сервера с менеджером лицензий | Sentinel Admin Control Center |
| Выданные сеансам | Память кластера | Консоль администрирования, rac |
Программные лицензии не лежат в реестре Windows и не записываются в файлы .pfl. Файлы .pfl (например, 1cv8.pfl, 1cv8strt.pfl) хранят настройки пользователя и списка баз. Искать в них лицензии бесполезно.
Список лицензий в консоли администрирования сервера 1С
Консоль показывает не «что установлено», а «что выдано прямо сейчас». Это самый точный ответ на вопрос, хватает ли лицензий.
Узел «Лицензии» в дереве кластера
- Запустите оснастку «Администрирование серверов 1С Предприятия».
- Раскройте
Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → ваш кластер. - Откройте узел
Лицензии. Внутри два представления: по рабочим процессам и по сеансам.
В представлении по сеансам у каждой выданной лицензии видны пользователь, база, тип (программная или HASP), имя файла лицензии или серия ключа и максимальное число пользователей по этой лицензии. В представлении по рабочим процессам — серверные лицензии, которые получили процессы rphost.
Колонки в списке сеансов
В узле Сеансы видно, какая база и какой компьютер держат подключение. Если открыть свойства сеанса, на отдельной вкладке будет информация о полученной лицензии. Так быстро находят, с какого компьютера пользователь взял лицензию, если в сети несколько ключей.
Если консоль не открывается или пишет об ошибке подключения к агенту, проверьте, что служба агента сервера запущена и порт 1540 открыт. При ошибке регистрации компонента консоли помогает перерегистрация radmin.dll нужной версии платформы через regsvr32 от имени администратора.
То же самое через rac
На серверах без графической оболочки и в Linux используют rac. Сначала нужно запустить сервер
администрирования ras (по умолчанию слушает порт 1545):
ras cluster --daemon
rac cluster list
rac session list --cluster=<uuid-кластера> --licenses
rac process list --cluster=<uuid-кластера> --licenses
Если на кластере задан администратор, добавьте --cluster-user=<имя> --cluster-pwd=<пароль>. Полный список параметров для вашей версии выводит rac help session.
Программные лицензии: файлы .lic и утилита ring
Программная лицензия — это файл с расширением .lic. В имени файла обычно есть регистрационный номер. Сколько файлов в папке, столько и активированных лицензий, но число пользователей по каждой из имени файла не понять.
Где именно искать файлы
- 📁 Windows:
C:\ProgramData\1C\licenses. Папка скрытая — включите отображение скрытых элементов или вставьте путь в адресную строку проводника. - 📁 Linux:
/var/1C/licenses. - 📁 Иногда файлы оказываются в профиле пользователя, от имени которого их активировали. Если в общей папке пусто, а лицензия работает, проверьте профиль учётной записи службы сервера 1С.
Что показывает ring
Утилита ring входит в состав «1С:Предприятие License Tools» и ставится отдельным пакетом. Она читает файлы лицензий и показывает, на что они выданы.
ring license list --send-statistics false
ring license info --name <имя-лицензии> --send-statistics false
ring license validate --name <имя-лицензии> --send-statistics false
list выводит имена всех лицензий и файлы, в которых они лежат. info раскрывает одну лицензию: продукт, число пользователей, данные владельца. validate проверяет, подходит ли лицензия к текущему оборудованию. Если папка лицензий нестандартная, укажите её параметром --path.
Почему лицензия есть, но не работает
Файл привязан к параметрам компьютера: процессору, дискам, сетевым картам, имени машины. После замены оборудования, переноса виртуальной машины или клонирования сервера файл остаётся на месте, но становится недействительным. Именно это и показывает ring license validate.
Не удаляйте «лишние» файлы .lic, не узнав, что в них. Сначала посмотрите ring license info. Удалённую лицензию придётся восстанавливать с пин-кодом, а число повторных активаций ограничено.
Аппаратные ключи HASP: haspdmp и панель Sentinel
С ключами вопрос не в файлах, а в том, видит ли ключ драйвер и менеджер лицензий.
Sentinel Admin Control Center
После установки драйвера ключей на сервере работает веб-панель. Откройте в браузере на сервере http://localhost:1947:
- Раздел
Sentinel Keys— какие ключи сейчас подключены и видны драйверу. - Раздел
Sessions— какие компьютеры заняли сетевой ключ. - Раздел
Configuration— настройки доступа к ключам с других машин.
Если ключа нет в списке Sentinel Keys, 1С его тоже не увидит. Чаще всего виноват драйвер или USB-проброс в виртуальную машину.
Утилита haspdmp
haspdmp.exe — диагностическая утилита для ключей защиты 1С. Её запускают на компьютере с ключом из командной строки, вывод сохраняют в файл и смотрят, какие ключи найдены и какая серия у каждого:
haspdmp.exe > C:\Temp\hasp_dump.txt
Серия ключа подсказывает его назначение. Серверные ключи 8.3 маркированы ENSR8 (32-разрядный сервер) и EN8SA (64-разрядный). Клиентские ключи имеют другую маркировку, она же напечатана на корпусе ключа.
| Серия | Что это |
|---|---|
ENSR8 | Ключ 32-разрядного сервера 1С |
EN8SA | Ключ 64-разрядного сервера 1С |
| Другая маркировка | Клиентский ключ — локальный или сетевой |
Ключ 32-разрядного сервера не запустит 64-разрядный кластер. Если серия ENSR8, а установлен 64-разрядный сервер, лицензия не будет получена, хотя ключ виден в Sentinel.
Сетевые клиентские ключи раздаёт менеджер лицензий HASP. Он работает по порту 475 UDP/TCP — его нужно открыть в брандмауэре сервера, иначе клиенты ключ не найдут.
Какую лицензию получил сеанс: проверка из информационной базы
Отдельного отчёта по лицензиям в типовых конфигурациях нет. Но любой пользователь может посмотреть, откуда взята его лицензия.
- Откройте базу в 1С:Предприятии.
- Нажмите на значок главного меню в левом верхнем углу и выберите
Справка → О программе. - В окне найдите строку про лицензию. Там указано, что лицензия получена: с сервера 1С:Предприятия, из локального файла, из ключа и с какого именно.
Этот способ удобен, когда на сервере стоят и программные лицензии, и ключ, и надо понять, какой источник реально используется.
Кто выдаёт лицензии клиентским сеансам
В свойствах информационной базы в консоли кластера есть флажок про выдачу лицензий сервером 1С:Предприятия. Когда он включён, клиентские лицензии для сеансов этой базы берутся с сервера. Когда выключен — с компьютера пользователя или из сетевого ключа. Если пользователи жалуются на нехватку лицензий, хотя на сервере их достаточно, проверьте этот флажок первым.
Технологический журнал: событие LIC
Чтобы увидеть историю, а не только текущий момент, включите в технологическом журнале событие LIC. Оно фиксирует получение и освобождение лицензий. Пример файла logcfg.xml в папке conf платформы:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1C_techlog\lic" history="24">
<event>
<eq property="name" value="LIC"/>
</event>
<property name="all"/>
</log>
</config>
Журнал быстро растёт. Включайте его на время расследования и отключайте после: удалите или переименуйте logcfg.xml.
Зависшие сеансы держат лицензии: как найти и освободить
Типичная жалоба: «лицензий 20, работают 12 человек, а новым пишет, что лицензий нет». Обычно лицензии заняты сеансами, которые пользователи бросили открытыми или которые остались после обрыва связи.
Как найти
- В консоли откройте
Сеансыи отсортируйте список по времени последней активности. - Ищите сеансы с давней активностью, с компьютеров выключенных или уволенных сотрудников, дубли одного пользователя.
- Сверьте число сеансов с числом выданных лицензий в узле
Лицензии.
Как освободить
- 🔌 Удалить конкретный сеанс: правой кнопкой по сеансу →
Удалить. Черезrac—rac session terminate --cluster=<uuid> --session=<uuid>. - ⏱ Настроить автоматическое завершение: в свойствах информационной базы задайте время засыпания пассивного сеанса и время завершения спящего сеанса.
- 👥 Проверить фоновые задания и внешние подключения (COM, веб-сервисы): они тоже создают сеансы.
Принудительное завершение сеанса обрывает работу пользователя: несохранённый документ пропадёт. Предупредите человека или делайте это вне рабочего времени. Перезапуск службы сервера 1С освобождает все лицензии разом, но выкидывает из баз всех пользователей — это крайняя мера.
Скрипт для регулярной проверки лицензий
Если лицензий впритык, удобно раз в 10–15 минут записывать число сеансов и получать предупреждение заранее. Простой вариант для Windows на PowerShell через rac:
$rac = "C:\Program Files\1cv8\8.3.24.1548\bin\rac.exe"
$limit = 20 # сколько клиентских лицензий куплено
$warn = 18 # порог предупреждения
$clusterLine = & $rac cluster list | Select-String "^cluster\s*:"
$cluster = ($clusterLine -split ":\s*")[1].Trim()
$sessions = & $rac session list --cluster=$cluster | Select-String "^session\s*:"
$count = @($sessions).Count
$stamp = Get-Date -Format "yyyy-MM-dd HH:mm"
Add-Content -Path "C:\1C_monitor\sessions.log" -Value "$stamp;$count"
if ($count -ge $warn) {
Write-EventLog -LogName Application -Source "1C-Monitor" -EventId 1001 `
-EntryType Warning -Message "Сеансов 1С: $count из $limit"
}
Замените путь к rac.exe на вашу версию платформы. Перед первым запуском зарегистрируйте источник событий одной командой от администратора: New-EventLog -LogName Application -Source "1C-Monitor". Запуск по расписанию — через Планировщик заданий.
Учтите, что скрипт считает все сеансы, включая фоновые задания и Конфигуратор. Для точного подсчёта именно лицензий используйте вывод rac session list --licenses и сравнивайте его с узлом Лицензии в консоли.
Для Linux та же логика пишется на bash с grep -c '^session' и запуском из cron. Отдельно раз в неделю полезно прогонять ring license validate по всем лицензиям: так вы узнаете о слетевшей привязке до того, как утром не запустится сервер.