Кто сейчас работает в базе 1С: сеансы, подключения и занятые лицензии
Содержание
Список активных пользователей в 1С 8.3 открывается из раздела Администрирование → Обслуживание по ссылке «Активные пользователи». В любой конфигурации есть и платформенный вариант: Главное меню (☰) → Все функции → Стандартные → Активные пользователи. В Конфигураторе тот же список — в меню Администрирование → Активные пользователи.
Этих способов хватает, чтобы узнать, кто работает в базе прямо сейчас. Для серверной базы полнее картина в консоли кластера: там видно время последней активности, спящие сеансы и занятые лицензии, и оттуда же завершают зависший сеанс.
Где открыть список активных пользователей в 1С 8.3
Платформенная форма «Активные пользователи» одинакова для всех конфигураций. Типовые решения на Библиотеке стандартных подсистем (БСП) дают свою форму с кнопками управления. Путь к ней в основных конфигурациях один и тот же:
| Где смотреть | Путь | Что умеет |
|---|---|---|
| БП 3.0, ЗУП 3.1, УТ 11 | Администрирование → Обслуживание, ссылка «Активные пользователи» | Список, отбор, переход в журнал регистрации, завершение сеанса (клиент-серверный вариант) |
| Любая конфигурация | ☰ → Все функции → Стандартные → Активные пользователи | Только просмотр |
| Конфигуратор | Администрирование → Активные пользователи | Только просмотр |
| Сервер 1С | Консоль администрирования кластера, ветка «Сеансы» базы | Всё: активность, лицензии, завершение |
Если пункта «Все функции» в главном меню нет, включите его: ☰ → Сервис и настройки → Параметры (в части релизов — Настройки → Параметры), флажок «Отображать команду “Все функции”».
Просмотр списка не требует монопольного режима и не мешает другим пользователям. Но открыть форму БСП и тем более завершать чужие сеансы может только пользователь с полными правами.
Что показывает список: колонки и типы подключений
В форме видны строки по каждому сеансу. Один и тот же человек может занимать две-три строки: например, открыл базу в тонком клиенте и параллельно Конфигуратор.
Основные колонки:
- 👤 Пользователь — имя из списка пользователей информационной базы. Если список пуст, имени не будет.
- 💻 Компьютер — сетевое имя машины. На терминальном сервере у всех будет имя сервера, поэтому различайте людей по колонке «Пользователь».
- 🧩 Приложение — чем подключён сеанс.
- 🕒 Начало работы — время входа.
- 🔢 Сеанс и Соединение — номера, по которым сеанс ищут в консоли и журнале регистрации.
Колонка «Приложение» часто важнее имени. По ней понятно, живой это человек или служебный процесс:
| Значение | Кто это | Можно ли завершать |
|---|---|---|
| Тонкий клиент, Толстый клиент, Веб-клиент | Пользователь за рабочим местом | Да, предупредив человека |
| Конфигуратор | Разработчик или администратор | Только согласовав |
| Фоновое задание | Регламентное задание или длительная операция | Осторожно: прервётся загрузка, обмен, закрытие месяца |
| COM-соединение | Внешняя программа, обработка-интегратор | Уточните, кто подключается |
| Веб-сервис, HTTP-сервис | Обмен с сайтом, мобильным приложением, ЭДО | Обычно нет, сеанс короткий |
Платформенная форма в файловой базе иногда показывает «призраков» — сеансы, которые остались после аварийного закрытия программы. Как их отличить и убрать — в разделе о зависших сеансах ниже.
Активные пользователи на сервере 1С: консоль кластера
В клиент-серверной базе самый подробный список — в «Консоли администрирования серверов 1С:Предприятия». Она ставится вместе с сервером или отдельным компонентом из дистрибутива платформы.
Как открыть сеансы базы
- Запустите консоль. Если сервер ещё не добавлен, правой кнопкой по корню
Central 1C:Enterprise 8.3 servers→ «Создать» → «Центральный сервер 1С:Предприятия 8.3», укажите имя сервера. - Раскройте
имя сервера → Кластеры → кластер → Информационные базы. - Раскройте нужную базу и выберите ветку «Сеансы». Если база защищена, консоль запросит логин и пароль пользователя базы с правами администратора.
- Для обзора по всем базам сразу откройте ветку «Сеансы» на уровне кластера.
Консоль подключается к агенту сервера по порту 1540. Если доступа нет, проверьте службу «Агент сервера 1С:Предприятия 8.3» и сетевой доступ к этому порту.
Что видно в консоли, чего нет в программе
- ⏱ Последняя активность — время последнего обращения клиента к серверу. Сеанс, который висит с утра без активности, сразу заметен.
- 😴 Спящий — признак сеанса, у которого прервалась связь с клиентом. Такой сеанс ждёт восстановления соединения.
- 🎫 Лицензия — какой ключ или файл лицензии занял сеанс (колонку можно включить в настройке списка).
- 📊 Данные о нагрузке: время вызовов, объём переданных данных, занятая память. По ним находят пользователя, который тормозит всех тяжёлым отчётом.
Ветка «Соединения» рядом показывает физические подключения к рабочим процессам. Для ответа на вопрос «кто в базе» достаточно сеансов.
Список сеансов из командной строки: rac
Когда консоли под рукой нет (сервер на Linux, удалённое подключение по SSH), работает пара ras + rac. Сервер администрирования ras должен быть запущен, по умолчанию он слушает порт 1545.
Порядок команд:
# 1. Узнать идентификатор кластера
rac cluster list
# 2. Список баз кластера и их идентификаторы
rac infobase summary list --cluster=<uuid_кластера>
# 3. Все сеансы конкретной базы
rac session list --cluster=<uuid_кластера> --infobase=<uuid_базы>
# 4. Сеансы с информацией о занятых лицензиях
rac session list --cluster=<uuid_кластера> --licenses
Если на кластере заданы администраторы, добавьте --cluster-user=<имя> --cluster-pwd=<пароль>. Команды запускают из каталога bin установленной платформы, например C:\Program Files\1cv8\8.3.xx.xxxx\bin. Если ras работает на другой машине, укажите её адрес первым аргументом: rac сервер:1545 cluster list.
В выводе у каждого сеанса есть поля user-name, host, app-id, started-at, last-active-at и session. Последнее — идентификатор, по которому сеанс завершают. Полный набор параметров для вашей версии смотрите в справке rac help session.
Как получить список активных пользователей кодом
Иногда список нужен внутри самой базы: в отчёте для руководителя, в обработке перед обновлением, в проверке «не работает
ли кто-то в закрытом периоде». Для этого есть метод ПолучитьСеансыИнформационнойБазы(). Он вызывается на сервере и возвращает массив сеансов.
&НаСервереБезКонтекста
Процедура ВывестиАктивныхПользователей()
Сеансы = ПолучитьСеансыИнформационнойБазы();
ТекущийНомер = НомерСеансаИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.Пользователь = Неопределено Тогда
ИмяПользователя = "<без авторизации>";
Иначе
ИмяПользователя = Сеанс.Пользователь.Имя;
КонецЕсли;
Пометка = ?(Сеанс.НомерСеанса = ТекущийНомер, " (это вы)", "");
Сообщить(СтрШаблон("%1 | %2 | %3 | вход %4 | сеанс %5%6",
ИмяПользователя,
Сеанс.ИмяКомпьютера,
ПредставлениеПриложения(Сеанс.ИмяПриложения),
Формат(Сеанс.НачалоСеанса, "ДФ='дд.ММ.гггг ЧЧ:мм'"),
Формат(Сеанс.НомерСеанса, "ЧГ=0"),
Пометка));
КонецЦикла;
Сообщить(СтрШаблон("Всего сеансов: %1", Формат(Сеансы.Количество(), "ЧГ=0")));
КонецПроцедуры
Код можно вставить во внешнюю обработку : форма с одной командой, которая вызывает эту процедуру. Запускайте его под пользователем с административными правами, иначе вызов может завершиться ошибкой доступа.
Чтобы считать только живых людей, отфильтруйте по Сеанс.ИмяПриложения: значения ThinClient, ThickClient и WebClient — это рабочие места, BackgroundJob — фоновые задания, Designer — Конфигуратор.
Таблицы СУБД (MS SQL, PostgreSQL) список сеансов 1С не хранят. Запрос к базе данных в обход платформы покажет только подключения рабочих процессов сервера 1С, а не конкретных пользователей.
Зависшие сеансы: как найти и завершить
Зависшим считают сеанс, за которым уже нет человека: компьютер выключили, пропала сеть, программа закрылась с ошибкой. Он мешает обновлению базы, держит лицензию и не даёт установить монопольный режим.
Признаки зависшего сеанса
- 🔴 в консоли кластера время последней активности отстаёт на часы, хотя пользователь говорит, что давно вышел;
- 🔴 сеанс помечен как спящий и не просыпается;
- 🔴 в файловой базе в списке висит пользователь, которого точно нет на рабочем месте;
- 🔴 при попытке обновить конфигурацию 1С сообщает, что база используется другими пользователями.
Клиент-серверная база
- Откройте в консоли кластера ветку «Сеансы» нужной базы.
- Найдите строку по пользователю и компьютеру, проверьте колонки «Приложение» и «Последняя активность».
- Правой кнопкой по строке → «Удалить». Сеанс будет завершён.
То же через rac:
rac session terminate --cluster=<uuid_кластера> --session=<uuid_сеанса>
В БСП-конфигурациях завершить сеанс можно и из формы «Активные пользователи»: выделите строку и выберите команду завершения в командной панели. Программа попросит параметры администрирования кластера, если они заданы.
Завершение сеанса обрывает работу человека без сохранения. Несохранённый документ пропадёт, а прерванное фоновое задание (загрузка выписки, обмен, закрытие месяца) придётся запускать заново. Сначала свяжитесь с пользователем и проверьте колонку «Приложение».
Чтобы спящие сеансы не копились, в свойствах информационной базы в консоли кластера задают время засыпания пассивного сеанса и время завершения спящего сеанса (в секундах). Например, 1800 и 3600: через полчаса без связи сеанс засыпает, ещё через час закрывается сам.
Файловая база
В файловом варианте нет кластера, и завершить чужой сеанс кнопкой нельзя. Порядок такой:
- Попросите всех выйти. В БСП для этого есть
Администрирование → Обслуживание → Блокировка работы пользователей: программа предупредит работающих и закроет их сеансы к заданному времени. - Если «призрак» остался, найдите компьютер из колонки «Компьютер» и завершите на нём процесс
1cv8.exeили1cv8c.exeв диспетчере задач. На терминальном сервере ищите процесс на вкладке «Пользователи». - Когда процессов не осталось, а список всё равно не пуст, закройте 1С у всех и откройте базу заново: платформа сбросит запись о закрытых сеансах.
Не удаляйте служебные файлы из каталога файловой базы, пока в ней кто-то работает: можно повредить базу. Если до этого всё-таки дошло — только после резервной копии каталога и когда все пользователи вышли.
История подключений: журнал регистрации
Список активных пользователей отвечает на вопрос «кто сейчас». Кто заходил вчера, с какого компьютера и сколько раз ошибся паролем, показывает журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. В любой конфигурации его можно открыть и через ☰ → Все функции → Стандартные → Журнал регистрации, а в Конфигураторе — Администрирование → Журнал регистрации.
Для аудита подключений поставьте отбор по событиям:
| Событие | Что означает |
|---|---|
| Сеанс. Начало | Вход в программу |
| Сеанс. Завершение | Выход или принудительное завершение |
| Сеанс. Аутентификация | Успешная проверка логина и пароля |
| Сеанс. Ошибка аутентификации | Неверный пароль или несуществующий пользователь |
Дальше добавьте отбор по пользователю или компьютеру и период. Серия ошибок аутентификации с одного компьютера ночью — повод сменить пароли и проверить, у кого есть доступ к базе.
Журнал пишет только то, что разрешено уровнем регистрации. Проверьте его в Конфигураторе: Администрирование → Настройка журнала регистрации. Для аудита входов нужен уровень не ниже «Ошибки», для полной картины — «Все события». Там же задаётся, как часто журнал разделяется на файлы и удаляются старые записи.
Активные сеансы и лицензии: почему не хватает мест
Каждый клиентский сеанс занимает клиентскую лицензию. Когда свободных нет, новый пользователь получает ошибку о том, что не обнаружена свободная лицензия, хотя по ощущениям «все уже вышли». Почти всегда виноваты лишние сеансы в списке.
На что смотреть:
- 🎫 Зависшие сеансы. Пока сеанс не завершён, лицензия занята. Чистка по разделу выше часто сразу возвращает места.
- 🖥 Несколько окон у одного человека. Тонкий клиент плюс Конфигуратор плюс вторая база — проверьте, сколько строк приходится на одного пользователя.
- ⚙️ Фоновые задания клиентскую лицензию не занимают. Их не нужно учитывать, считая рабочие места.
Точную картину по лицензиям в серверной базе даёт rac session list --licenses или колонка «Лицензия» в консоли кластера. Видно, какой сеанс взял лицензию с какого ключа или файла, и с какого компьютера.