Ситуация, когда работа в информационной системе внезапно замедляется или критическая операция блокируется, знакома многим администраторам. Чаще всего причина кроется в том, что кто-то из пользователей оставил зависшую сессию или выполняет тяжелую обработку в час пик. Чтобы оперативно решить проблему, необходимо точно понимать, как проверить кто сидит в 1С в текущий момент времени. Это базовый навык для любого специалиста, поддерживающего стабильность работы предприятия.
Существует несколько уровней контроля: от встроенных средств самой платформы до глубокого анализа логов сервера баз данных. Выбор конкретного метода зависит от вашей роли, прав доступа и архитектуры системы (файловый вариант или клиент-серверный). В этой статье мы разберем все доступные инструменты, начиная от простых визуальных проверок и заканчивая анализом системных таблиц SQL.
Использование встроенного монитора пользователей
Самый быстрый способ получить ответ на вопрос, кто сейчас находится в системе, — это использование специализированного режима запуска. Если у вас есть права администратора, вы можете запустить конфигуратор или обычное приложение в особом режиме, который отображает список всех активных подключений. Этот метод работает как в файловом, так и в клиент-серверном варианте, однако детализация будет отличаться.
При запуске через консоль или ярлык с ключом /Monitor открывается окно, где видны все текущие сеансы. Здесь отображается имя пользователя, компьютер, с которого выполнено подключение, и время начала сессии. Это позволяет мгновенно вычислить "нарушителя спокойствия", который, возможно, ушел на обед, забыв закрыть тяжелый отчет. Для файловой базы данных это часто единственный доступный оперативный инструмент.
Однако стоит учитывать, что в режиме 1С:Предприятие без специальных ключей запуска список пользователей может быть недоступен обычному работнику. Только администраторы информационной базы имеют привилегию просматривать список активных сеансов через стандартный интерфейс. Если вы не видите такой возможности в меню "Администрирование", значит, ваши права ограничены, и потребуется обращение к главному специалисту.
⚠️ Внимание: Завершение чужого сеанса через монитор пользователей может привести к потере несохраненных данных этим сотрудником. Всегда пытайтесь связаться с пользователем перед принудительным разрывом соединения.
В клиент-серверном варианте список сеансов может быть более обширным и включать технические сессии фоновых заданий. Важно уметь отличать реального пользователя от системного процесса, чтобы не остановить критически важный регламентный обмен данными. Имя процесса часто содержит подсказки, например, BackgroundJob или имя конкретного пользователя домена.
Используйте сочетание клавиш Ctrl+Alt+Del на сервере 1С только в крайних случаях. Для управления сессиями существуют штатные средства администрирования, которые безопаснее для целостности данных.
Анализ журнала регистрации событий
Когда требуется не просто увидеть текущих пользователей, а восстановить картину того, кто и когда заходил в систему за последние дни, на помощь приходит журнал регистрации. Это мощный инструмент аудита, который по умолчанию может быть отключен или настроен на запись только критических ошибок. Для полноценного мониторинга необходимо убедиться, что событие Сеанс включено в настройки журналирования.
Чтобы просмотреть логи, администратор должен открыть форму журнала регистрации через меню "Администрирование" -> "Журнал регистрации". Здесь можно отфильтровать события по типу "Начало сеанса" и "Конец сеанса". В записях содержится исчерпывающая информация: имя пользователя, IP-адрес или имя компьютера, а также точное время входа и выхода. Это идеальный способ провести расследование постфактум.
Фильтрация данных в журнале позволяет сузить круг поиска. Вы можете отобрать записи только за текущий день или за конкретный час, когда наблюдались проблемы с производительностью. Если журнал настроен правильно, вы увидите не только факт входа, но и причину завершения сеанса: нормальный выход пользователя или аварийное завершение со стороны сервера.
Где хранятся файлы журнала?
Файлы журнала регистрации обычно находятся в папке logs в каталоге информационной базы для файлового варианта или в каталоге сервера 1С для клиент-серверного варианта. Путь можно посмотреть в свойствах базы в списке информационных баз.
Рекомендуется настроить автоматическую ротацию или ограничение по размеру, чтобы диск сервера не переполнился. В настройках можно указать, что старые записи старше 30 дней должны удаляться, оставляя только актуальную информацию для анализа.
| Параметр события | Описание | Где используется |
|---|---|---|
| Сеанс | Фиксация начала и окончания работы пользователя | Журнал регистрации |
| Взаимодействие | Действия пользователя с объектами (открытие, запись) | Аудит изменений |
| Ошибка | Сбои в работе системы или скриптов | Технический журнал |
| Блокировка | Попытки захвата объектов данных | Монитор блокировок |
Мониторинг через консоль управления серверами
Для масштабных внедрений на базе платформы 1С:Предприятие 8.3 в режиме клиент-сервер основным инструментом контроля является консоль управления серверами (ras). Это утилита командной строки или графический интерфейс (mmc), позволяющая администраторам кластера видеть состояние всех рабочих процессов (rphost) в реальном времени.
Использование консоли дает наиболее глубокую информацию. Вы можете увидеть не только список пользователей, но и то, на каком именно рабочем процессе выполняется их код, сколько памяти потребляет сессия и какие соединения с СУБД активны. Это незаменимый инструмент для диагностики "тормозов" системы, когда нужно найти процесс, потребляющий 100% ресурсов CPU.
Командная строка предоставляет гибкие скрипты для автоматизации. Например, с помощью команды ras cluster list можно получить список кластеров, а далее детализировать информацию по конкретному информационному ресурсу. Для администраторов, привыкших к текстовому интерфейсу, это часто более быстрый способ получения данных, чем поиск нужных пунктов в графическом меню.
ras cluster session list --cluster=ID_кластера --infobase=ID_базы
Результат выполнения такой команды выдаст таблицу со всеми активными сеансами, их идентификаторами и статусом. Это позволяет удаленно управлять кластером без необходимости подключаться к рабочему столу сервера через RDP, что повышает безопасность инфраструктуры. При этом важно иметь права на выполнение команд на сервере 1С.
Консоль управления серверами (ras) — единственный инструмент, позволяющий управлять рабочими процессами (rphost) на уровне кластера, перезагружая их или ограничивая ресурсы без остановки всей службы.
Проверка активных сессий через SQL-запросы
Если платформа 1С не дает полной картины или работает некорректно, можно обратиться напрямую к источнику данных — системе управления базами данных (СУБД). Методология проверки зависит от используемой СУБД: MSSQL, PostgreSQL или Oracle. Этот способ требует знаний языка SQL и прав на чтение системных представлений базы данных.
В среде Microsoft SQL Server информация об активных подключениях хранится в системном представлении sys.dm_exec_sessions. Сопоставив данные из этой таблицы с таблицей пользователей 1С (_Users), можно получить точный список тех, кто сейчас "сидит" в базе. Запрос позволяет увидеть даже те сессии, которые не отображаются в интерфейсе 1С из-за зависания клиентского приложения.
Для PostgreSQL ситуация аналогична, но используются другие системные каталоги, например, pg_stat_activity. Здесь можно отфильтровать процессы по имени базы данных и увидеть состояние каждого подключения (active, idle, idle in transaction). Состояние idle in transaction часто указывает на проблему: пользователь открыл транзакцию, но не завершил её, удерживая блокировки.
- 🔍 sys.dm_exec_sessions — основное представление в MS SQL для анализа сессий.
- 🔍 pg_stat_activity — аналог в PostgreSQL, показывающий активность процессов.
- 🔍 v$session — системное представление в Oracle для мониторинга подключений.
Использование прямых SQL-запросов дает преимущество в скорости и независимости от работы платформы 1С. Даже если сервер 1С полностью "лег" и не отвечает на запросы консоли, база данных может оставаться доступной для чтения, позволяя администратору понять причину сбоя и выявить виновника.
⚠️ Внимание: Выполнение тяжелых аналитических запросов к системным таблицам СУБД в момент пиковой нагрузки может дополнительно замедлить работу базы данных. Используйте выборку только необходимых полей.
☑️ Диагностика через SQL
Выявление пользователей через блокировки данных
Часто вопрос "кто сидит в 1С" возникает не из любопытства, а из-за конкретной проблемы: документ не проводится, справочник не редактируется, отчет не формируется. В таких случаях искать нужно не просто активного пользователя, а того, кто удерживает блокировку на нужный объект данных. Платформа 1С предоставляет специальный монитор блокировок для решения этой задачи.
Монитор блокировок показывает иерархию захваченных объектов. Вы можете увидеть, что, например, документ "Реализация товаров" заблокирован пользователем Ивановым. Система покажет тип блокировки (построчная, табличная, на весь объект) и длительность удержания. Это позволяет быстро локализовать источник проблемы в распределенной системе.
В файловом варианте работы блокировки реализованы через файлы-блокировщики в каталоге базы (файлы с расширением.lck). Однако анализировать их вручную неудобно. Проще воспользоваться формой "Блокировки" в режиме предприятия, которая считывает информацию о захваченных ресурсах из оперативной памяти процесса 1С.
Если блокировка удерживается слишком долго, это может свидетельствовать о том, что пользователь запустил долгую обработку и ушел, или его компьютер завис. В такой ситуации администратору приходится принимать волевое решение о разблокировке объекта, что может привести к конфликту данных, если первый пользователь все же вернется к работе.
Что такое взаимоблокировка (Deadlock)?
Взаимоблокировка возникает, когда два пользователя удерживают ресурсы, необходимые друг другу. Например, Пользователь А заблокировал Документ 1 и ждет Документ 2, а Пользователь Б заблокировал Документ 2 и ждет Документ 1. Система 1С автоматически обнаруживает такие ситуации и завершает один из сеансов.
Автоматизация контроля и оповещения
Ручная проверка того, кто сидит в 1С, эффективна при разовых инцидентах, но для постоянной поддержки системы нужен автоматизированный подход. Современные системы мониторинга (Zabbix, Prometheus) могут собирать метрики с сервера 1С и СУБД, строя графики количества активных пользователей в динамике.
Настроив пороговые значения, администратор может получать уведомления в мессенджер или на почту, если количество сессий превысит норму или если какая-то сессия длится неоправданно долго (например, более 4 часов). Это позволяет реагировать на проблемы проактивно, до того, как пользователи начнут жаловаться на медленную работу.
Также существуют внешние утилиты и обработки, которые пишутся специально под нужды конкретной компании. Они могут рассылать предупреждения пользователям, которые забыли закрыть программу, или автоматически завершать сессии в нерабочее время. Такие решения требуют навыков программирования на встроенном языке 1С или использования стороннего ПО.
Не стоит забывать и о регламентных работах. Периодический анализ журнала регистрации и выгрузка статистики по пользователям помогают планировать обновление серверных мощностей. Если вы видите, что пиковое количество пользователей постоянно растет, возможно, пришло время добавить оперативной памяти или оптимизировать код конфигурации.
Автоматический мониторинг превращает реактивное управление (тушение пожаров) в проактивное, позволяя устранять причины проблем с производительностью до их влияния на бизнес-процессы.
Часто задаваемые вопросы (FAQ)
Можно ли узнать, кто заходил в 1С, если журнал регистрации был выключен?
Если журнал регистрации был отключен в момент входа пользователя, средствами самой платформы 1С восстановить эту информацию невозможно. В этом случае можно попытаться проанализировать логи операционной системы (Windows Event Log) или логи СУБД, где могли зафиксироваться подключения к портам или базы данных, но там не всегда будет указано имя пользователя 1С.
Как проверить пользователей в файловой базе 1С без запуска конфигуратора?
В файловой базе основной способ — это запуск 1С в режиме предприятия с правами администратора и открытие списка сеансов через меню "Администрирование". Сторонние утилиты могут читать файлы блокировок, но они не всегда показывают полную информацию о пользователе. Прямой доступ к файлам базы (.1CD) сторонними программами запрещен и может привести к повреждению данных.
Почему в списке сеансов отображаются пользователи, которых нет в штате?
Это могут быть технические пользователи, используемые для фоновых заданий, обмена данными с другими системами или работы веб-сервисов. Также это могут быть старые учетные записи, которые не были удалены из базы, но используются сервисными учетками. Необходимо сверить имена с списком регламентных заданий.
Может ли один пользователь иметь несколько сеансов в 1С?
Да, это вполне нормальная ситуация. Пользователь может открыть базу в режиме "Предприятие" для работы, отдельно запустить отчет в новом окне или использовать внешнюю обработку. Каждое новое подключение к базе данных создает отдельный сеанс, который будет виден в мониторе.
Как завершить сеанс пользователя, который удерживает блокировку?
В режиме администратора в списке активных сеансов можно выбрать нужную строку и нажать кнопку "Завершить сеанс". В клиент-серверном варианте это можно сделать через консоль управления серверами (ras). В крайнем случае, при зависании серверного процесса, может потребоваться перезапуск службы сервера 1С, но это затронет всех пользователей.