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

· 10 мин

Содержание

Отдельной кнопки «Свободные лицензии» в 1С:Предприятие 8.3 нет. Свободные места считают так: сколько рабочих мест во всех лицензиях (программных файлах и HASP-ключах) минус сколько из них сейчас заняли сеансы. Занятые лицензии в клиент-серверном варианте проще всего посмотреть командой rac session list --licenses или в консоли администрирования кластера, общее число мест — командой ring license list и в Admin Control Center ключа.

Частое заблуждение: «в консоли 12 сеансов, значит занято 12 лицензий». Это не так. Фоновые задания лицензию не берут, а несколько окон 1С одного пользователя на одном компьютере обычно занимают одно место. Поэтому смотреть надо именно на лицензии сеансов, а не на общее число сеансов.

С чего начать: где хранятся лицензии и сколько их всего

Прежде чем искать свободные места, выясните, сколько их вообще. В 1С бывают два вида защиты:

  • 🔑 Программные лицензии — файлы *.lic, привязанные к оборудованию компьютера. Бывают однопользовательские и многопользовательские (на 5, 10, 20, 50, 100, 300, 500 мест).
  • 🔌 Аппаратные ключи HASP — локальные (на один компьютер) и сетевые (NET5, NET10 и т. д.), раздаются по сети через HASP License Manager.

Файлы программных лицензий лежат в стандартных каталогах:

ОСКаталог для всех пользователейКаталог текущего пользователя
WindowsC:\ProgramData\1C\licenses%APPDATA%\1C\licenses
Linux/var/1C/licenses~/.1cv8/1C/licenses

Открыть файл .lic блокнотом бесполезно — он зашифрован. Чтобы увидеть, на сколько мест каждая лицензия, используйте утилиту ring из комплекта лицензионных инструментов 1С:

ring license list
ring license info --name 8100000000000-1234567

Первая команда покажет список активированных на компьютере лицензий, вторая — подробности по одной из них, включая продукт и количество рабочих мест. Имя для --name берите из вывода list.

Сложите места по всем клиентским лицензиям сервера (или компьютера) — это ваш потолок. Серверная лицензия (на 32- или 64-разрядный сервер) в эту сумму не входит: она разрешает запуск сервера, а не подключение пользователей.

Свободные лицензии в консоли администрирования кластера

В клиент-серверном варианте главный инструмент — консоль администрирования серверов 1С:Предприятия (оснастка MMC). Порядок такой:

  1. Запустите консоль и подключитесь к центральному серверу: узел Central 1C:Enterprise 8.3 servers → ваш сервер.
  2. Раскройте Кластеры → нужный кластер → Информационные базы → база → Сеансы.
  3. В списке сеансов посмотрите колонки «Пользователь», «Компьютер», «Приложение». Сеансы «Фоновое задание» и «Консоль кластера» лицензию не тратят.
  4. Откройте свойства сеанса пользователя — там видно, какая лицензия ему досталась: программная или HASP, выдана ли она сервером, сколько всего мест в этом файле.

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

Консоль показывает только сеансы ОДНОГО кластера. Если на одних лицензиях работают несколько серверов или ещё и файловые базы, итоговое число занятых мест по консоли будет занижено.

Если консоль не открывается или пишет об ошибке оснастки, проверьте регистрацию компонента: от имени администратора выполните regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" с путём к той же версии платформы, что и сервер.

Командная строка: rac и ring вместо консоли

Консоль удобна глазами, а для точного подсчёта лучше утилита rac. Она работает через сервер администрирования ras, по умолчанию на порту 1545. Если ras ещё не запущен, его ставят службой или запускают вручную:

ras cluster --daemon

Дальше три шага:

rem 1. Узнать идентификатор кластера
rac cluster list

rem 2. Список сеансов с лицензиями
rac session list --cluster=<uuid-кластера> --licenses

rem 3. Если на кластере задан администратор
rac session list --cluster=<uuid> --cluster-user=admin --cluster-pwd=*** --licenses

На каждый сеанс, который держит лицензию, rac выводит отдельный блок. В нём есть имя пользователя, компьютер, путь к файлу лицензии, её тип (программная или HASP) и поле max-users-all — сколько мест в этой лицензии всего.

Как посчитать свободные места: сгруппируйте блоки по файлу лицензии, посчитайте, сколько сеансов на каждом, и вычтите из max-users-all. Пример: файл на 10 мест, на нём 7 сеансов с разных компьютеров — свободно 3.

Если подкоманды или параметры не совпадают с вашей версией платформы, сверяйтесь со встроенной справкой rac help session.

Журнал регистрации: сколько мест было занято вчера

Консоль и rac показывают картину «сейчас». Когда вопрос звучит как «почему вчера в 10 утра бухгалтер не смог зайти», нужен журнал регистрации.

В БП 3.0, ЗУП 3.1 и УТ 11 он открывается одинаково: Администрирование → Обслуживание → Журнал регистрации. Из конфигуратора — Администрирование → Журнал регистрации.

Как восстановить пиковую загрузку:

  1. Установите отбор по периоду — например, рабочий день целиком.
  2. В отборе по событиям оставьте Сеанс. Начало и Сеанс. Завершение.
  3. Отсортируйте по дате и пройдите по времени: каждое «Начало» прибавляет сеанс, каждое «Завершение» отнимает.
  4. Учитывайте поле «Компьютер»: два сеанса одного пользователя Windows с одного компьютера обычно сидят на одной лицензии.

Для большого журнала руками это долго. Выгрузите отобранные записи в табличный документ и посчитайте в Excel: столбец «+1/−1», накопительная сумма, максимум за день. Максимум и есть число мест, которых вам тогда не хватило или хватило впритык.

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

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

