Где сервер 1С берёт лицензии и как убедиться, что их хватает

· 9 мин

Содержание

Быстрее всего проверить лицензию 1С на сервере тремя способами. Консоль администрирования серверов покажет, какие лицензии сейчас заняты сеансами. Команда rac session list --licenses выдаст то же самое в текст для скрипта. Утилита ring license list перечислит программные лицензии, которые лежат на сервере. Для аппаратного ключа HASP добавьте четвёртую проверку — страницу http://localhost:1947.

Выбор зависит от задачи. Нужно разово понять, «сколько занято из скольких» — хватит консоли. Пользователи получают Не обнаружено свободной лицензии!, а лицензии вроде бы есть — нужен техжурнал с событием LIC. Хотите заранее знать о нехватке — автоматизируйте rac. Всё ниже относится к платформе 8.3 в клиент-серверном варианте, конфигурация (БП, ЗУП, УТ) роли не играет.

Какие лицензии нужны серверу 1С и где они хранятся

На сервере работают лицензии двух видов, и проверять их нужно по-разному.

  • 🖥️ Серверная лицензия — разрешает запуск рабочих процессов кластера. Без неё сервер 1С не обслуживает базы. Разрядность важна: лицензия на 32-разрядный сервер не подходит для 64-разрядного.
  • 👥 Клиентские лицензии — по одной на каждое подключение пользователя. Их может выдавать сам сервер (если файлы клиентских лицензий лежат на нём) или каждый компьютер пользователя сам.

Носитель тоже бывает двух типов:

НосительГде искатьЧем проверять
Программная лицензия (файл .lic)Windows: C:\ProgramData\1C\licenses; Linux: /var/1C/licensesring license list, консоль, техжурнал
Аппаратный ключ HASPUSB-порт сервера или сервера лицензийhttp://localhost:1947, менеджер лицензий HASP

Программная лицензия привязана к параметрам оборудования. Заменили материнскую плату, сетевую карту, переехали на другую виртуальную машину — файл остаётся на диске, но перестаёт считаться действительным. Это самая частая причина внезапного отказа после «ничего не меняли».

Если на сервере работает служба 1С, а лицензия активировалась под учётной записью пользователя, файл может лечь в профиль этого пользователя. Служба его не увидит. Для сервера лицензию активируют так, чтобы файл попал в общий каталог ProgramData.

Проверка в консоли администрирования серверов 1С

Консоль — основной инструмент, когда нужно увидеть картину прямо сейчас. Она подключается к агенту сервера (порт 1540 по умолчанию) и показывает данные кластера.

Посмотреть, какие лицензии заняты

  1. Запустите консоль администрирования серверов 1С:Предприятия той же версии, что и сервер.
  2. Разверните Центральные серверы 1С:Предприятия → <имя сервера> → Кластеры → <кластер>.
  3. Откройте узел Сеансы. Каждая строка — подключение пользователя. В свойствах сеанса видно, какая лицензия ему выдана и откуда она получена.
  4. Разверните Рабочие процессы и выберите процесс. У процесса есть вложенный узел Лицензии — там лицензии, которые захватил именно этот процесс, в том числе серверная.

Если в узле лицензий рабочего процесса пусто, а базы не открываются, сервер не нашёл серверную лицензию. Дальше идите в раздел про файлы и ключи.

Включить выдачу клиентских лицензий сервером

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

Если консоль не открывается и пишет про незарегистрированный компонент, перерегистрируйте radmin.dll нужной версии командой regsvr32 от имени администратора. Путь к файлу — каталог bin установленной платформы, например C:\Program Files\1cv8\8.3.24.1691\bin\radmin.dll (номер подставьте свой).

Файлы лицензий, реестр и конфигурационные файлы

Консоль показывает только то, что сервер уже взял. Чтобы понять, что у него вообще есть, проверьте файлы.

Каталог с файлами .lic

