Кто сейчас работает в базе 1С: список сеансов, консоль сервера и rac
Содержание
Быстрее всего посмотреть активных пользователей
в базе 1С прямо из программы: Главное меню → Все функции → Стандартные → Активные пользователи. В Конфигураторе тот же список открывается через Администрирование → Активные пользователи. Способ работает и в файловой, и в клиент-серверной базе 8.3.
Если нужно больше — какой компьютер держит сеанс, сколько он висит без активности, какие лицензии занял — переходите на сервер. Там есть консоль администрирования кластера и утилита rac. Для файловой базы роль «сервера» играет общая папка: Windows покажет, кто открыл файл 1Cv8.1CD.
Какой способ выбрать: сравнение вариантов
Способов пять, и они отвечают на разные вопросы. Список внутри 1С видит любой пользователь с правами администратора. Консоль и rac нужны, когда в саму базу не зайти или требуется полная картина по серверу.
| Способ | Тип базы | Что показывает | Кому подходит |
|---|---|---|---|
| Список «Активные пользователи» в 1С | файловая и серверная | пользователь, компьютер, приложение, начало сеанса | администратор базы |
| Консоль кластера (MMC) | серверная | сеансы, соединения, блокировки, лицензии по всем базам | администратор сервера |
rac + служба ras | серверная | то же, что консоль, в текстовом виде | скрипты, Linux, удалённый доступ |
| Открытые файлы общей папки | файловая | сетевые учётные записи и компьютеры, открывшие базу | когда в 1С войти нельзя |
| Журнал регистрации и техжурнал | любая | история входов и выходов, длительные вызовы | разбор «кто был и что делал» |
Если база не открывается из-за монопольного режима, начинайте с консоли кластера или с открытых файлов. Список внутри 1С вы не увидите, пока не зайдёте в базу.
Активные пользователи в интерфейсе самой программы
Список сеансов встроен в платформу, поэтому есть в любой конфигурации — БП 3.0, ЗУП 3.1, УТ 11, самописной.
Через «Все функции»
- Если пункта
Все функциинет в главном меню, включите его:Главное меню → Сервис и настройки → Параметры, флажок «Отображать команду “Все функции”». - Откройте
Главное меню → Все функции. - Разверните ветку
Стандартныеи запуститеАктивные пользователи.
В таблице видно:
- 👤 Пользователь — имя из списка пользователей базы;
- 💻 Компьютер — сетевое имя машины, с которой зашли;
- 🧩 Приложение — тонкий клиент, веб-клиент, Конфигуратор, COM-соединение, фоновое задание;
- 🕘 Начало работы — время открытия сеанса;
- 🔢 Сеанс — номер сеанса в базе.
Свой сеанс отмечен отдельно. Список не обновляется сам — жмите кнопку обновления в командной панели формы.
В разделе администрирования типовых конфигураций
В БП 3.0, ЗУП 3.1 и УТ 11 ссылка на тот же список есть в разделе Администрирование → Обслуживание. Форма из библиотеки стандартных подсистем умеет больше платформенной: отбирать сеансы по пользователю, открывать журнал регистрации по выбранному сеансу и завершать сеансы. В клиент-серверной базе для завершения она попросит логин и пароль администратора кластера, если они заданы.
Там же, в Обслуживании, находится «Блокировка работы пользователей». Она нужна, когда пользователей надо не просто увидеть, а выпроводить перед обновлением.
В Конфигураторе
Администрирование → Активные пользователи показывает ту же таблицу. Удобно, когда вы зашли в Конфигуратор для обновления и получили отказ в монопольном доступе: сразу видно, кто мешает.
Список показывает только сеансы текущей базы. Если на сервере 20 баз, остальные 19 отсюда не видны.
Сеансы в консоли администрирования сервера 1С
Для клиент-серверной базы консоль кластера — основной инструмент. Она показывает сеансы всех баз сервера, а не только той, в которую вы вошли.
Подготовка консоли
Консоль ставится вместе с платформой (компонент «Администрирование сервера 1С:Предприятия»). Ярлык называется «Администрирование серверов 1С Предприятия». Если оснастка открывается с ошибкой или пустая, зарегистрируйте библиотеку той же версии, что и сервер. Командная строка от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\radmin.dll"
Номер версии в пути подставьте свой. Версия консоли должна совпадать с версией сервера — иначе консоль не подключится или покажет не всё.
Где смотреть
- В дереве:
Central 1C:Enterprise 8.3 servers→ правый клик →Создать → Центральный сервер 1С:Предприятия 8.3, укажите имя сервера и порт агента1540. - Раскройте
Кластеры → Локальный кластер(имя может быть другим). - Дальше
Информационные базы → имя базы → Сеансы— сеансы одной базы. - Узел
Сеансына уровне кластера показывает все сеансы сервера сразу.
Полезные колонки: «Пользователь», «Компьютер», «Приложение», «Начало работы», «Последняя активность», «Спящий». Колонку «Последняя активность» удобно отсортировать: сеанс, который молчит три часа, — кандидат в зависшие.
Рядом с узлом Сеансы есть Соединения и Блокировки. Соединения — это технические подключения к рабочим процессам. Блокировки показывают, кто держит управляемые блокировки, и помогают найти виновника ожидания.
Завершение сеанса из консоли
Правый клик по сеансу → Удалить. Пользователь получит сообщение о разрыве, несохранённые данные в его открытых формах пропадут. Предупредите человека заранее или делайте это, когда сеанс точно брошен.
Утилита rac: те же данные из командной строки
rac — консольный клиент сервера администрирования. Работает на Windows и Linux, удобен для удалённого доступа и скриптов. Ему нужна запущенная служба ras (порт по умолчанию 1545). Для разовой проверки на Windows её достаточно запустить в отдельном окне командной строки:
"C:\Program Files\1cv8\8.3.25.1374\bin\ras.exe" cluster --port=1545 localhost:1540
Окно не закрывайте, пока работаете с rac. Для постоянной работы ras регистрируют службой Windows, тогда в строке запуска добавляется ключ --service.
Базовые команды:
rac cluster list localhost:1545
rac infobase summary list --cluster=<uuid-кластера> localhost:1545
rac session list --cluster=<uuid-кластера> --infobase=<uuid-базы> localhost:1545
rac session list --cluster=<uuid-кластера> --licenses localhost:1545
Первая команда выдаёт идентификатор кластера, вторая — список баз с их идентификаторами. Третья показывает сеансы одной базы: user-name, host, app-id, started-at, last-active-at, hibernate. Четвёртая — какие лицензии заняты и каким сеансом.
Если на кластере заведён администратор, добавьте --cluster-user=<имя> --cluster-pwd=<пароль>. Остальные ключи смотрите в rac help session.
app-id расшифровывает, что за сеанс: 1CV8C — тонкий клиент, 1CV8 — толстый, WebClient — браузер, Designer — Конфигуратор, COMConnection — внешнее подключение, BackgroundJob — фоновое задание.
Файловая база: кто держит файл 1Cv8.1CD
У файловой базы нет кластера. Активных пользователей внутри 1С посмотреть можно (способ выше), но часто проблема в том, что зайти нельзя: база занята, Конфигуратор не получает монопольный доступ.
Тогда смотрите на компьютере, где лежит папка с базой.
Через «Управление компьютером»
Win + R→compmgmt.msc.Служебные программы → Общие папки → Открытые файлы.- Найдите путь к
1Cv8.1CD. В колонках — учётная запись Windows и компьютер.
Через PowerShell
Get-SmbOpenFile | Where-Object { $_.Path -like '*1Cv8.1CD' } |
Select-Object ClientUserName, ClientComputerName, Path
Способ показывает только сетевые подключения. Если 1С запущена прямо на этом компьютере или через терминальный сервер
, где лежит база, в списке её не будет. Для терминального сервера откройте Диспетчер задач → Пользователи и найдите, у кого запущен процесс 1cv8.exe или 1cv8c.exe.
Закрыть файл можно тут же (Close-SmbOpenFile или пункт контекстного меню). Это равносильно аварийному обрыву сеанса. Делайте это, только когда пользователь точно не работает, и только после резервной копии базы: обрыв во время записи может повредить файл.
История входов: журнал регистрации и технологический журнал
Список активных пользователей показывает «сейчас». Вопрос «кто был в базе вчера вечером» решают журналы.
Журнал регистрации
Открывается в Конфигураторе (Администрирование → Журнал регистрации) или в типовых конфигурациях через Администрирование → Обслуживание. В отборе по событиям выберите «Сеанс. Начало» и «Сеанс. Завершение». Получите список входов с пользователем, компьютером и временем. Отбор по пользователю сужает картину до одного человека.
Технологический журнал
Нужен, когда журнала регистрации мало: сеансы рвутся без видимой причины, сервер тормозит, неясно, какой сеанс грузит процессы. Техжурнал включают файлом logcfg.xml в каталоге conf платформы (C:\Program Files\1cv8\conf). Минимальная настройка под сеансы и соединения:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="D:\1C_TechLog" history="24">
<event>
<eq property="name" value="SESN"/>
</event>
<event>
<eq property="name" value="CONN"/>
</event>
<property name="all"/>
</log>
</config>
history="24" — хранить 24 часа. Событие SESN пишет начало и конец сеансов, CONN — установку и разрыв соединений. Платформа подхватывает файл без перезапуска, обычно в течение минуты.
Техжурнал быстро растёт. Включайте только нужные события, следите за местом на диске и убирайте файл logcfg.xml, когда разбор закончен.
Автоматический контроль сеансов
Ручной просмотр хорош разово. Если нужно каждый день знать, кто висит в базе ночью, или отправлять отчёт о занятых лицензиях, напишите скрипт поверх rac.
PowerShell-скрипт для сервера
$rac = "C:\Program Files\1cv8\8.3.25.1374\bin\rac.exe"
$ras = "localhost:1545"
$clusterLine = & $rac cluster list $ras | Select-String '^cluster\s*:' | Select-Object -First 1
$cluster = $clusterLine.ToString().Split(':', 2)[1].Trim()
$raw = (& $rac session list --cluster=$cluster $ras) -join "`n"
$sessions = $raw -split "`n\s*`n" | Where-Object { $_.Trim() } | ForEach-Object {
$h = [ordered]@{}
foreach ($line in $_ -split "`n") {
$parts = $line -split '\s*:\s*', 2
if ($parts.Count -eq 2) { $h[$parts[0].Trim()] = $parts[1].Trim() }
}
[pscustomobject]$h
}
$sessions | Select-Object 'user-name', 'host', 'app-id', 'started-at', 'last-active-at' |
Sort-Object 'last-active-at' | Format-Table -AutoSize
Скрипт берёт первый кластер, разбирает вывод rac на блоки и печатает таблицу. Дальше — по задаче: выгрузить в CSV через Export-Csv, запускать из Планировщика заданий, отправлять в мессенджер.
Изнутри конфигурации
Если удобнее отчёт в самой 1С, платформа даёт функцию ПолучитьСеансыИнформационнойБазы(). Она возвращает массив сеансов текущей базы:
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Имя = ?(Сеанс.Пользователь = Неопределено, "<без пользователя>", Сеанс.Пользователь.Имя);
Сообщить(СтрШаблон("%1 | %2 | %3 | %4",
Имя,
Сеанс.ИмяКомпьютера,
ПредставлениеПриложения(Сеанс.ИмяПриложения),
Сеанс.НачалоСеанса));
КонецЦикла;
Код выполняется на сервере и требует административных прав. Его можно положить во внешнюю обработку и не трогать конфигурацию.
Зависшие и «фантомные» пользователи
Частая жалоба: «в базе никого нет, а список показывает троих». Причины разные, и проверяются они по-разному.
Перед завершением чужих сеансов предупредите людей: удаление сеанса — это обрыв работы без сохранения. Ночью и в обед это безопаснее всего.
Частые вопросы
Нужны ли права администратора, чтобы видеть активных пользователей?
Сколько лицензий занимает один пользователь?
rac session list --licenses или колонка лицензий в консоли.