Активные сеансы 1С: из программы, в консоли кластера и через rac

· 9 мин

Содержание

Посмотреть, кто сейчас работает в 1С, быстрее всего из самой программы: в БП 3.0, ЗУП 3.1 и УТ 11 откройте Администрирование → Обслуживание → Активные пользователи. Список покажет имя пользователя, компьютер, тип клиента и время начала сеанса. Из Конфигуратора тот же список открывается через Администрирование → Активные пользователи.

Для клиент-серверной базы есть второй, более полный источник: консоль «Администрирование серверов 1С:Предприятия» и утилита rac. Там видно все сеансы кластера, включая фоновые задания и COM-соединения, и там же сеанс можно принудительно завершить. Способы ниже работают на платформе 8.3 и не зависят от конфигурации, кроме первого пути меню.

Где в самой программе увидеть активных пользователей

В программе есть три входа в один и тот же список. Выбор зависит от того, где вы сейчас находитесь и какие у вас права.

ОткудаПутьКому доступно
БП 3.0, ЗУП 3.1, УТ 11 и другие типовые на БСПАдминистрирование → Обслуживание → Активные пользователиПользователю с правами администратора
Любая конфигурация, режим 1С:ПредприятиеВсе функции → Стандартные → Активные пользователиТем, у кого включена команда «Все функции»
КонфигураторАдминистрирование → Активные пользователиТому, кто вошёл в Конфигуратор

Команда «Все функции» по умолчанию скрыта. Включите её так: главное меню (кнопка с тремя полосками в левом верхнем углу) → Сервис → Параметры → флажок «Отображать команду «Все функции»». После этого пункт появится в том же главном меню.

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

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

Что означают колонки в списке сеансов

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

  • 👤 Пользователь — имя из списка пользователей информационной базы. Если вход без авторизации (в базе нет пользователей), колонка пустая.
  • 💻 Компьютер — сетевое имя машины. На терминальном сервере у всех будет одно имя — имя этого сервера.
  • 🧩 Приложение — тип подключения:
    • «Тонкий клиент», «Толстый клиент», «Веб-клиент» — работает человек;
    • «Конфигуратор» — кто-то открыл базу в режиме разработки;
    • «Фоновое задание» — регламентные задачи самой программы: загрузка курсов, обмены, обновление индексов;
    • «COM-соединение» — внешняя программа или обработка подключилась к базе.
  • 🕐 Начало работы — когда открыт сеанс. Сеанс «с позавчера» почти всегда означает, что человек просто не закрыл программу.
  • 🔢 Номер сеанса — пригодится, если сеанс придётся искать в консоли кластера.

Свой собственный сеанс в списке тоже есть, обычно он выделен. Его не завершают: вы просто закроете своё окно.

Кто работает в серверной базе: консоль кластера

В клиент-серверном варианте сеансы живут в кластере серверов 1С. Консоль «Администрирование серверов 1С:Предприятия» показывает их полнее, чем список внутри базы, и позволяет смотреть сразу все базы кластера.

Как открыть консоль

  1. Запустите оснастку из меню «Пуск» — её ставит установщик платформы, если выбран компонент администрирования серверов.
  2. Если консоль не открывается или пишет об ошибке создания объекта, зарегистрируйте библиотеку из каталога нужной версии платформы. Командную строку запускайте от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\radmin.dll"

Номер версии в пути подставьте свой. Версия radmin.dll должна совпадать с версией сервера 1С, иначе консоль будет подключаться с ошибкой.

  1. В дереве нажмите правой кнопкой на «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3». Укажите имя сервера и порт агента — по умолчанию 1540.

Где искать сеансы

Раскройте ветку: сервер → «Кластеры» → нужный кластер. Дальше два пути:

  • «Информационные базы» → база → «Сеансы» — кто работает в конкретной базе;
  • «Сеансы» на уровне кластера — все сеансы всех баз сразу. Удобно, когда нужно понять, кто занимает лицензии.

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

В списке сеансов полезны колонки «Последняя активность» и «Спящий». Если последняя активность была три часа назад, а у сеанса нет признака «спящий», это кандидат на зависший сеанс.

Если на кластере задан администратор, консоль попросит логин и пароль при открытии кластера. Это не пользователь информационной базы, а отдельная учётная запись кластера. Пароль потерян — не пересоздавайте кластер: восстановите файл настроек кластера из резервной копии при остановленной службе или обратитесь к администратору сервера.

Как узнать, кто зашёл в файловую базу

В файловом режиме кластера нет, консоль сервера бесполезна. Источников остаётся два.

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

Второй — открытые файлы на файловом сервере. Это приём, который выручает, когда войти в базу нельзя: например, Конфигуратор ругается на монопольный режим, а кто держит базу — непонятно.

  1. На сервере, где лежит папка базы, откройте Управление компьютером → Общие папки → Открытые файлы (оснастка compmgmt.msc).
  2. Найдите в списке файл 1Cv8.1CD из нужной папки.
  3. В колонке «Пользователь» будет учётная запись Windows, в колонке рядом — компьютер, с которого открыт файл.

