Активные сеансы 1С: из программы, в консоли кластера и через rac
Содержание
Посмотреть, кто сейчас работает в 1С, быстрее всего из самой программы: в БП 3.0, ЗУП 3.1 и УТ 11 откройте Администрирование → Обслуживание → Активные пользователи. Список покажет имя пользователя, компьютер, тип клиента и время начала сеанса. Из Конфигуратора тот же список открывается через Администрирование → Активные пользователи.
Для клиент-серверной базы есть второй, более полный источник: консоль «Администрирование серверов 1С:Предприятия» и утилита rac. Там видно все сеансы кластера, включая фоновые задания и COM-соединения, и там же сеанс можно принудительно завершить. Способы ниже работают на платформе 8.3 и не зависят от конфигурации, кроме первого пути меню.
Где в самой программе увидеть активных пользователей
В программе есть три входа в один и тот же список. Выбор зависит от того, где вы сейчас находитесь и какие у вас права.
| Откуда | Путь | Кому доступно |
|---|---|---|
| БП 3.0, ЗУП 3.1, УТ 11 и другие типовые на БСП | Администрирование → Обслуживание → Активные пользователи | Пользователю с правами администратора |
| Любая конфигурация, режим 1С:Предприятие | Все функции → Стандартные → Активные пользователи | Тем, у кого включена команда «Все функции» |
| Конфигуратор | Администрирование → Активные пользователи | Тому, кто вошёл в Конфигуратор |
Команда «Все функции» по умолчанию скрыта. Включите её так: главное меню (кнопка с тремя полосками в левом верхнем углу) → Сервис → Параметры → флажок «Отображать команду «Все функции»». После этого пункт появится в том же главном меню.
В типовых конфигурациях обработка из раздела «Администрирование» удобнее стандартной: из неё можно сразу открыть журнал регистрации по выбранному пользователю и посмотреть, что он делал последние минуты.
Список обновляется не сам по себе. Если вы держите его открытым, нажимайте кнопку обновления перед каждым решением: сеанс, который вы видите, мог закончиться минуту назад.
Что означают колонки в списке сеансов
Список выглядит просто, но в нём легко ошибиться. Главная путаница — колонка «Приложение»: не каждая строка означает живого человека за компьютером.
- 👤 Пользователь — имя из списка пользователей информационной базы. Если вход без авторизации (в базе нет пользователей), колонка пустая.
- 💻 Компьютер — сетевое имя машины. На терминальном сервере у всех будет одно имя — имя этого сервера.
- 🧩 Приложение — тип подключения:
- «Тонкий клиент», «Толстый клиент», «Веб-клиент» — работает человек;
- «Конфигуратор» — кто-то открыл базу в режиме разработки;
- «Фоновое задание» — регламентные задачи самой программы: загрузка курсов, обмены, обновление индексов;
- «COM-соединение» — внешняя программа или обработка подключилась к базе.
- 🕐 Начало работы — когда открыт сеанс. Сеанс «с позавчера» почти всегда означает, что человек просто не закрыл программу.
- 🔢 Номер сеанса — пригодится, если сеанс придётся искать в консоли кластера.
Свой собственный сеанс в списке тоже есть, обычно он выделен. Его не завершают: вы просто закроете своё окно.
Кто работает в серверной базе: консоль кластера
В клиент-серверном варианте сеансы живут в кластере серверов 1С. Консоль «Администрирование серверов 1С:Предприятия» показывает их полнее, чем список внутри базы, и позволяет смотреть сразу все базы кластера.
Как открыть консоль
- Запустите оснастку из меню «Пуск» — её ставит установщик платформы, если выбран компонент администрирования серверов.
- Если консоль не открывается или пишет об ошибке создания объекта, зарегистрируйте библиотеку из каталога нужной версии платформы. Командную строку запускайте от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\radmin.dll"
Номер версии в пути подставьте свой. Версия radmin.dll должна совпадать с версией сервера 1С, иначе консоль будет подключаться с ошибкой.
- В дереве нажмите правой кнопкой на «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3». Укажите имя сервера и порт агента — по умолчанию 1540.
Где искать сеансы
Раскройте ветку: сервер → «Кластеры» → нужный кластер. Дальше два пути:
- «Информационные базы» → база → «Сеансы» — кто работает в конкретной базе;
- «Сеансы» на уровне кластера — все сеансы всех баз сразу. Удобно, когда нужно понять, кто занимает лицензии.
Рядом есть ветки «Соединения» и «Блокировки». Соединения — это технические подключения к рабочему процессу, а блокировки показывают, какой сеанс держит данные. Их смотрят, когда пользователи жалуются на «зависание» при проведении.
В списке сеансов полезны колонки «Последняя активность» и «Спящий». Если последняя активность была три часа назад, а у сеанса нет признака «спящий», это кандидат на зависший сеанс.
Если на кластере задан администратор, консоль попросит логин и пароль при открытии кластера. Это не пользователь информационной базы, а отдельная учётная запись кластера. Пароль потерян — не пересоздавайте кластер: восстановите файл настроек кластера из резервной копии при остановленной службе или обратитесь к администратору сервера.
Как узнать, кто зашёл в файловую базу
В файловом режиме кластера нет, консоль сервера бесполезна. Источников остаётся два.
Первый — та же обработка «Активные пользователи». Она работает и в файловой базе: из режима 1С:Предприятие или из Конфигуратора. Колонки те же, фоновых заданий обычно меньше.
Второй — открытые файлы на файловом сервере. Это приём, который выручает, когда войти в базу нельзя: например, Конфигуратор ругается на монопольный режим, а кто держит базу — непонятно.
- На сервере, где лежит папка базы, откройте
Управление компьютером → Общие папки → Открытые файлы(оснасткаcompmgmt.msc). - Найдите в списке файл
1Cv8.1CDиз нужной папки. - В колонке «Пользователь» будет учётная запись Windows, в колонке рядом — компьютер, с которого открыт файл.
Здесь видны именно пользователи Windows, а не 1С. Зато видно всех, включая зависшие процессы на чужих компьютерах.
Если база лежит на терминальном сервере локально, а не в общей папке, смотрите «Диспетчер задач» → вкладку «Пользователи»: у кого запущены процессы 1cv8c.exe или 1cv8.exe, тот и в базе.
Закрывать файл из оснастки «Открытые файлы» можно только в крайнем случае. Сеанс оборвётся без сохранения, а незаписанный документ у пользователя пропадёт.
Список сеансов из командной строки: ras и rac
Консоль удобна, когда сервер один и вы сидите за ним. Для скриптов, мониторинга и удалённой работы удобнее пара утилит: ras — сервер администрирования, rac — клиент к нему. Обе лежат в каталоге bin платформы.
Шаг 1. Запустите ras
ras подключается к агенту кластера (порт 1540) и сам слушает порт 1545. Разовый запуск в консоли:
cd "C:\Program Files\1cv8\8.3.25.1374\bin"
ras cluster --port=1545 localhost:1540
Для постоянной работы ras регистрируют службой Windows, чтобы он стартовал вместе с сервером. Окно консоли с разовым запуском закрывать нельзя — rac перестанет подключаться.
Шаг 2. Получите идентификатор кластера
rac localhost:1545 cluster list
В ответе ищите строку cluster — это UUID кластера. Он нужен во всех следующих командах.
Шаг 3. Выведите сеансы
rac localhost:1545 session list --cluster=<UUID кластера>
Если на кластере есть администратор, добавьте --cluster-user=<имя> и --cluster-pwd=<пароль>. Чтобы видеть сеансы одной базы, сначала узнайте её UUID командой rac localhost:1545 infobase summary list --cluster=<UUID>, затем добавьте к списку сеансов --infobase=<UUID базы>.
В выводе у каждого сеанса есть поля:
| Поле | Что показывает |
|---|---|
session | UUID сеанса — нужен для завершения |
user-name | Пользователь информационной базы |
host | Компьютер |
app-id | Тип клиента: 1CV8C — тонкий, 1CV8 — толстый, Designer — Конфигуратор, BackgroundJob — фоновое задание |
started-at | Начало сеанса |
last-active-at | Последняя активность |
Команда rac localhost:1545 session list --cluster=<UUID> --licenses покажет, какую лицензию занял каждый сеанс. Так удобно разбираться, кто «съел» последнюю клиентскую лицензию. Остальные параметры смотрите в справке rac help session.
Как отключить пользователя, если сеанс завис
Перед любым принудительным завершением помните простую вещь: сеанс обрывается без сохранения. Если человек вводил документ, этот документ пропадёт. Поэтому сначала позвоните или напишите пользователю, и только если он недоступен или программа у него зависла — завершайте.
| Способ | Когда подходит | Риск |
|---|---|---|
| Кнопка завершения в обработке «Активные пользователи» (БСП) | Клиент-серверная база, нужно выгнать одного человека | Потеря несохранённых данных у этого пользователя |
| Консоль кластера: сеанс → «Удалить» | Сеанс завис, из базы не убирается | То же; плюс можно ошибиться строкой в общем списке кластера |
rac session terminate | Скрипты, ночные регламенты, удалённое управление | Опечатка в UUID завершит чужой сеанс |
| Блокировка начала сеансов | Нужно выгнать всех перед обновлением | Все пользователи будут отключены по таймеру |
| Закрытие файла / процесса на сервере | Файловая база, другие способы не работают | Возможна порча незаписанных данных |
Завершение через rac
rac localhost:1545 session terminate --cluster=<UUID кластера> --session=<UUID сеанса>
UUID сеанса берите из вывода session list в той же минуте. Если сеанс уже переподключился, у него будет новый идентификатор.
Когда нужно выгнать всех
Для обновления конфигурации или выгрузки базы в .dt нужен монопольный доступ, и отключать людей по одному неудобно. В типовых конфигурациях есть механизм блокировки работы пользователей в разделе Администрирование → Обслуживание. Задайте время начала блокировки и текст сообщения — программа предупредит пользователей и через заданное время завершит их сеансы.
В клиент-серверной базе блокировку можно поставить и в консоли кластера: в свойствах информационной базы есть флажок блокировки начала сеансов, поля с сообщением и кодом разрешения. Код разрешения позволит войти администратору, пока остальные заблокированы. Не забудьте снять блокировку после работ, иначе утром никто не войдёт.
Почему список не совпадает с реальностью
Администраторы чаще всего спотыкаются о четыре расхождения.
- 🔁 Фоновые задания считаются сеансами. В списке «пять человек», а в офисе двое: остальное — регламентные задания и обмены. Лицензию клиента фоновые задания не занимают.
- 🖥 Один человек — несколько сеансов. Пользователь открыл базу дважды или вошёл с ноутбука и с терминала. Каждый сеанс клиентского приложения занимает лицензию отдельно, если сеансы с разных компьютеров.
- 👻 Зависшие сеансы после обрыва сети. Сервер какое-то время считает сеанс живым. Отсюда сообщение о превышении числа лицензий, хотя все уже вышли.
- 🔒 Обычный пользователь не видит раздел. Обработка «Активные пользователи» доступна только с административными правами. Это не ошибка, а настройка ролей.
Перезапуск службы «Агент сервера 1С:Предприятия» действительно убирает все зависшие сеансы, но вместе с ними обрывает работу всех пользователей всех баз на этом сервере. Делайте это только вне рабочего времени и после предупреждения.
Частые вопросы
Видит ли обычный пользователь, кто ещё работает в базе?
Можно ли узнать, кто был в базе вчера, а не сейчас?
Сколько лицензий занято прямо сейчас?
rac session list --licenses или в консоли кластера по сеансам. В файловом режиме ориентируйтесь на число клиентских сеансов с разных компьютеров.