Кто сейчас работает в базе 1С: список сеансов, консоль сервера и rac

· 9 мин

Содержание

Быстрее всего посмотреть активных пользователей в базе 1С прямо из программы: Главное меню → Все функции → Стандартные → Активные пользователи. В Конфигураторе тот же список открывается через Администрирование → Активные пользователи. Способ работает и в файловой, и в клиент-серверной базе 8.3.

Если нужно больше — какой компьютер держит сеанс, сколько он висит без активности, какие лицензии занял — переходите на сервер. Там есть консоль администрирования кластера и утилита rac. Для файловой базы роль «сервера» играет общая папка: Windows покажет, кто открыл файл 1Cv8.1CD.

Какой способ выбрать: сравнение вариантов

Способов пять, и они отвечают на разные вопросы. Список внутри 1С видит любой пользователь с правами администратора. Консоль и rac нужны, когда в саму базу не зайти или требуется полная картина по серверу.

СпособТип базыЧто показываетКому подходит
Список «Активные пользователи» в 1Сфайловая и сервернаяпользователь, компьютер, приложение, начало сеансаадминистратор базы
Консоль кластера (MMC)сервернаясеансы, соединения, блокировки, лицензии по всем базамадминистратор сервера
rac + служба rasсервернаято же, что консоль, в текстовом видескрипты, Linux, удалённый доступ
Открытые файлы общей папкифайловаясетевые учётные записи и компьютеры, открывшие базукогда в 1С войти нельзя
Журнал регистрации и техжурналлюбаяистория входов и выходов, длительные вызовыразбор «кто был и что делал»

Если база не открывается из-за монопольного режима, начинайте с консоли кластера или с открытых файлов. Список внутри 1С вы не увидите, пока не зайдёте в базу.

Активные пользователи в интерфейсе самой программы

Список сеансов встроен в платформу, поэтому есть в любой конфигурации — БП 3.0, ЗУП 3.1, УТ 11, самописной.

Через «Все функции»

  1. Если пункта Все функции нет в главном меню, включите его: Главное меню → Сервис и настройки → Параметры, флажок «Отображать команду “Все функции”».
  2. Откройте Главное меню → Все функции.
  3. Разверните ветку Стандартные и запустите Активные пользователи.

В таблице видно:

  • 👤 Пользователь — имя из списка пользователей базы;
  • 💻 Компьютер — сетевое имя машины, с которой зашли;
  • 🧩 Приложение — тонкий клиент, веб-клиент, Конфигуратор, COM-соединение, фоновое задание;
  • 🕘 Начало работы — время открытия сеанса;
  • 🔢 Сеанс — номер сеанса в базе.

Свой сеанс отмечен отдельно. Список не обновляется сам — жмите кнопку обновления в командной панели формы.

В разделе администрирования типовых конфигураций

В БП 3.0, ЗУП 3.1 и УТ 11 ссылка на тот же список есть в разделе Администрирование → Обслуживание. Форма из библиотеки стандартных подсистем умеет больше платформенной: отбирать сеансы по пользователю, открывать журнал регистрации по выбранному сеансу и завершать сеансы. В клиент-серверной базе для завершения она попросит логин и пароль администратора кластера, если они заданы.

Там же, в Обслуживании, находится «Блокировка работы пользователей». Она нужна, когда пользователей надо не просто увидеть, а выпроводить перед обновлением.

В Конфигураторе

Администрирование → Активные пользователи показывает ту же таблицу. Удобно, когда вы зашли в Конфигуратор для обновления и получили отказ в монопольном доступе: сразу видно, кто мешает.

Список показывает только сеансы текущей базы. Если на сервере 20 баз, остальные 19 отсюда не видны.

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

Для клиент-серверной базы консоль кластера — основной инструмент. Она показывает сеансы всех баз сервера, а не только той, в которую вы вошли.

Подготовка консоли

Консоль ставится вместе с платформой (компонент «Администрирование сервера 1С:Предприятия»). Ярлык называется «Администрирование серверов 1С Предприятия». Если оснастка открывается с ошибкой или пустая, зарегистрируйте библиотеку той же версии, что и сервер. Командная строка от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\radmin.dll"

Номер версии в пути подставьте свой. Версия консоли должна совпадать с версией сервера — иначе консоль не подключится или покажет не всё.

Где смотреть

  1. В дереве: Central 1C:Enterprise 8.3 servers → правый клик → Создать → Центральный сервер 1С:Предприятия 8.3, укажите имя сервера и порт агента 1540.
  2. Раскройте Кластеры → Локальный кластер (имя может быть другим).
  3. Дальше Информационные базы → имя базы → Сеансы — сеансы одной базы.
  4. Узел Сеансы на уровне кластера показывает все сеансы сервера сразу.

Полезные колонки: «Пользователь», «Компьютер», «Приложение», «Начало работы», «Последняя активность», «Спящий». Колонку «Последняя активность» удобно отсортировать: сеанс, который молчит три часа, — кандидат в зависшие.

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

Завершение сеанса из консоли

Правый клик по сеансу → Удалить. Пользователь получит сообщение о разрыве, несохранённые данные в его открытых формах пропадут. Предупредите человека заранее или делайте это, когда сеанс точно брошен.

Утилита 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С посмотреть можно (способ выше), но часто проблема в том, что зайти нельзя: база занята, Конфигуратор не получает монопольный доступ.

Тогда смотрите на компьютере, где лежит папка с базой.

Через «Управление компьютером»

  1. Win + R → compmgmt.msc.
  2. Служебные программы → Общие папки → Открытые файлы.
  3. Найдите путь к 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",
        Имя,
        Сеанс.ИмяКомпьютера,
        ПредставлениеПриложения(Сеанс.ИмяПриложения),
        Сеанс.НачалоСеанса));
КонецЦикла;

Код выполняется на сервере и требует административных прав. Его можно положить во внешнюю обработку и не трогать конфигурацию.

Зависшие и «фантомные» пользователи

Частая жалоба: «в базе никого нет, а список показывает троих». Причины разные, и проверяются они по-разному.

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

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

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

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