Здесь видны именно пользователи Windows, а не 1С. Зато видно всех, включая зависшие процессы на чужих компьютерах.

Если база лежит на терминальном сервере локально, а не в общей папке, смотрите «Диспетчер задач» → вкладку «Пользователи»: у кого запущены процессы 1cv8c.exe или 1cv8.exe, тот и в базе.

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

Список сеансов из командной строки: ras и rac

Консоль удобна, когда сервер один и вы сидите за ним. Для скриптов, мониторинга и удалённой работы удобнее пара утилит: ras — сервер администрирования, rac — клиент к нему. Обе лежат в каталоге bin платформы.

Шаг 1. Запустите ras

ras подключается к агенту кластера (порт 1540) и сам слушает порт 1545. Разовый запуск в консоли:

cd "C:\Program Files\1cv8\8.3.25.1374\bin"
ras cluster --port=1545 localhost:1540

Для постоянной работы ras регистрируют службой Windows, чтобы он стартовал вместе с сервером. Окно консоли с разовым запуском закрывать нельзя — rac перестанет подключаться.

Шаг 2. Получите идентификатор кластера

rac localhost:1545 cluster list

В ответе ищите строку cluster — это UUID кластера. Он нужен во всех следующих командах.

Шаг 3. Выведите сеансы

rac localhost:1545 session list --cluster=<UUID кластера>

Если на кластере есть администратор, добавьте --cluster-user=<имя> и --cluster-pwd=<пароль>. Чтобы видеть сеансы одной базы, сначала узнайте её UUID командой rac localhost:1545 infobase summary list --cluster=<UUID>, затем добавьте к списку сеансов --infobase=<UUID базы>.

В выводе у каждого сеанса есть поля:

ПолеЧто показывает
sessionUUID сеанса — нужен для завершения
user-nameПользователь информационной базы
hostКомпьютер
app-idТип клиента: 1CV8C — тонкий, 1CV8 — толстый, Designer — Конфигуратор, BackgroundJob — фоновое задание
started-atНачало сеанса
last-active-atПоследняя активность

Команда rac localhost:1545 session list --cluster=<UUID> --licenses покажет, какую лицензию занял каждый сеанс. Так удобно разбираться, кто «съел» последнюю клиентскую лицензию. Остальные параметры смотрите в справке rac help session.

Как отключить пользователя, если сеанс завис

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

СпособКогда подходитРиск
Кнопка завершения в обработке «Активные пользователи» (БСП)Клиент-серверная база, нужно выгнать одного человекаПотеря несохранённых данных у этого пользователя
Консоль кластера: сеанс → «Удалить»Сеанс завис, из базы не убираетсяТо же; плюс можно ошибиться строкой в общем списке кластера
rac session terminateСкрипты, ночные регламенты, удалённое управлениеОпечатка в UUID завершит чужой сеанс
Блокировка начала сеансовНужно выгнать всех перед обновлениемВсе пользователи будут отключены по таймеру
Закрытие файла / процесса на сервереФайловая база, другие способы не работаютВозможна порча незаписанных данных

Завершение через rac

rac localhost:1545 session terminate --cluster=<UUID кластера> --session=<UUID сеанса>

UUID сеанса берите из вывода session list в той же минуте. Если сеанс уже переподключился, у него будет новый идентификатор.

Когда нужно выгнать всех

Для обновления конфигурации или выгрузки базы в .dt нужен монопольный доступ, и отключать людей по одному неудобно. В типовых конфигурациях есть механизм блокировки работы пользователей в разделе Администрирование → Обслуживание. Задайте время начала блокировки и текст сообщения — программа предупредит пользователей и через заданное время завершит их сеансы.

В клиент-серверной базе блокировку можно поставить и в консоли кластера: в свойствах информационной базы есть флажок блокировки начала сеансов, поля с сообщением и кодом разрешения. Код разрешения позволит войти администратору, пока остальные заблокированы. Не забудьте снять блокировку после работ, иначе утром никто не войдёт.

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

Почему список не совпадает с реальностью

Администраторы чаще всего спотыкаются о четыре расхождения.

  • 🔁 Фоновые задания считаются сеансами. В списке «пять человек», а в офисе двое: остальное — регламентные задания и обмены. Лицензию клиента фоновые задания не занимают.
  • 🖥 Один человек — несколько сеансов. Пользователь открыл базу дважды или вошёл с ноутбука и с терминала. Каждый сеанс клиентского приложения занимает лицензию отдельно, если сеансы с разных компьютеров.
  • 👻 Зависшие сеансы после обрыва сети. Сервер какое-то время считает сеанс живым. Отсюда сообщение о превышении числа лицензий, хотя все уже вышли.
  • 🔒 Обычный пользователь не видит раздел. Обработка «Активные пользователи» доступна только с административными правами. Это не ошибка, а настройка ролей.

Перезапуск службы «Агент сервера 1С:Предприятия» действительно убирает все зависшие сеансы, но вместе с ними обрывает работу всех пользователей всех баз на этом сервере. Делайте это только вне рабочего времени и после предупреждения.

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

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