Администрирование · 10 мин
1С: как получить список активных пользователей базы
Как узнать активных пользователей в 1С: консоль кластера, журнал регистрации, конфигуратор и код на встроенном языке. Практические способы для администраторов.
Задача узнать, кто сейчас работает в базе 1С, возникает регулярно: перед обновлением конфигурации, при переводе базы в монопольный режим, при диагностике блокировок или просто для контроля лицензий. В зависимости от режима работы (файловый или клиент-серверный) и версии платформы доступны разные инструменты — от штатной консоли кластера до программных методов.
Важно сразу разделить два понятия: «активные пользователи» в контексте 1С — это те, у кого сейчас открыт сеанс с информационной базой, а не все учётные записи, заведённые в справочнике пользователей. Ниже разберём оба смысла: как получить текущие сеансы и как выгрузить список действующих (не отключённых) учётных записей.
Что считать активными пользователями
Перед выбором инструмента определите, какой именно список нужен. В практике администрирования 1С встречаются три разные задачи, которые часто путают:
- Текущие сеансы — кто прямо сейчас подключён к базе. Нужно перед обновлением, архивацией, переводом в монопольный режим.
- Действующие учётные записи — все пользователи, заведённые в базе, у которых не снят вход. Нужно для аудита доступа и контроля лицензий.
- История работы — кто и когда заходил в базу за период. Это уже анализ журнала регистрации, а не снимок текущего состояния.
Для каждой задачи есть свой инструмент, и дальше разберём их по отдельности.
Просмотр активных пользователей из интерфейса 1С
В типовых конфигурациях на базе Библиотеки стандартных подсистем (УТ, ERP, Бухгалтерия, ЗУП и других) есть встроенный отчёт по активным сеансам. Обычно он находится в разделе «Администрирование» → «Обслуживание» → «Активные пользователи» (в некоторых версиях — «Поддержка и обслуживание» → «Активные пользователи»).
Отчёт показывает имя пользователя, компьютер, время начала сеанса, режим работы (тонкий клиент, веб-клиент, фоновое задание) и время последнего обращения. Это самый быстрый способ для пользователя с правами администратора, который не хочет открывать конфигуратор или консоль кластера.
Из этого же списка в ряде конфигураций можно завершить сеанс пользователя, если у вас есть соответствующие права. Пользуйтесь этим аккуратно: принудительное завершение обрывает работу человека без сохранения несохранённых данных.
Консоль кластера серверов 1С
Для клиент-серверного режима основной инструмент — консоль администрирования серверов 1С (1CV8 Servers.msc). Путь: раскройте нужный кластер → «Информационные базы» → выберите базу → «Сеансы». Вы увидите все активные подключения с указанием пользователя, приложения, компьютера и времени начала.
Раздел «Соединения» показывает соединения с рабочими процессами — это более низкоуровневая картина, полезная при диагностике нагрузки. Для задачи «кто в базе» достаточно именно «Сеансов».
- 1Откройте оснастку «Администрирование серверов 1С Предприятия» на сервере или с правами администратора кластера
- 2Раскройте ветку кластера, затем «Информационные базы» и выберите нужную базу
- 3Перейдите на вкладку «Сеансы» и изучите список: пользователь, приложение, компьютер, время начала
- 4При необходимости завершите сеанс через контекстное меню, предупредив пользователя
- 5Проверьте, что список обновился и лишние сеансы исчезли
Учтите ограничение: консоль кластера показывает только клиент-серверные базы. Для файловых баз этот инструмент неприменим — там сеансы видны только из самой базы или из конфигуратора.
Конфигуратор и файловый режим
В файловом режиме список подключённых пользователей доступен прямо из конфигуратора: меню «Администрирование» → «Активные пользователи». Откроется таблица с именами, компьютерами и временем входа. Отсюда же можно отправить пользователям сообщение с просьбой выйти из базы.
Этот способ работает и для клиент-серверных баз, если открыть конфигуратор с подключением к нужной базе. Однако в клиент-серверном варианте консоль кластера даёт больше деталей и не требует входа в саму базу.
Программное получение сеансов и пользователей
Если список нужен в обработке, отчёте или регламентной проверке, используйте встроенный язык. Для текущих сеансов предназначен метод ПолучитьСеансыИнформационнойБазы():
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Сообщить(Сеанс.Пользователь.Имя + " | "
+ Сеанс.ИмяПриложения + " | "
+ Сеанс.НачалоСеанса);
КонецЦикла;
Метод доступен в серверном контексте и требует права «Администрирование» либо «Просмотр журнала регистрации» в зависимости от сценария. У объекта сеанса доступны свойства: пользователь, компьютер, имя приложения, начало сеанса, время последнего обращения, спящий сеанс и другие.
Для получения всех учётных записей (не только активных сейчас) используйте менеджер пользователей информационной базы:
Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();
Для Каждого ПользовательИБ Из Пользователи Цикл
Сообщить(ПользовательИБ.Имя + " | аутентификация ОС: "
+ ПользовательИБ.АутентификацияОС);
КонецЦикла;
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Если Не Сеанс.СпящийСеанс Тогда
Активные.Добавить(Сеанс.Пользователь.Имя);
КонецЕсли;
КонецЦикла;Обратите внимание на свойство СпящийСеанс: в клиент-серверном режиме сеансы могут «засыпать» и формально числиться активными, хотя пользователь уже закрыл клиент. Для честного подсчёта реально работающих людей спящие сеансы часто исключают.
Журнал регистрации: кто работал за период
Если нужно не текущее состояние, а история — кто заходил в базу за день, неделю или месяц — используйте журнал регистрации. Откройте его из конфигуратора («Администрирование» → «Журнал регистрации») или из типовой конфигурации, установите отбор по событию «Сеанс. Аутентификация» и нужному периоду.
Журнал можно выгрузить в файл и обработать внешними средствами, либо программно методом ВыгрузитьЖурналРегистрации() — это удобно для автоматических отчётов по активности. Имейте в виду, что на больших базах журнал растёт быстро, и выгрузку за длительный период лучше делать в нерабочее время.
Сравнение способов
Быстро и без конфигуратора, но только если конфигурация на БСП и у вас есть права администратора в базе
Универсально для файловых баз, но требует монопольного доступа к конфигуратору и неудобно для регулярного контроля
Полная картина для клиент-серверных баз, включая спящие сеансы, но нужен доступ к серверу администрирования
Гибко, подходит для отчётов и автоматики, но требует прав и навыков встроенного языка
Типичные ошибки и ограничения
Отдельно стоит упомянуть лицензионный контроль. Количество сеансов не равно количеству занятых лицензий: один пользователь с несколькими сеансами может занимать одну клиентскую лицензию, а подсчёт лицензий ведётся по своим правилам на сервере 1С. Для аудита лицензий используйте данные сервера, а не просто число строк в списке сеансов.
Как проверить результат
Остались только ваш сеанс и, возможно, спящие сеансы без активности
В списке есть активные сеансы пользователей с недавним временем обращения
Метод вернул коллекцию сеансов без ошибки доступа
Ошибка «Нарушение прав доступа» — не хватает роли администрирования
Отображаются все сеансы с указанием приложения и компьютера
Пустой отчёт при заведомо работающих пользователях — проверьте права и подсистему БСП
FAQ
Как выгнать всех пользователей из базы перед обновлением?
В типовых конфигурациях используйте «Администрирование» → «Обслуживание» → «Блокировка работы пользователей»: установите блокировку сеансов с сообщением и временем, затем завершите оставшиеся сеансы. В консоли кластера аналог — свойства информационной базы, параметры «Блокировка начала сеансов» и «Код разрешения». Сначала предупредите пользователей и дождитесь завершения фоновых заданий.
Почему в списке сеансов пользователь есть, хотя он давно вышел?
Это спящий сеанс: в клиент-серверном режиме платформа не сразу уничтожает сеанс после закрытия клиента, чтобы ускорить повторное подключение. Время жизни спящих сеансов настраивается в свойствах информационной базы в консоли кластера (параметры «Спящие сеансы»). Такие сеансы не мешают обновлению и обычно завершаются автоматически.
Как получить список активных пользователей файловой базы без входа в неё?
Штатного внешнего инструмента для файловых баз нет: список подключений виден только изнутри — через конфигуратор («Администрирование» → «Активные пользователи») или из сеанса 1С. Косвенно о подключениях можно судить по открытым файлам на сетевом ресурсе (например, через управление общими ресурсами в Windows), но это неточный метод.
Можно ли узнать, чем конкретно занимается активный пользователь?
Список сеансов показывает только факт подключения, приложение и время обращения. Что именно делает пользователь, видно в технологическом журнале и при анализе блокировок в консоли кластера (свойство «Блокировки» у соединений). Для аудита действий — например, какие документы менял пользователь — настраивают журнал регистрации с нужным уровнем детализации.
Как программно завершить сеанс конкретного пользователя?
Через объектную модель кластера с помощью COM-соединителя (V83.COMConnector) и интерфейсов администрирования: подключаетесь к агенту сервера, находите сеанс по пользователю и вызываете метод завершения. Это требует учётных данных администратора кластера и аккуратности — завершение чужого сеанса обрывает работу без сохранения.
Что важно запомнить
Активные сеансы смотрят в консоли кластера (клиент-сервер), в конфигураторе и отчёте «Активные пользователи» (любой режим) или программно через ПолучитьСеансыИнформационнойБазы(). Спящие сеансы не считаются реальной активностью. Перед принудительным завершением сеансов предупредите пользователей и проверьте фоновые задания.