Какие лицензии 1С установлены на сервере и кто их сейчас занимает

· 9 мин

Содержание

Быстрее всего посмотреть, какие лицензии 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\*.licring license list, проводник
Программная (Linux)/var/1C/licenses/*.licring license list
Аппаратный ключ сервераUSB-порт сервераSentinel Admin Control Center, haspdmp
Сетевой ключ клиентовUSB-порт сервера с менеджером лицензийSentinel Admin Control Center
Выданные сеансамПамять кластераКонсоль администрирования, rac

Программные лицензии не лежат в реестре Windows и не записываются в файлы .pfl. Файлы .pfl (например, 1cv8.pfl, 1cv8strt.pfl) хранят настройки пользователя и списка баз. Искать в них лицензии бесполезно.

Список лицензий в консоли администрирования сервера 1С

Консоль показывает не «что установлено», а «что выдано прямо сейчас». Это самый точный ответ на вопрос, хватает ли лицензий.

Узел «Лицензии» в дереве кластера

  1. Запустите оснастку «Администрирование серверов 1С Предприятия».
  2. Раскройте Central 1C:Enterprise 8.3 servers → имя сервера → Кластеры → ваш кластер.
  3. Откройте узел Лицензии. Внутри два представления: по рабочим процессам и по сеансам.

В представлении по сеансам у каждой выданной лицензии видны пользователь, база, тип (программная или 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:

  1. Раздел Sentinel Keys — какие ключи сейчас подключены и видны драйверу.
  2. Раздел Sessions — какие компьютеры заняли сетевой ключ.
  3. Раздел 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С:Предприятии.
  2. Нажмите на значок главного меню в левом верхнем углу и выберите Справка → О программе.
  3. В окне найдите строку про лицензию. Там указано, что лицензия получена: с сервера 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 человек, а новым пишет, что лицензий нет». Обычно лицензии заняты сеансами, которые пользователи бросили открытыми или которые остались после обрыва связи.

Как найти

  1. В консоли откройте Сеансы и отсортируйте список по времени последней активности.
  2. Ищите сеансы с давней активностью, с компьютеров выключенных или уволенных сотрудников, дубли одного пользователя.
  3. Сверьте число сеансов с числом выданных лицензий в узле Лицензии.

Как освободить

  • 🔌 Удалить конкретный сеанс: правой кнопкой по сеансу → Удалить. Через 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 по всем лицензиям: так вы узнаете о слетевшей привязке до того, как утром не запустится сервер.

Что проверить при аудите лицензий сервера
Выполнено: 0 / 6

Частые вопросы

Можно ли скопировать файл .lic на новый сервер?
Нет. Файл привязан к оборудованию старой машины и на новой будет недействителен. Лицензию нужно активировать заново тем же пин-кодом или резервным пин-кодом из комплекта.
Занимает ли лицензию веб-клиент?
Да. Сеанс через веб-клиент или тонкий клиент по HTTP тоже получает клиентскую лицензию, как и обычный тонкий клиент.
Даёт ли лицензия на сервер право работать пользователям?
Нет. Серверная лицензия разрешает только работу кластера. Для каждого одновременно работающего пользователя нужна клиентская лицензия.
Как узнать пин-код по уже установленной лицензии?
Из файла пин-код не извлечь. Его ищут в документах комплекта или в личном кабинете на портале, где регистрировали продукт.
Сколько лицензий занимает один пользователь с двумя окнами?
Если оба окна открыты с одного компьютера, обычно используется одна клиентская лицензия. Сеансы с разных компьютеров считаются отдельно.