Кто сейчас работает в базе 1С: консоль кластера, rac, SQL и монитор активных пользователей
Содержание
Посмотреть сеансы
пользователей в 1С проще всего двумя способами. В клиент-серверной базе откройте консоль «Администрирование серверов 1С Предприятия» и раскройте Кластеры → 1541 → Информационные базы → <ваша база> → Сеансы. В любой базе, в том числе файловой, запустите обработку «Активные пользователи»: в Конфигураторе это Администрирование → Активные пользователи.
Обычно сеансы ищут, когда надо обновить конфигурацию , а база «занята», когда закончились лицензии или когда нужно понять, кто держит блокировку.
Какой способ мониторинга сеансов выбрать
Способы различаются тем, откуда берут данные и что умеют, кроме простого просмотра.
| Способ | Вариант базы | Что видно | Можно завершить сеанс |
|---|---|---|---|
| Консоль кластера серверов | клиент-серверный | все сеансы всех баз кластера, приложение, рабочий процесс, лицензии | да |
| «Активные пользователи» | любой | сеансы текущей базы | в типовых на БСП — да |
rac session list | клиент-серверный | то же, что в консоли, текстом для скриптов | да, rac session terminate |
| Запрос к СУБД | клиент-серверный | соединения рабочих процессов с SQL-сервером | нет, и не нужно |
| Открытые файлы Windows | файловый на общей папке | учётные записи Windows, открывшие файл базы | только грубо, с риском |
💡 Если нужен ответ «кто в базе прямо сейчас» за минуту, начинайте с «Активных пользователей». Консоль и rac нужны, когда надо видеть весь сервер или выгнать зависший сеанс.
Сеансы в консоли администрирования серверов 1С
Консоль — это оснастка MMC, которая ставится вместе с сервером 1С или с компонентом «Администрирование сервера 1С:Предприятия» в установщике платформы. Она подключается к агенту сервера по порту 1540.
Как открыть и подключиться
- Запустите из меню «Пуск» ярлык «Администрирование серверов 1С Предприятия».
- Если сервера в дереве нет, щёлкните правой кнопкой по
Central 1C:Enterprise 8.3 servers → Создать → Центральный сервер 1С:Предприятия 8.3. - Укажите имя компьютера с сервером 1С, протокол
tcp, порт1540. - Раскройте сервер →
Кластеры→ кластер (по умолчанию называется по порту,1541). Если в кластере заданы администраторы, консоль спросит логин и пароль.
Где смотреть сеансы
В кластере есть два места:
- 👥 узел
Сеансыпрямо в кластере — все сеансы всех баз сервера; - 🗂
Информационные базы → <база> → Сеансы— только сеансы выбранной базы.
В списке видно пользователя 1С, компьютер, приложение, время начала и последней активности, рабочий процесс, который обслуживает сеанс. Колонка «Приложение» отделяет людей от служебных подключений: «Тонкий клиент», «Конфигуратор», «Фоновое задание», «COM-соединение», «Веб-клиент».
Рядом лежат узлы Соединения и Блокировки. Соединение — это сетевое подключение клиента к рабочему процессу, сеанс — логический вход пользователя в базу. Один сеанс может пережить разрыв соединения, поэтому их число не всегда совпадает.
Как завершить сеанс
Щёлкните по сеансу правой кнопкой → Удалить. Пользователь потеряет всё, что не успел записать, а незаконченная транзакция откатится. Перед удалением позвоните человеку или хотя бы предупредите в общем чате, особенно если это сеанс Конфигуратора или фоновое задание обмена.
Если консоль не открывается
Типичная история: после обновления платформы ярлык выдаёт пустое окно или ошибку оснастки. Консоль привязана к библиотеке radmin.dll конкретной версии платформы, и её нужно перерегистрировать. Запустите командную строку от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер в пути замените на версию платформы, которая стоит на сервере. Разрядность важна: 64-битная консоль регистрируется из Program Files, 32-битная — из Program Files (x86). Номер версии консоли должен совпадать с номером версии сервера, иначе подключение не пройдёт.
Монитор активных пользователей в режиме Предприятия
Этот способ работает и в файловой, и в серверной базе, прав администратора кластера не требует. Нужна только роль с правом администрирования в самой базе.
Откуда запустить
- 🖥 Из Конфигуратора:
Администрирование → Активные пользователи. - 📂 Из типовой конфигурации на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11): раздел
Администрирование → Обслуживание, ссылка «Активные пользователи». - ⚙️ Из любой конфигурации: главное меню (☰) →
Все функции → Стандартные → Активные пользователи. Если пункта «Все функции» нет, включите его вСервис и настройки → Параметрыфлажком «Отображать команду “Все функции”».
Стандартная обработка показывает пользователя, компьютер, приложение, время начала и номер сеанса. Типовая форма из БСП богаче: умеет фильтровать, открывать журнал регистрации по выбранному пользователю и завершать сеансы. В клиент-серверной базе для завершения она спросит параметры администратора кластера.
💡 Имя компьютера помогает найти человека, если пользователь 1С общий, например «Бухгалтер» на троих. Ещё быстрее — двойной щелчок по строке в БСП-форме: откроется журнал регистрации с действиями этого сеанса.
Список сеансов программно
Тот же список можно получить кодом — например, во внешней обработке или в консоли кода. Функция выполняется на сервере:
&НаСервереБезКонтекста
Процедура ВывестиСеансыНаСервере()
Для Каждого Сеанс Из ПолучитьСеансыИнформационнойБазы() Цикл
Сообщить(СтрШаблон("%1 | %2 | %3 | начало %4 | №%5",
Строка(Сеанс.Пользователь),
Сеанс.ИмяКомпьютера,
ПредставлениеПриложения(Сеанс.ИмяПриложения),
Сеанс.НачалоСеанса,
Формат(Сеанс.НомерСеанса, "ЧГ=0")));
КонецЦикла;
КонецПроцедуры
Для сеансов фоновых заданий поле пользователя бывает пустым — это нормально. Отдельная функция ПолучитьСоединенияИнформационнойБазы() возвращает соединения, а не сеансы.
Просмотр сеансов из командной строки: ras и rac
Процесс rmngr — это менеджер кластера. Своих команд для просмотра сеансов у него нет, а с консолью и rac он общается через агент ragent. Для командной строки в поставке платформы есть пара утилит:
- ras — сервер администрирования, посредник между rac и кластером. По умолчанию слушает порт
1545. - rac — клиент, который отправляет команды и печатает ответ текстом.
Запуск ras
Для разовой проверки ras можно запустить прямо в окне командной строки на сервере 1С:
cd "C:\Program Files\1cv8\8.3.24.1548\bin"
ras cluster --port=1545 localhost:1540
Для постоянной работы ras регистрируют службой Windows. В Linux он лежит в /opt/1cv8/x86_64/<версия>/ и запускается с ключом --daemon.
Команды для сеансов
Сначала узнайте идентификатор кластера, затем базы, затем запросите сеансы:
rac localhost:1545 cluster list
rac localhost:1545 infobase summary list --cluster=<uuid-кластера>
rac localhost:1545 session list --cluster=<uuid-кластера> --infobase=<uuid-базы>
Если у кластера есть администратор, добавьте --cluster-user=<логин> --cluster-pwd=<пароль>. Без --infobase команда выведет сеансы всех баз.
В выводе каждого сеанса ищите поля:
user-name— пользователь 1С;host— компьютер;app-id— приложение:1CV8Cтонкий клиент,1CV8толстый,DesignerКонфигуратор,BackgroundJobфоновое задание,WebClientвеб-клиент;started-atиlast-active-at— начало и последняя активность.
Кто сколько держит лицензий, покажет rac session list --cluster=<uuid> --licenses. Завершить сеанс можно командой rac session terminate --cluster=<uuid> --session=<uuid-сеанса> — с теми же последствиями, что и удаление в консоли. Полный список ключей — в rac help session.
💡 Вывод rac удобно фильтровать: | findstr "user-name host app-id" в Windows или | grep -E "user-name|app-id" в Linux. Так за пять секунд видно, сколько Конфигураторов открыто перед обновлением.
Журнал сеансов по расписанию
Консоль показывает только «сейчас». Если нужно понять, кто занимает лицензии по утрам или кто оставляет Конфигуратор открытым на ночь, сохраняйте снимок списка в файл через Планировщик заданий Windows, например раз в 15 минут:
@echo off
set RAC="C:\Program Files\1cv8\8.3.24.1548\bin\rac.exe"
set CL=<uuid-кластера>
echo ===== %date% %time% >> C:\logs\sessions.txt
%RAC% localhost:1545 session list --cluster=%CL% | findstr "user-name host app-id started-at" >> C:\logs\sessions.txt
Через неделю такой файл отвечает на вопросы, которые консоль не решает: в какие часы пик сеансов, кто чаще всех работает в Конфигураторе, хватает ли купленных лицензий. Пароль администратора кластера в bat-файле храните только на сервере, в папке с ограниченным доступом.
Соединения на уровне СУБД: SQL-запросы
С SQL-сервером работают не пользователи, а рабочие процессы rphost. Поэтому запрос к СУБД покажет не «Иванов в 1С», а соединения сервера 1С: имя компьютера будет именем сервера 1С, логин — учётной записью, указанной в параметрах базы. Этот способ нужен для диагностики: кто долго держит транзакцию, какой запрос висит, сколько соединений открыто к базе.
MS SQL Server
SELECT session_id, login_name, host_name, program_name,
status, login_time, last_request_end_time
FROM sys.dm_exec_sessions
WHERE database_id = DB_ID('buh_base');
Активные запросы и блокировки между ними покажет sys.dm_exec_requests: колонка blocking_session_id называет номер соединения, которое мешает.
PostgreSQL
SELECT pid, usename, client_addr, application_name,
backend_start, state, query
FROM pg_stat_activity
WHERE datname = 'buh_base';
Связать соединение СУБД с конкретным пользователем 1С можно, пока идёт вызов: в списке сеансов консоли кластера есть сведения о соединении с СУБД, которое сеанс захватил в данный момент. Между вызовами такой связи нет.
Не завершайте соединения 1С средствами СУБД (KILL в MS SQL, pg_terminate_backend в PostgreSQL). Рабочий процесс получит ошибку, а сеансы, которые он обслуживал, оборвутся без понятного сообщения. Завершайте сеанс из консоли кластера или через rac.
Файловая база и клиент-серверная: что можно увидеть
В файловом варианте нет кластера, агента и рабочих процессов. Консоль администрирования и rac к такой базе не подключить, SQL-запроса тоже не будет. Остаются два пути.
- «Активные пользователи» из Конфигуратора или режима Предприятия — основной способ. Покажет пользователя 1С, компьютер и приложение.
- Открытые файлы Windows — если база лежит в общей папке, на компьютере с этой папкой откройте
Управление компьютером → Общие папки → Открытые файлы. В списке будет учётная запись Windows и файл1Cv8.1CD.
Второй способ выручает, когда база не открывается вовсе: например, Конфигуратор пишет, что монопольный режим недоступен, а запустить «Активных пользователей» нельзя. Видно хотя бы, с каких учётных записей открыт файл.
Закрыть файл из списка «Открытые файлы» можно, но это аварийное отключение: несохранённые данные пропадут, а файл базы может повредиться. Сначала сделайте копию папки базы и попросите людей выйти самим.
| Возможность | Файловый | Клиент-серверный |
|---|---|---|
| «Активные пользователи» | да | да |
| Консоль кластера и rac | нет | да |
| Сеансы всех баз сразу | нет | да |
| Соединения СУБД | нет | да |
| Завершение сеанса | из БСП-формы | консоль, rac, БСП-форма |
Когда сеансы не видны или висят: проблемы и решения
rac session list --licenses по всему кластеру, а не по одной базе: лицензию мог взять сеанс другой базы на этом же сервере.Ещё одна частая причина путаницы — спящие сеансы. Сервер может перевести неактивный сеанс в спящий режим: соединение разорвано, а сеанс с его данными сохраняется и восстанавливается, когда клиент вернётся. В списке консоли такой сеанс помечен отдельным признаком. Удалять его можно так же, как обычный, но владелец потеряет несохранённые данные.
Перед обновлением конфигурации удобнее не выгонять людей вручную, а установить блокировку начала сеансов. В консоли кластера это свойства информационной базы: флажок «Блокировка начала сеансов включена», время начала и окончания, сообщение для пользователей. Новые входы будут запрещены, а действующие сеансы вы завершите после предупреждения.