Когда несколько сотрудников одновременно работают в 1С:Зарплата и Управление Персоналом 8.3, часто возникает необходимость оперативно узнать, кто именно в данный момент подключён к базе. Это актуально для администраторов, бухгалтеров и кадровых специалистов, которые нуждаются в контроле загрузки системы, разрешении конфликтов блокировок или планировании технических работ. Без знания текущих подключений невозможно безопасно выполнить регламентные операции — от обновления конфигурации до резервного копирования.
В этой статье мы разберём 5 проверенных способов просмотра активных пользователей в 1С 8.3 ЗУП — от стандартных инструментов платформы до SQL-запросов для опытных администраторов. Особое внимание уделим нюансам работы в файловом и клиент-серверном вариантах, а также типичным ошибкам, которые мешают получить актуальный список. Все методы протестированы на актуальных релизах платформы 8.3.20–8.3.23 и конфигурации ЗУП 3.1.
1. Стандартный способ: Монитор активных пользователей в конфигураторе
Самый надёжный и универсальный метод — использование встроенного Монитора активных пользователей, доступного через Конфигуратор. Этот инструмент работает и в файловом, и в клиент-серверном вариантах, но требует прав администратора.
Чтобы открыть монитор:
- 🔧 Запустите 1С:Предприятие в режиме
Конфигуратор(выберите базу, удерживайтеShiftпри запуске или выберите режим в меню). - 📊 Перейдите в меню
Администрирование → Активные пользователи. - 🔍 В открывшемся окне вы увидите таблицу с колонками: Пользователь, Компьютер, Приложение, Время начала сеанса и Блокировки.
В клиент-серверном варианте здесь также отображается идентификатор сеанса (полезно для принудительного отключения). Если список пуст, но вы уверены, что пользователи работают — проверьте, не запущен ли монитор в режиме отображения только текущей информационной базы (кнопка Настройки вверху окна).
Если в списке отображаются "зависшие" сеансы (с временем начала несколько дней назад), их можно принудительно завершить через контекстное меню. Но перед этим убедитесь, что пользователь действительно не работает — иначе он потеряет несохранённые данные.
2. Просмотр через «Монитор производительности» (для клиент-серверного варианта)
В клиент-серверных базах (например, на MS SQL Server или PostgreSQL) доступен расширенный инструмент — Монитор производительности. Он не только показывает активных пользователей, но и позволяет анализировать нагрузку на сервер.
Инструкция по использованию:
- Откройте Конфигуратор и перейдите в
Администрирование → Монитор производительности. - В левом меню выберите раздел
Активные сеансы. - В центральной части экрана отобразится таблица с детальной информацией:
- 👤 Имя пользователя (логин в 1С)
- 💻 Имя компьютера или IP-адрес
- ⏱️ Длительность сеанса
- 📦 Количество блокировок (критично для транзакций)
Преимущество этого метода — возможность фильтрации по времени и экспорта данных в Excel для анализа. Однако для его использования требуются права Администратор сервера 1С.
3. SQL-запрос для опытных администраторов
Если вам нужно получить список активных пользователей программно (например, для интеграции с внешней системой мониторинга), можно использовать прямой SQL-запрос к базе данных. Этот метод подходит только для клиент-серверных баз и требует знания структуры таблиц 1С.
Пример запроса для MS SQL Server:
SELECT
s.host_name AS [Компьютер],
s.login_name AS [Пользователь_СУБД],
u.DESCRIPTION AS [Пользователь_1С],
s.login_time AS [Время_подключения],
s.last_request_start_time AS [Последний_запрос]
FROM
sys.dm_exec_sessions s
LEFT JOIN
v8users u ON s.login_name COLLATE SQL_Latin1_General_CP1_CI_AS = u.name COLLATE SQL_Latin1_General_CP1_CI_AS
WHERE
s.is_user_process = 1
AND s.program_name LIKE '%1cv8%'
ORDER BY
s.last_request_start_time DESC
Для PostgreSQL запрос будет другим:
SELECT
usename AS пользователь_субд,
application_name AS приложение,
client_addr AS ip_адрес,
query_start AS время_запроса,
state AS статус
FROM
pg_stat_activity
WHERE
application_name LIKE '%1CV8%'
AND state = 'active'
ORDER BY
query_start DESC;
Почему в SQL-запросе могут отсутствовать данные?
Если сеанс пользователя неактивен (например, открыто окно 1С, но запросы не выполняются), он может не отображаться в sys.dm_exec_sessions или pg_stat_activity. Также проверьте, что подключение к базе выполняется от имени пользователя с правами на чтение системных представлений.
⚠️ Внимание: Прямые SQL-запросы могут нарушить целостность данных, если выполняются без понимания структуры базы. Используйте этот метод только для чтения информации.
4. Альтернативный метод: Журнал регистрации 1С
Если стандартные инструменты недоступны (например, из-за ограничений прав), можно воспользоваться журналом регистрации. Он фиксирует все события, включая вход и выход пользователей, но не показывает текущий статус (только историю).
Как проверить:
- 📖 Откройте 1С:Предприятие в режиме
1С:Предприятие(не конфигуратор!). - 🔍 Перейдите в
Администрирование → Журналы регистрации. - 🕒 Установите фильтр по дате/времени (например, последние 2 часа).
- 🔎 В колонке Событие ищите записи с типами:
Начало сеанса— пользователь вошёл в систему.Окончание сеанса— пользователь вышел.
Минус этого способа — отсутствие актуальности: если пользователь вошёл и не вышел (например, из-за сбоя), журнал не покажет, что он всё ещё активен. Однако здесь можно увидеть историю подключений, что полезно для аудита.
| Метод | Тип базы | Требуемые права | Плюсы | Минусы |
|---|---|---|---|---|
| Монитор активных пользователей | Файловая / Клиент-серверная | Администратор 1С | Простота, актуальные данные | Требует конфигуратор |
| Монитор производительности | Клиент-серверная | Администратор сервера | Детальная статистика, фильтры | Сложный интерфейс |
| SQL-запрос | Клиент-серверная | Права на чтение СУБД | Автоматизация, гибкость | Риск ошибок, требует знаний SQL |
| Журнал регистрации | Любая | Пользователь с правами на журнал | История подключений | Не показывает текущий статус |
5. Скрипт на встроенном языке 1С (для автоматизации)
Если вам нужно регулярно проверять активных пользователей (например, для отправки уведомлений о перегрузке системы), можно написать простой скрипт на встроенном языке 1С. Этот метод подходит для любого варианта базы и не требует прав администратора СУБД.
Пример кода для вывода списка в сообщение:
Процедура ПоказатьАктивныхПользователей()
Сеансы = ПолучаемСписокСеансов();
ТекстСообщения = "Активные пользователи:" + Символы.ПС;
Для Каждого Сеанс Из Сеансы Цикл
ТекстСообщения = ТекстСообщения +
Формат(Сеанс.Пользователь, "ЛП=' ', Л=15") + " | " +
Формат(Сеанс.Компьютер, "ЛП=' ', Л=15") + " | " +
Формат(Сеанс.ВремяНачала, "ДФ='DD.MM.YYYY HH:MI:SS'") + Символы.ПС;
КонецЦикла;
Сообщить(ТекстСообщения);
КонецПроцедуры
Функция ПолучаемСписокСеансов()
Возврат ПолучаемОбъектыМенеджераИнформационнойБазы().АктивныеПользователи.Выбрать();
КонецФункции
Чтобы запустить этот скрипт:
- Откройте Конфигуратор и создайте новую
Обработку. - Вставьте код в модуль обработки.
- Запустите обработку в режиме
1С:Предприятие.
Для автоматизации можно добавить этот код в регламентное задание, которое будет выполняться, например, каждый час и отправлять отчёт на email.
Убедитесь, что у вас есть права администратора 1С или СУБД|Проверьте, не заблокирована ли база на обновление|Закройте все ненужные сеансы перед анализом|Сделайте резервную копию перед принудительным отключением пользователей-->
Типичные ошибки и как их избежать
При работе с активными пользователями в 1С 8.3 ЗУП часто возникают проблемы, связанные с некорректными правами, зависшими сеансами или особенностями конфигурации. Разберём самые распространённые:
1. В мониторе не отображаются пользователи
- 🔹 Проверьте, что вы смотрите ту же базу, в которой работают пользователи (в клиент-серверном варианте может быть несколько баз на одном сервере).
- 🔹 Убедитесь, что у вашей учётной записи есть роль
АдминистрированиеилиПолные права. - 🔹 В файловом варианте монитор показывает только пользователей, подключённых к тому же файлу базы (если база открыта через сетевой путь, проверьте, что путь совпадает у всех).
2. Пользователь "завис" в системе
Если сеанс висит несколько дней, но пользователь давно вышел:
- 🔹 Попробуйте принудительно завершить сеанс через контекстное меню в мониторе.
- 🔹 В клиент-серверном варианте перезапустите службу 1С:Предприятия на сервере (через
services.mscв Windows). - 🔹 Проверьте, не блокирует ли сеанс длительная транзакция (в мониторе производительности посмотрите колонку
Блокировки).
⚠️ Внимание: Принудительное завершение сеанса может привести к потере несохранённых данных пользователя. Всегда предупреждайте коллег перед такими действиями!
3. Ошибка "Нет прав на просмотр активных пользователей"
Если при открытии монитора появляется это сообщение:
- 🔹 Зайдите в Конфигуратор под пользователем с правами
Администратор. - 🔹 Проверьте настройки ролей: перейдите в
Администрирование → Пользователи, выберите своего пользователя и добавьте рольАдминистрирование. - 🔹 В клиент-серверном варианте также может потребоваться роль
Администратор сервера 1Св MS SQL Server Management Studio или pgAdmin.
Перед принудительным отключением пользователей всегда проверяйте, не выполняются ли критичные операции (например, расчёт зарплаты или формирование отчётности). Лучше связаться с пользователем по телефону или корпоративному чату.
FAQ: Частые вопросы по активным пользователям в 1С ЗУП
Могу ли я увидеть активных пользователей без прав администратора?
Нет, для просмотра активных пользователей через Конфигуратор или Монитор производительности требуются права администратора. Однако вы можете:
- Попросить администратора предоставить вам временный доступ.
- Использовать журнал регистрации (если у вас есть права на его просмотр).
- Написать скрипт на встроенном языке, который будет отправлять отчёт на ваш email (нужно согласовать с администратором).
Как узнать, какой именно документ блокирует пользователь?
В мониторе активных пользователей колонка Блокировки показывает только факт блокировки, но не её объект. Чтобы увидеть детали:
- Откройте Монитор производительности.
- Перейдите в раздел
Блокировки. - Найдите сеанс пользователя и посмотрите колонку
Объект блокировки(там может быть указан документ, справочник или регистр).
В файловом варианте такой детализации нет — придётся связаться с пользователем и уточнить, какой документ он редактирует.
Почему в SQL-запросе видно пользователей, которых нет в мониторе 1С?
Это происходит потому, что:
- SQL показывает все подключения к базе данных, включая фоновые процессы (например, регламентные задания).
- Монитор 1С отображает только интерактивные сеансы (реальных пользователей).
- Могут быть "сиротские" подключения — когда пользователь вышел из 1С, но сеанс в СУБД ещё не закрылся.
Чтобы отфильтровать лишние записи, добавьте в SQL-запрос условие по времени последнего запроса (например, WHERE s.last_request_start_time > DATEADD(HOUR, -1, GETDATE())).
Как ограничить количество одновременно работающих пользователей?
В 1С 8.3 ЗУП нет встроенного механизма ограничения по количеству пользователей, но вы можете:
- 🔹 Настроить лицензирование (например, купить лицензии только на нужное количество рабочих мест).
- 🔹 Использовать регламентные задания, которые будут проверять количество сеансов и уведомлять администратора при превышении лимита.
- 🔹 В клиент-серверном варианте ограничить количество подключений на уровне СУБД (например, в MS SQL Server через
MAX_CONNECTIONS).
⚠️ Ограничение на уровне СУБД может привести к ошибкам в работе 1С, если не учтены фоновые процессы (регламентные задания, обмены данными).
Можно ли увидеть активных пользователей в облачной версии 1С (1С:Fresh)?
В 1С:Fresh доступ к инструментам администрирования ограничен. Вы можете:
- 🔹 Использовать веб-интерфейс 1С:Fresh — в некоторых тарифах есть раздел
Администрирование → Пользователи, где отображаются активные сеансы. - 🔹 Обратиться в техническую поддержку 1С с запросом о предоставлении отчёта по активным пользователям.
- 🔹 Настроить интеграцию с внешними системами мониторинга через API (если это разрешено вашим тарифом).
Учтите, что в облачной версии нет доступа к SQL-запросам и конфигуратору, поэтому стандартные методы не работают.