Откройте C:\ProgramData\1C\licenses (или /var/1C/licenses на Linux). Там лежат файлы с расширением .lic — по одному на активированный пинкод.

  • 📄 Файлов нет — лицензия не активирована на этом сервере или лежит в профиле пользователя.
  • 📄 Файлов больше, чем купленных комплектов, — на сервер когда-то активировали лишнее или переносили лицензии; лишние ничего не дают, но путают при учёте.
  • 🔒 У учётной записи, под которой запущена служба агента, должны быть права на чтение каталога. Иначе файлы есть, а лицензии «не найдены».

Содержимое файла руками не правят: любая правка делает лицензию недействительной.

Утилита ring license

В составе платформы 8.3 есть компонент лицензирования с утилитой ring. Она показывает лицензии без запуска 1С:

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

Первая команда выводит имена лицензий из стандартного каталога. Вторая показывает данные конкретной: на кого выдана, какой продукт и на сколько пользователей. Если утилита сообщает, что лицензия не соответствует оборудованию, — это ровно тот случай с заменой железа. Остальные параметры смотрите в ring license --help.

Реестр и параметры службы

Сами лицензии в реестре Windows не хранятся. Но реестр помогает найти, где работает сервер. Ветка службы агента сервера лежит в HKLM\SYSTEM\CurrentControlSet\Services\, название службы содержит 1C:Enterprise 8.3 Server Agent. В параметре ImagePath видно:

  • путь к ragent.exe — значит, и версию платформы;
  • порты агента (-port, по умолчанию 1540) и менеджера (-regport, 1541);
  • диапазон портов рабочих процессов (-range, обычно 1560:1591);
  • каталог данных кластера (-d, обычно srvinfo).

Версия из ImagePath должна совпадать с версией консоли и клиента. Расхождение — частый источник путаницы при проверке.

Для сетевых ключей HASP клиенты ищут сервер ключей по файлу nethasp.ini в каталоге conf платформы. Если менеджер лицензий стоит на отдельной машине, её адрес прописывают в параметре NH_SERVER_ADDR.

Ключи защиты HASP и пинкоды

Аппаратный ключ

  1. Убедитесь, что ключ виден системе: на сервере откройте в браузере http://localhost:1947. Это страница управления драйвером Sentinel. В списке ключей должен быть ваш.
  2. Ключа в списке нет — переустановите драйвер HASP, переткните ключ в другой порт, на виртуальной машине проверьте проброс USB.
  3. Для сетевых клиентских ключей должна работать служба менеджера лицензий HASP. Без неё клиенты в сети ключ не увидят.

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

Программная лицензия и пинкоды

Пинкод — это код активации из конверта комплекта. К основному пинкоду прилагаются резервные. Каждая повторная активация (после смены оборудования или переустановки) расходует один пинкод.

Проверьте и запишите:

  • какие пинкоды уже использованы и на каком сервере;
  • сколько резервных осталось;
  • регистрационный номер комплекта — он понадобится, если резерв кончился и нужно восстанавливать лицензию через центр лицензирования.

Не активируйте пинкод «на пробу» на тестовой машине: он израсходуется, и для рабочего сервера останется меньше резервных.

Журнал регистрации, техжурнал и сообщения об ошибках

Журнал регистрации информационной базы (Администрирование → Обслуживание → Журнал регистрации) показывает начало и завершение сеансов. По нему удобно понять, кто и когда входил, если подозрение на «лишних» пользователей. Причину отказа в лицензии он обычно не раскрывает.

Для этого есть технологический журнал и событие LIC. Создайте файл logcfg.xml в каталоге conf платформы на сервере:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\techlog\lic" history="24">
    <event>
      <eq property="name" value="LIC"/>
    </event>
    <property name="all"/>
  </log>
</config>

Сервер подхватывает файл без перезапуска, через минуту-другую. Воспроизведите ошибку и откройте свежие файлы .log в C:\techlog\lic. В событиях видно, какие файлы и ключи сервер перебирал и почему отказался от каждого.

Техжурнал быстро растёт. Держите history небольшим и удалите logcfg.xml, когда закончите. Каталог для логов должен быть доступен на запись учётной записи службы.

Диагностика: выберите симптом

Лимиты подключений: считаем занятые и свободные лицензии

Количество клиентских лицензий складывается из всех доступных комплектов: файлов .lic плюс ключей. Например, на сервере лежат лицензии на 10 и на 5 рабочих мест — всего 15 одновременных подключений.