Аппаратные ключи HASP: локальные и сетевые

С ключами всё проще: у них есть собственные инструменты мониторинга, и 1С для проверки не нужна.

Сетевой ключ (NET5, NET10, NET20 и т. д.)

  • 🌐 Откройте на компьютере с ключом в браузере http://localhost:1947 — это Sentinel Admin Control Center. На вкладке ключей видно подключённые ключи, на вкладке сеансов — кто сейчас держит места.
  • 🖥️ Для старых ключей, которые обслуживает HASP License Manager, подойдёт утилита Aladdin Monitor. В ней по адресу менеджера лицензий видно максимальное число станций ключа и сколько подключено сейчас. Разница — свободные места.
  • 📄 Если клиенты не видят сетевой ключ, проверьте файл nhsrv.ini в каталоге bin платформы на клиенте: в нём можно явно прописать адрес сервера с ключом (NH_SERVER_ADDR).

Локальный ключ (ORGL8 и аналоги) даёт одно место только тому компьютеру, в USB-порт которого вставлен. «Свободных» мест у него для других компьютеров нет по определению.

Вид ключаЧем смотретьЧто показывает
Сетевой HASPhttp://localhost:1947, Aladdin MonitorЧисло мест и текущие подключения
Локальный HASPAdmin Control Center на этом ПКТолько факт, что ключ виден
Программная лицензияring license list, rac --licensesЧисло мест и занятые сеансами

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

Файловый вариант: без сервера и без консоли

В файловом варианте нет кластера, поэтому ни консоли, ни rac не будет. Каждый клиентский компьютер получает лицензию сам: из своих файлов .lic или с сетевого HASP-ключа.

Отсюда важное следствие. Многопользовательская программная лицензия на 5 мест, активированная на компьютере бухгалтера, не раздаётся остальным компьютерам сети. Её места доступны только сеансам, запущенным на этом же компьютере, — например, пользователям терминального сервера или веб-серверу, через который работают остальные.

Что смотреть в файловом варианте:

  • 👥 Кто сейчас в базе: в БП 3.0 — Администрирование → Обслуживание → Активные пользователи; в конфигураторе — Администрирование → Активные пользователи.
  • 🪪 Какая лицензия у текущего сеанса: окно Справка → О программе показывает сведения о полученной лицензии.
  • 🔢 Сколько мест на компьютере: ring license list и ring license info на том компьютере, где запускается 1С.
  • 🔌 Сетевой ключ: Admin Control Center по порту 1947 на компьютере с ключом.

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

Скрипт для постоянного контроля лицензий

Когда мест впритык, полезно получать предупреждение заранее, а не после звонка «не пускает в 1С». Ниже — скрипт PowerShell для сервера 1С. Он берёт первый кластер, считает сеансы с лицензиями и пишет результат в лог.

$rac   = "C:\Program Files\1cv8\8.3.24.1548\bin\rac.exe"   # ваша версия платформы
$total = 20                                               # мест во всех клиентских лицензиях
$warn  = 2                                                # порог: свободно меньше или равно

$clusterLine = & $rac cluster list | Where-Object { $_ -match '^cluster\s*:' } | Select-Object -First 1
$cluster = ($clusterLine -split ':', 2)[1].Trim()

$lic  = & $rac session list --cluster=$cluster --licenses
$used = ($lic | Where-Object { $_ -match '^session\s*:' }).Count
$free = $total - $used

$line = "{0:yyyy-MM-dd HH:mm}  занято: {1}  свободно: {2}" -f (Get-Date), $used, $free
Add-Content -Path "C:\Scripts\1c-licenses.log" -Value $line -Encoding UTF8

if ($free -le $warn) {
    Write-Warning "Свободных лицензий 1С осталось: $free"
}

Как запустить:

  1. Сохраните скрипт в C:\Scripts\check-1c-licenses.ps1 и поправьте путь к rac.exe и число $total.
  2. Убедитесь, что служба ras запущена на этом сервере.
  3. В Планировщике заданий Windows создайте задачу: запуск powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\check-1c-licenses.ps1 каждые 15 минут.
  4. Через неделю откройте лог — по нему видно реальный пик загрузки и время, когда мест не хватает.

Вместо Write-Warning можно отправлять сообщение в мессенджер или на почту — своим привычным способом. Если на кластере задан администратор, добавьте в вызов --cluster-user и --cluster-pwd, а пароль храните не в тексте скрипта, а в защищённом хранилище учётных данных.

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

Почему свободных мест меньше, чем кажется

Ситуация типовая: по подсчёту мест хватает, а пользователь видит сообщение Не обнаружена свободная лицензия!. Причины обычно такие.

  • 🧟 Зависшие сеансы. Пользователь закрыл ноутбук, а сеанс на сервере остался и держит лицензию. Его видно в консоли или в rac session list. Завершить такой сеанс можно из консоли, но незавершённая работа пользователя в этом сеансе пропадёт — сначала свяжитесь с ним.
  • 🧩 Сервер не выдаёт лицензии. В свойствах базы выключена выдача лицензий сервером — и клиенты ищут места у себя, где их нет.
  • 🛠️ Лицензия «слетела». После замены материнской платы, диска или сетевой карты программная лицензия перестаёт подходить к компьютеру. ring license validate --name <имя> покажет, действительна ли она. Лечится повторной активацией по пин-коду.
  • 🔁 Конфигуратор. Открытый конфигуратор тоже занимает клиентскую лицензию. Программист с двумя открытыми базами в конфигураторе может забрать место у бухгалтера.
  • 🖧 Сетевой ключ не виден. Брандмауэр закрыл порт менеджера лицензий, или клиент ищет ключ не в той подсети.
Диагностика: выберите симптом

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

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