Сколько лицензий 1С занято и где их искать: консоль, rac, ключи

· 9 мин

Содержание

Свободные лицензии 1С считают так: всего куплено минус занято сейчас. Занятые в клиент-серверном варианте видно командой rac session list --cluster=<id> --licenses или в консоли администрирования серверов, общее количество — в свойствах файлов программных лицензий (ring license list) и в мониторе сетевого HASP-ключа.

Типичная ситуация: утром сотрудник не может войти и видит сообщение о нехватке лицензий, хотя «все свои» вроде бы уже на месте. Ниже — где смотреть занятые и свободные места, как найти сеанс, который держит лицензию впустую, и как настроить контроль, чтобы это не повторялось.

Как 1С выдаёт лицензии и откуда берётся «свободное место»

Чтобы правильно посчитать остаток, нужно понимать, кто и как забирает лицензию.

Есть два вида клиентских лицензий:

  • 🔑 Программная лицензия — файл с расширением .lic, активируется по пин-коду и привязывается к оборудованию компьютера. В Windows лежит в C:\ProgramData\1C\licenses (иногда в профиле пользователя %AppData%\1C\licenses), в Linux — в /var/1C/licenses.
  • 🧱 Аппаратный ключ HASP — USB-ключ. Однопользовательский работает на том компьютере, куда вставлен. Сетевой раздаёт места по сети через менеджер лицензий HASP License Manager.

Кто забирает лицензию:

  • 💻 Файловый вариант. Каждый компьютер получает лицензию сам: из локального файла или от сетевого ключа. Несколько окон 1С на одном компьютере расходуют одну лицензию.
  • 🖥️ Клиент-серверный вариант. Лицензию может получать клиент или сервер 1С:Предприятия. Если в свойствах информационной базы разрешена выдача лицензий сервером, клиентские места берутся из лицензий, установленных на сервере.
  • 🛠️ Конфигуратор — тоже клиентский сеанс и тоже занимает место. Об этом часто забывают, когда считают «живых» пользователей.

Отсюда главный вывод: «свободных лицензий» нельзя увидеть одним числом в одном окне. Ёмкость смотрят в одном месте, занятость — в другом.

Что нужно узнатьГде смотретьВариант работы
Какая лицензия у текущего пользователяокно «О программе» в самой 1Слюбой
Сколько мест всего в программных лицензияхring license list, ring license infoлюбой
Сколько мест занято на сервере 1Сконсоль кластера, rac ... --licensesклиент-серверный
Сколько мест занято в сетевом HASPAladdin Monitor / монитор менеджера лицензийлюбой

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

Консоль — оснастка «Администрирование серверов 1С:Предприятия» (1CV8 Servers.msc). Ставится вместе с сервером 1С. Если оснастка не открывается или пустая, зарегистрируйте radmin.dll той версии платформы, что и сервер: regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" от имени администратора.

Порядок проверки:

  1. Откройте консоль, разверните Central 1C:Enterprise 8.3 Servers → <имя сервера> → Кластеры → <кластер>.
  2. Перейдите в узел Сеансы. Здесь все сеансы кластера: пользователь, компьютер, приложение, время начала и последней активности.
  3. Отфильтруйте по колонке «Приложение». Клиентские сеансы — тонкий клиент, толстый клиент, веб-клиент и Конфигуратор. Фоновые задания (BackgroundJob) пользовательскую лицензию не расходуют.
  4. Чтобы увидеть лицензии, которые получил сам сервер, разверните Рабочие процессы → <процесс> → Лицензии. Там видно, какой файл или ключ выдал место и сколько пользователей рассчитана эта лицензия.
  5. Сложите ёмкость всех лицензий и вычтите число клиентских сеансов (по правилу «один компьютер — одна лицензия», см. ниже про терминал).

Пример подсчёта

На сервере 1С активированы две программные лицензии: на 10 и на 5 пользователей, итого 15 мест. В узле Сеансы 16 строк. Из них 2 — фоновые задания, 1 — Конфигуратор программиста, 13 — тонкие клиенты. Два тонких клиента запущены с одного компьютера без терминала, значит, они делят одно место.

Считаем: 13 − 1 + 1 (Конфигуратор) = 13 занятых мест. Свободно 15 − 13 = 2.

Отсортируйте список сеансов по «Последней активности». Сеанс, где пользователь ничего не делал с вчерашнего вечера, — первый кандидат на завершение.

Диагностика занятых лицензий утилитой rac

Консоль удобна глазами, но для точного подсчёта и скриптов лучше командная строка. Утилита rac работает через сервер администрирования ras, а он — через агент кластера (порт 1540).

Запуск ras

Если ras ещё не работает как служба, запустите его вручную на сервере 1С из каталога bin платформы:

cd "C:\Program Files\1cv8\<версия>\bin"
ras cluster --port=1545 localhost:1540

Для постоянной работы ras регистрируют службой Windows. Порт 1545 — порт по умолчанию, его же указывают в командах rac.

Получить идентификатор кластера

rac localhost:1545 cluster list

В выводе найдите строку cluster — это UUID кластера. Он понадобится во всех следующих командах.

Посмотреть лицензии сеансов

rac localhost:1545 session list --cluster=<uuid> --licenses

Если у кластера заданы администраторы, добавьте --cluster-user=<имя> --cluster-pwd=<пароль>.

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

  • session — идентификатор сеанса, по нему потом ищут пользователя;
  • license-type — программная лицензия (soft) или ключ (hasp);
  • series — серия ключа или файла лицензии;
  • issued-by-server — выдана сервером или получена клиентом;
  • max-users-all — на сколько пользователей рассчитана лицензия;
  • max-users-cur — сколько мест из неё занято сейчас.

