В администрировании информационных систем на базе платформы 1С:Предприятие критически важно контролировать текущую нагрузку на сервер. Часто возникает необходимость оперативно узнать, кто именно в данный момент работает в базе, какие процессы они выполняют и как долго длится их сессия. Это нужно не только для безопасности, но и для оптимизации производительности кластера серверов.
Существует несколько способов получить актуальный список подключений: от графического интерфейса Консоли администрирования до прямого запроса к системным таблицам базы данных или использования встроенного языка программирования. Выбор метода зависит от ваших прав доступа, архитектуры системы (файловый или клиент-серверный вариант) и срочности задачи.
В этой статье мы детально разберем каждый из доступных методов, рассмотрим нюансы отображения информации в разных версиях платформы и предоставим готовые примеры кода для автоматизации мониторинга. Вы научитесь не просто видеть список имен, но и анализировать состояние сеансов для предотвращения зависаний и конфликтов блокировок.
Использование Консоли администрирования серверов 1С
Самым надежным и наглядным инструментом для просмотра активных подключений является штатная утилита Консоль администрирования (mmc). Она позволяет управлять кластером серверов в реальном времени без необходимости писать сложный код. Запустить её можно через меню «Пуск» или выполнив команду mmc и добавив соответствующий оснастку.
После подключения к нужному кластеру серверов необходимо раскрыть дерево элементов до пункта «Информационные базы». Выбрав конкретную базу, вы увидите список всех текущих сеансов. Здесь отображается имя пользователя, компьютер, с которого произведено подключение, и время начала сеанса. Важно отметить, что для работы с этим инструментом требуются права администратора кластера.
⚠️ Внимание: Если вы не видите список пользователей, убедитесь, что служба агента сервера 1С запущена и у вашей учетной записи Windows есть права на чтение данных кластера.
Интерфейс консоли позволяет сортировать сеансы по различным параметрам, что упрощает поиск «тяжелых» пользователей или зависших процессов. Вы можете принудительно завершить любой сеанс прямо из этого окна, если это необходимо для проведения регламентных работ или обновления конфигурации.
Используйте фильтр в консоли администрирования, чтобы отобразить только сеансы, длящиеся более 1 часа — это поможет быстро найти забытые открытые окна.
Просмотр сеансов через таблицу блокировок в режиме Предприятия
Если у вас нет доступа к серверу или вы работаете в файловом варианте базы, получить список пользователей можно прямо из интерфейса программы. Для этого необходимо иметь полные права администратора в самой конфигурации 1С:Предприятие. Перейдите в раздел Администрирование → Сервис → Активные пользователи.
Откроется форма со списком всех подключенных клиентов. Здесь информация обновляется динамически, но с небольшой задержкой. Вы увидите не только ФИО пользователя, но и название компьютера, а также приложение, через которое запущена сессия (Тонкий клиент, Веб-клиент или Конфигуратор). Это помогает понять, как именно сотрудники взаимодействуют с системой.
- 👤 Пользователь — имя учетной записи в базе 1С.
- 💻 Компьютер — сетевое имя рабочей станции или сервера терминалов.
- ⏱️ Время сеанса — длительность текущего подключения.
- 🔒 Блокировки — наличие активных захватов данных этим пользователем.
Из этого окна также можно выполнить завершение сеанса. Однако стоит помнить, что резкое обрывание соединения может привести к потере несохраненных данных у сотрудника. Рекомендуется предварительно связаться с пользователем и попросить завершить работу корректно.
Получение данных через SQL-запросы к системным таблицам
Для глубокого анализа и построения отчетов в системах мониторинга (например, Zabbix или Grafana) часто требуется программный доступ к данным о сессиях. В клиент-серверном варианте информация о сеансах хранится в системных таблицах базы данных СУБД (MS SQL, PostgreSQL).
Таблица, содержащая информацию о сеансах, обычно называется SESSIONS или имеет префикс имени базы. Структура этой таблицы может незначительно отличаться в зависимости от версии платформы 1С:Предприятие и типа используемой СУБД. Ниже приведен пример запроса для получения списка активных подключений.
SELECT
SessID,
UsrID,
AppID,
Host,
StartedAt
FROM
SESSIONS
WHERE
FinishedAt IS NULL;
Этот запрос вернет все сессии, у которых не заполнено время завершения, то есть они активны в данный момент. Поле Host покажет IP-адрес или имя машины, а StartedAt позволит вычислить длительность работы. Такой подход идеален для автоматизированных скриптов.
⚠️ Внимание: Прямые запросы к таблицам базы данных 1С выполняются на свой страх и риск. Не выполняйте операции UPDATE или DELETE в системных таблицах вручную, это может привести к повреждению кластера.
Особенности работы с PostgreSQL
В базах данных на PostgreSQL имена таблиц и полей могут быть приведены к нижнему регистру, а сами таблицы могут находиться в отдельной схеме, отличной от public.
Программный метод: встроенный язык 1С
Разработчики и администраторы часто используют встроенный язык платформы для создания внешних обработок или регламентных заданий, которые собирают статистику по пользователям. Объект МенеджерСеансов предоставляет все необходимые методы для этой задачи.
Код ниже демонстрирует, как получить коллекцию активных сеансов и вывести их параметры в журнал регистрации или во внешнюю таблицу. Этот метод работает кроссплатформенно и не зависит от типа СУБД, так как использует API платформы.
Сеансы = МенеджерСеансов.ПолучитьАктивныеСеансы();
Для Каждого Сеанс Из Сеансы Цикл
Сообщить("Пользователь: " + Сеанс.Пользователь +
", Компьютер: " + Сеанс.Компьютер);
КонецЦикла;
Использование этого подхода позволяет гибко фильтровать данные. Например, вы можете отбирать только тех пользователей, которые выполняют фоновые задания, или тех, кто работает в тонком клиенте. Полученные данные можно выгружать в файлы логов для последующего аудита.
| Свойство сеанса | Описание | Тип данных |
|---|---|---|
Пользователь |
Имя пользователя в базе | Строка |
Компьютер |
Имя хоста клиента | Строка |
НачалоСеанса |
Дата и время старта | Дата |
ОсновноеПриложение |
Имя запускаемого приложения | Строка |
Метод МенеджерСеансов.ПолучитьАктивныеСеансы() является наиболее безопасным программным способом, так как он не требует прямых прав доступа к таблицам СУБД.
Анализ журнала регистрации для ретроспективы
Иногда требуется не текущий список, а история подключений за определенный период. Для этих целей идеально подходит Журнал регистрации событий 1С. В нем фиксируются события начала и завершения сеансов, что позволяет восстановить картину активности за прошлые дни.
Для доступа к журналу необходимо зайти в режим конфигуратора или использовать специальную обработку анализа журнала. Фильтр событий должен быть настроен на типы событий «Начало сеанса» и «Завершение сеанса». Это позволяет увидеть даже тех пользователей, которые уже завершили работу.
Анализ журнала помогает выявить аномалии: например, если пользователь работает ночью или в выходные дни, либо если сессии завершаются аварийно слишком часто. Это ценный источник информации для службы информационной безопасности и системных администраторов.
- 📅 Период — задайте диапазон дат для анализа.
- 🔍 Событие — выберите «Сеанс» в группе событий.
- 📝 Комментарий — иногда содержит причину завершения (ошибка, тайм-аут).
Автоматизация мониторинга и оповещения
Ручная проверка списка пользователей эффективна только при малом их количестве. В крупных компаниях с сотнями одновременных подключений необходима автоматизация. Вы можете настроить скрипт, который периодически опрашивает базу и отправляет уведомление, если количество активных пользователей превышает лимит лицензии.
Также полезно автоматическое завершение «зависших» сеансов. Например, если сессия не проявляет активности более 4 часов, система может принудительно её закрыть, освобождая ресурсы сервера. Реализовать это можно с помощью регламентного задания, использующего код из раздела про встроенный язык.
⚠️ Внимание: Перед внедрением автоматического завершения сеансов обязательно протестируйте логику на тестовой базе. Ошибка в условии может привести к массовому отключению работающих сотрудников в час пик.
☑️ Настройка авто-мониторинга
Комплексный подход к мониторингу активных пользователей 1С сочетает в себе использование штатных средств администрирования, SQL-аналитику и программные методы. Регулярный контроль помогает поддерживать стабильность работы системы, избегать конфликтов блокировок и оптимально использовать приобретенные лицензии.
Часто задаваемые вопросы (FAQ)
Почему в списке активных пользователей отображаются системные учетные записи?
Системные учетные записи (например, Администратор или имена сервисных пользователей) отображаются, потому что от их имени могут выполняться фоновые задания, обновления или работа регламентных процессов. Это нормальное поведение системы.
Как узнать IP-адрес пользователя, если отображается только имя компьютера?
В интерфейсе 1С часто отображается NetBIOS-имя. Чтобы увидеть IP-адрес, необходимо использовать Консоль администрирования серверов 1С или выполнить SQL-запрос к таблице сеансов, где поле Host может содержать IP.
Можно ли увидеть пользователей в файловой базе, если они зашли через веб-клиент?
Да, веб-клиент также создает сеанс в информационной базе. Однако, если веб-сервер (IIS или Apache) работает как прокси, в поле «Компьютер» может отображаться имя самого веб-сервера, а не конечного клиента.
Что означает статус «Вытеснен» в списке сеансов?
Статус «Вытеснен» означает, что сеанс был принудительно завершен администратором или системой, но процесс на клиенте еще не полностью освободил ресурсы или не получил подтверждение о разрыве соединения.