К статье
Практический материал

Администрирование · 10 мин

1С: как получить список активных пользователей базы

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

Задача узнать, кто сейчас работает в базе 1С, возникает регулярно: перед обновлением конфигурации, при переводе базы в монопольный режим, при диагностике блокировок или просто для контроля лицензий. В зависимости от режима работы (файловый или клиент-серверный) и версии платформы доступны разные инструменты — от штатной консоли кластера до программных методов.

Важно сразу разделить два понятия: «активные пользователи» в контексте 1С — это те, у кого сейчас открыт сеанс с информационной базой, а не все учётные записи, заведённые в справочнике пользователей. Ниже разберём оба смысла: как получить текущие сеансы и как выгрузить список действующих (не отключённых) учётных записей.

Что считать активными пользователями

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

  • Текущие сеансы — кто прямо сейчас подключён к базе. Нужно перед обновлением, архивацией, переводом в монопольный режим.
  • Действующие учётные записи — все пользователи, заведённые в базе, у которых не снят вход. Нужно для аудита доступа и контроля лицензий.
  • История работы — кто и когда заходил в базу за период. Это уже анализ журнала регистрации, а не снимок текущего состояния.

Для каждой задачи есть свой инструмент, и дальше разберём их по отдельности.

Просмотр активных пользователей из интерфейса 1С

В типовых конфигурациях на базе Библиотеки стандартных подсистем (УТ, ERP, Бухгалтерия, ЗУП и других) есть встроенный отчёт по активным сеансам. Обычно он находится в разделе «Администрирование» → «Обслуживание» → «Активные пользователи» (в некоторых версиях — «Поддержка и обслуживание» → «Активные пользователи»).

Отчёт показывает имя пользователя, компьютер, время начала сеанса, режим работы (тонкий клиент, веб-клиент, фоновое задание) и время последнего обращения. Это самый быстрый способ для пользователя с правами администратора, который не хочет открывать конфигуратор или консоль кластера.

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

Консоль кластера серверов 1С

Для клиент-серверного режима основной инструмент — консоль администрирования серверов 1С (1CV8 Servers.msc). Путь: раскройте нужный кластер → «Информационные базы» → выберите базу → «Сеансы». Вы увидите все активные подключения с указанием пользователя, приложения, компьютера и времени начала.

Раздел «Соединения» показывает соединения с рабочими процессами — это более низкоуровневая картина, полезная при диагностике нагрузки. Для задачи «кто в базе» достаточно именно «Сеансов».

Порядок действий в консоли кластера
  1. 1
    Откройте оснастку «Администрирование серверов 1С Предприятия» на сервере или с правами администратора кластера
  2. 2
    Раскройте ветку кластера, затем «Информационные базы» и выберите нужную базу
  3. 3
    Перейдите на вкладку «Сеансы» и изучите список: пользователь, приложение, компьютер, время начала
  4. 4
    При необходимости завершите сеанс через контекстное меню, предупредив пользователя
  5. 5
    Проверьте, что список обновился и лишние сеансы исчезли

Учтите ограничение: консоль кластера показывает только клиент-серверные базы. Для файловых баз этот инструмент неприменим — там сеансы видны только из самой базы или из конфигуратора.

Конфигуратор и файловый режим

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

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

Программное получение сеансов и пользователей

Если список нужен в обработке, отчёте или регламентной проверке, используйте встроенный язык. Для текущих сеансов предназначен метод ПолучитьСеансыИнформационнойБазы():

Сеансы = ПолучитьСеансыИнформационнойБазы();

Для Каждого Сеанс Из Сеансы Цикл

Сообщить(Сеанс.Пользователь.Имя + " | "

+ Сеанс.ИмяПриложения + " | "

+ Сеанс.НачалоСеанса);

КонецЦикла;

Метод доступен в серверном контексте и требует права «Администрирование» либо «Просмотр журнала регистрации» в зависимости от сценария. У объекта сеанса доступны свойства: пользователь, компьютер, имя приложения, начало сеанса, время последнего обращения, спящий сеанс и другие.

Для получения всех учётных записей (не только активных сейчас) используйте менеджер пользователей информационной базы:

Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();

Для Каждого ПользовательИБ Из Пользователи Цикл

Сообщить(ПользовательИБ.Имя + " | аутентификация ОС: "

+ ПользовательИБ.АутентификацияОС);

КонецЦикла;

bsl
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
    Если Не Сеанс.СпящийСеанс Тогда
        Активные.Добавить(Сеанс.Пользователь.Имя);
    КонецЕсли;