Что занимает лицензию:

  • 👤 каждый сеанс пользователя в тонком, толстом или веб-клиенте;
  • 🔁 подключения внешних программ через COM, если они открывают сеанс базы;
  • 🌐 подключения через веб-сервисы и HTTP-сервисы при работе с базой.

Фоновые задания и сеансы Конфигуратора считаются по своим правилам, поэтому реальную картину смотрите в списке сеансов, а не на глаз.

Как найти «утечку» лицензий:

  1. Отсортируйте сеансы в консоли по времени начала.
  2. Найдите сеансы, которые висят днями, и сеансы одного пользователя с разных компьютеров.
  3. Уточните у пользователя, работает ли он. Если нет — завершите сеанс в консоли.

Принудительное завершение сеанса обрывает работу пользователя без сохранения. Несохранённые документы пропадут. Предупредите человека или делайте это вне рабочего времени.

Если лицензий стабильно не хватает в пиковые часы, проблема не в настройке — нужен дополнительный комплект клиентских лицензий.

Автоматический мониторинг лицензий через rac

Консоль хороша для разовой проверки. Чтобы знать о нехватке заранее, используют rac — утилиту командной строки. Она работает через сервер администрирования ras, который нужно запустить на сервере 1С (по умолчанию порт 1545).

Базовые команды:

rac localhost:1545 cluster list
rac localhost:1545 session list --cluster=<uuid-кластера> --licenses

Первая выдаёт идентификатор кластера. Вторая — сеансы с данными о лицензиях: тип (программная или аппаратная), откуда выдана, на сколько пользователей рассчитана. Если в кластере задан администратор, добавьте его имя и пароль — параметры смотрите в rac help session.

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

$rac = "C:\Program Files\1cv8\8.3.24.1691\bin\rac.exe"
$cluster = "<uuid-кластера>"
$total = 15   # сколько клиентских лицензий куплено

$out = & $rac localhost:1545 session list --cluster=$cluster --licenses
$used = ($out | Select-String -Pattern '^session\s*:').Count
$free = $total - $used

"{0:yyyy-MM-dd HH:mm}  занято {1} из {2}" -f (Get-Date), $used, $total |
    Add-Content "C:\scripts\lic-monitor.log"

if ($free -lt 2) {
    Write-EventLog -LogName Application -Source "1C-Lic" -EntryType Warning `
        -EventId 100 -Message "Свободных лицензий 1С: $free"
}

Источник событий 1C-Lic один раз создайте командой New-EventLog -LogName Application -Source "1C-Lic" от администратора. Скрипт поставьте в планировщик заданий раз в 10–15 минут. Через неделю лог покажет реальный пик: если он упирается в 15, а в остальное время занято 8–9, проще перераспределить работу, чем докупать.

Сверьте счётчик скрипта с консолью в первый день. Если в вашей версии вывод отличается, поправьте шаблон поиска строк.

Регулярная проверка лицензий сервера 1С
Выполнено: 0 / 6

Частые вопросы о проверке лицензий на сервере

Можно ли посмотреть номер лицензии из самой базы?
Да. В клиенте откройте главное меню, раздел «Справка» и окно «О программе». Там видно, какая лицензия использована текущим сеансом и откуда она получена.
Нужна ли серверная лицензия, если базы файловые?
Нет. Серверная лицензия нужна только для клиент-серверного варианта с кластером 1С. Для файловых баз хватает клиентских лицензий.
Можно ли перенести программную лицензию на новый сервер?
Да, повторной активацией на новом оборудовании. Она расходует резервный пинкод. Когда резерв кончился, восстанавливают через центр лицензирования по регистрационному номеру комплекта.
Сколько клиентских лицензий забирает один пользователь с двумя окнами 1С?
Если оба окна запущены на одном компьютере, обычно одну. С разных компьютеров или терминальных сеансов — по одной на каждый.
Работает ли сервер 1С без лицензии в ограниченном режиме?
Нет. Без серверной лицензии кластер не обслуживает базы. Исключение — учебная версия, но у неё нет клиент-серверного режима.