Сколько лицензий 1С занято и где их искать: консоль, rac, ключи
Содержание
Свободные лицензии 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 | клиент-серверный |
| Сколько мест занято в сетевом HASP | Aladdin Monitor / монитор менеджера лицензий | любой |
Проверка лицензий через консоль администрирования серверов 1С
Консоль — оснастка «Администрирование серверов 1С:Предприятия» (1CV8 Servers.msc). Ставится вместе с сервером 1С. Если оснастка не открывается или пустая, зарегистрируйте radmin.dll той версии платформы, что и сервер: regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" от имени администратора.
Порядок проверки:
- Откройте консоль, разверните
Central 1C:Enterprise 8.3 Servers → <имя сервера> → Кластеры → <кластер>. - Перейдите в узел
Сеансы. Здесь все сеансы кластера: пользователь, компьютер, приложение, время начала и последней активности. - Отфильтруйте по колонке «Приложение». Клиентские сеансы — тонкий клиент, толстый клиент, веб-клиент и Конфигуратор. Фоновые задания (
BackgroundJob) пользовательскую лицензию не расходуют. - Чтобы увидеть лицензии, которые получил сам сервер, разверните
Рабочие процессы → <процесс> → Лицензии. Там видно, какой файл или ключ выдал место и сколько пользователей рассчитана эта лицензия. - Сложите ёмкость всех лицензий и вычтите число клиентских сеансов (по правилу «один компьютер — одна лицензия», см. ниже про терминал).
Пример подсчёта
На сервере 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, часть — из программной лицензии на сервере. Тогда считать надо по каждому источнику отдельно, а не сложением «на глаз».