Разница max-users-all − max-users-cur по каждой лицензии и даёт свободные места. Если строк с одной серией несколько — это одна и та же лицензия, а не несколько.

Лицензии рабочих процессов (то есть самого сервера) смотрят аналогично:

rac localhost:1545 process list --cluster=<uuid> --licenses

Полный список ключей конкретной команды всегда выводит rac help session или rac help process.

Ёмкость лицензий, логи и служебные файлы

Занятые места знает сервер. А вот сколько мест вы вообще купили, подскажут сами лицензии.

Программные лицензии: ring

В платформу входит утилита ring с модулем управления лицензиями (нужна установленная Java). Команды выполняют на том компьютере, где активирована лицензия:

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

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

Не копируйте файлы .lic на другой компьютер, чтобы «добавить мест». Лицензия привязана к оборудованию, на чужой машине она станет недействительной, а исходную придётся восстанавливать резервным пин-кодом.

Сетевой HASP: монитор ключа

Для сетевых ключей ставят Aladdin Monitor (Sentinel Monitor). Он показывает, на каком компьютере работает менеджер лицензий, какие ключи там найдены, максимальное и текущее число подключений и список адресов, которые держат места. Это и есть ответ на вопрос о свободных лицензиях для HASP.

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

Технологический журнал

Когда непонятно, почему место не освобождается, включите технологический журнал с событием LIC — в нём фиксируются операции лицензирования. Настройка задаётся файлом logcfg.xml в каталоге conf платформы:

<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\techlog" history="24">
    <event>
      <eq property="name" value="LIC"/>
    </event>
    <property name="all"/>
  </log>
</config>

Журнал быстро растёт — выключайте его сразу после диагностики, а значение history (часы хранения) держите небольшим.

Окно «О программе»

Самая быстрая проверка без прав администратора. В интерфейсе «Такси» откройте меню-гамбургер или значок «?» в правом верхнем углу и выберите «О программе». В блоке о лицензии видно, получена она от сервера, из файла программной лицензии или от ключа. Это помогает понять, из какого «кармана» пользователь берёт место.

Терминальный сервер: почему мест уходит больше

Самая частая причина «внезапной» нехватки — работа через RDP. Каждый терминальный сеанс 1С считает отдельным компьютером. Десять сотрудников на одном терминальном сервере занимают десять лицензий, а не одну.

Что учесть:

  • 🖥️ Многопользовательскую программную лицензию для терминала активируют на самом терминальном сервере или на сервере 1С, если включена выдача лицензий сервером.
  • 🔁 Отключённый, но не завершённый RDP-сеанс продолжает держать 1С открытой — а с ней и лицензию. Настройте в Windows лимит для отключённых сеансов через групповые политики служб удалённых рабочих столов.
  • 📦 При публикации 1С через RemoteApp публикуйте 1cestart.exe или клиент нужной версии, чтобы пользователи не запускали лишние копии.

Если терминальный сервер и сервер 1С — разные машины, сначала выясните, кто именно выдаёт лицензию (через «О программе»). Иначе можно искать свободные места на сервере 1С, когда они берутся из файла на терминале.

Автоматический мониторинг и освобождение мест

Ручная проверка помогает раз. Чтобы не ловить нехватку утром, настройте контроль.

Таймауты сеансов в свойствах базы

В консоли откройте свойства информационной базы. Там задаются время засыпания пассивного сеанса и время завершения спящего сеанса. Значения в секундах; например, 1800 и 3600 секунд — сеанс без активности засыпает через полчаса и завершается ещё через час.

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

Скрипт подсчёта

PowerShell-скрипт, который считает занятые места и пишет результат в журнал. Его ставят в планировщик заданий, например, каждые 15 минут:

$rac = "C:\Program Files\1cv8\<версия>\bin\rac.exe"
$cl  = "<uuid кластера>"
$out = & $rac localhost:1545 session list --cluster=$cl --licenses
$busy = ($out | Select-String -Pattern '^session\s').Count
"$(Get-Date -Format 'yyyy-MM-dd HH:mm') занято: $busy" |
  Add-Content "C:\scripts\lic_monitor.log"

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

Принудительное завершение сеанса

Зависший сеанс можно закрыть в консоли (контекстное меню сеанса → удалить) или командой:

rac localhost:1545 session terminate --cluster=<uuid> --session=<id сеанса>

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

Если лицензий не хватает: ошибки и что с ними делать

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

Ещё одна неочевидная ловушка — смешанная схема. Часть компьютеров получает место от HASP, часть — из программной лицензии на сервере. Тогда считать надо по каждому источнику отдельно, а не сложением «на глаз».

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

Можно ли узнать число свободных лицензий в самой конфигурации, без доступа к серверу?
Только частично. Список «Активные пользователи» показывает сеансы, но не ёмкость лицензий. Полную картину дают консоль кластера, rac и монитор ключа.
Расходуют ли лицензию веб-сервисы и HTTP-запросы к базе?
Сеансы веб-сервисов и HTTP-сервисов видны в консоли отдельным типом приложения. Учитывайте их в подсчёте, если в выводе rac –licenses у таких сеансов есть лицензия.
Сколько лицензий занимает пользователь, открывший две базы на одном компьютере?
Без терминала — одну: лицензия считается на компьютер. Через RDP — одну на каждый терминальный сеанс.
Можно ли сложить программную лицензию и HASP-ключ?
Да, платформа использует оба источника. Но считать свободные места нужно по каждому из них отдельно.
Почему после закрытия 1С место освободилось не сразу?
Сервер какое-то время ждёт переподключения клиента. Если сеанс так и висит, проверьте таймауты сеансов в свойствах базы или завершите его вручную.