Сколько лицензий 1С свободно прямо сейчас и как это проверить
Содержание
Отдельной кнопки «Свободные лицензии» в 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.
Файлы программных лицензий лежат в стандартных каталогах:
| ОС | Каталог для всех пользователей | Каталог текущего пользователя |
|---|---|---|
| Windows | C:\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). Порядок такой:
- Запустите консоль и подключитесь к центральному серверу: узел
Central 1C:Enterprise 8.3 servers→ ваш сервер. - Раскройте
Кластеры→ нужный кластер →Информационные базы→ база →Сеансы. - В списке сеансов посмотрите колонки «Пользователь», «Компьютер», «Приложение». Сеансы «Фоновое задание» и «Консоль кластера» лицензию не тратят.
- Откройте свойства сеанса пользователя — там видно, какая лицензия ему досталась: программная или 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 он открывается одинаково: Администрирование → Обслуживание → Журнал регистрации. Из конфигуратора — Администрирование → Журнал регистрации.
Как восстановить пиковую загрузку:
- Установите отбор по периоду — например, рабочий день целиком.
- В отборе по событиям оставьте
Сеанс. НачалоиСеанс. Завершение. - Отсортируйте по дате и пройдите по времени: каждое «Начало» прибавляет сеанс, каждое «Завершение» отнимает.
- Учитывайте поле «Компьютер»: два сеанса одного пользователя 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-порт которого вставлен. «Свободных» мест у него для других компьютеров нет по определению.
| Вид ключа | Чем смотреть | Что показывает |
|---|---|---|
| Сетевой HASP | http://localhost:1947, Aladdin Monitor | Число мест и текущие подключения |
| Локальный HASP | Admin 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"
}
Как запустить:
- Сохраните скрипт в
C:\Scripts\check-1c-licenses.ps1и поправьте путь кrac.exeи число$total. - Убедитесь, что служба
rasзапущена на этом сервере. - В Планировщике заданий Windows создайте задачу: запуск
powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\check-1c-licenses.ps1каждые 15 минут. - Через неделю откройте лог — по нему видно реальный пик загрузки и время, когда мест не хватает.
Вместо Write-Warning можно отправлять сообщение в мессенджер или на почту — своим привычным способом. Если на кластере задан администратор, добавьте в вызов --cluster-user и --cluster-pwd, а пароль храните не в тексте скрипта, а в защищённом хранилище учётных данных.
Скрипт считает сеансы с лицензией, а не уникальные компьютеры. Если у вас много пользователей открывают по два окна, сгруппируйте блоки по полю с именем компьютера — так оценка будет точнее.
Почему свободных мест меньше, чем кажется
Ситуация типовая: по подсчёту мест хватает, а пользователь видит сообщение Не обнаружена свободная лицензия!. Причины обычно такие.
- 🧟 Зависшие сеансы. Пользователь закрыл ноутбук, а сеанс на сервере остался и держит лицензию. Его видно в консоли или в
rac session list. Завершить такой сеанс можно из консоли, но незавершённая работа пользователя в этом сеансе пропадёт — сначала свяжитесь с ним. - 🧩 Сервер не выдаёт лицензии. В свойствах базы выключена выдача лицензий сервером — и клиенты ищут места у себя, где их нет.
- 🛠️ Лицензия «слетела». После замены материнской платы, диска или сетевой карты программная лицензия перестаёт подходить к компьютеру.
ring license validate --name <имя>покажет, действительна ли она. Лечится повторной активацией по пин-коду. - 🔁 Конфигуратор. Открытый конфигуратор тоже занимает клиентскую лицензию. Программист с двумя открытыми базами в конфигураторе может забрать место у бухгалтера.
- 🖧 Сетевой ключ не виден. Брандмауэр закрыл порт менеджера лицензий, или клиент ищет ключ не в той подсети.
Частые вопросы
Занимает ли лицензию фоновое задание или регламентное обновление?
Тратит ли место веб-клиент?
Можно ли временно «одолжить» лицензию с другого сервера?
Как быстро освобождается место после выхода пользователя?
Видно ли свободные лицензии из самой конфигурации, без доступа к серверу?
rac не узнать.