КонецЦикла;

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

Журнал регистрации: кто работал за период

Если нужно не текущее состояние, а история — кто заходил в базу за день, неделю или месяц — используйте журнал регистрации. Откройте его из конфигуратора («Администрирование» → «Журнал регистрации») или из типовой конфигурации, установите отбор по событию «Сеанс. Аутентификация» и нужному периоду.

Журнал можно выгрузить в файл и обработать внешними средствами, либо программно методом ВыгрузитьЖурналРегистрации() — это удобно для автоматических отчётов по активности. Имейте в виду, что на больших базах журнал растёт быстро, и выгрузку за длительный период лучше делать в нерабочее время.

Сравнение способов

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

Быстро и без конфигуратора, но только если конфигурация на БСП и у вас есть права администратора в базе

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

Универсально для файловых баз, но требует монопольного доступа к конфигуратору и неудобно для регулярного контроля

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

Полная картина для клиент-серверных баз, включая спящие сеансы, но нужен доступ к серверу администрирования

Программный метод

Гибко, подходит для отчётов и автоматики, но требует прав и навыков встроенного языка

Типичные ошибки и ограничения

Типичные ошибки
01
Считать спящие сеансы активными пользователями — в результате перед обновлением «выгоняют» людей, которых на самом деле нет в базе, а реальные сеансы остаются
02
Путать справочник «Пользователи» конфигурации с пользователями информационной базы — это разные списки, и отключение в одном не всегда блокирует вход
03
Пытаться смотреть сеансы файловой базы через консоль кластера — файловые базы в консоли не отображаются
04
Завершать сеансы фоновых заданий и обменов вместе с пользовательскими — это обрывает регламентные процессы
05
Забывать про права: без роли администрирования или просмотра журнала регистрации методы и отчёты вернут пустой результат или ошибку

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

Контрольные точки

Как проверить результат

Список сеансов перед обновлением
Норма

Остались только ваш сеанс и, возможно, спящие сеансы без активности

Тревожный признак

В списке есть активные сеансы пользователей с недавним временем обращения

Программный вывод списка
Норма

Метод вернул коллекцию сеансов без ошибки доступа

Тревожный признак

Ошибка «Нарушение прав доступа» — не хватает роли администрирования

Отчёт «Активные пользователи» в типовой
Норма

Отображаются все сеансы с указанием приложения и компьютера

Тревожный признак

Пустой отчёт при заведомо работающих пользователях — проверьте права и подсистему БСП

FAQ

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

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

Почему в списке сеансов пользователь есть, хотя он давно вышел?

Это спящий сеанс: в клиент-серверном режиме платформа не сразу уничтожает сеанс после закрытия клиента, чтобы ускорить повторное подключение. Время жизни спящих сеансов настраивается в свойствах информационной базы в консоли кластера (параметры «Спящие сеансы»). Такие сеансы не мешают обновлению и обычно завершаются автоматически.

Как получить список активных пользователей файловой базы без входа в неё?

Штатного внешнего инструмента для файловых баз нет: список подключений виден только изнутри — через конфигуратор («Администрирование» → «Активные пользователи») или из сеанса 1С. Косвенно о подключениях можно судить по открытым файлам на сетевом ресурсе (например, через управление общими ресурсами в Windows), но это неточный метод.

Можно ли узнать, чем конкретно занимается активный пользователь?

Список сеансов показывает только факт подключения, приложение и время обращения. Что именно делает пользователь, видно в технологическом журнале и при анализе блокировок в консоли кластера (свойство «Блокировки» у соединений). Для аудита действий — например, какие документы менял пользователь — настраивают журнал регистрации с нужным уровнем детализации.

Как программно завершить сеанс конкретного пользователя?

Через объектную модель кластера с помощью COM-соединителя (V83.COMConnector) и интерфейсов администрирования: подключаетесь к агенту сервера, находите сеанс по пользователю и вызываете метод завершения. Это требует учётных данных администратора кластера и аккуратности — завершение чужого сеанса обрывает работу без сохранения.

Итог

Что важно запомнить

Активные сеансы смотрят в консоли кластера (клиент-сервер), в конфигураторе и отчёте «Активные пользователи» (любой режим) или программно через ПолучитьСеансыИнформационнойБазы(). Спящие сеансы не считаются реальной активностью. Перед принудительным завершением сеансов предупредите пользователей и проверьте фоновые задания.