Кто сейчас работает в базе 1С: сеансы, подключения и занятые лицензии

· 10 мин

Содержание

Список активных пользователей в 1С 8.3 открывается из раздела Администрирование → Обслуживание по ссылке «Активные пользователи». В любой конфигурации есть и платформенный вариант: Главное меню (☰) → Все функции → Стандартные → Активные пользователи. В Конфигураторе тот же список — в меню Администрирование → Активные пользователи.

Этих способов хватает, чтобы узнать, кто работает в базе прямо сейчас. Для серверной базы полнее картина в консоли кластера: там видно время последней активности, спящие сеансы и занятые лицензии, и оттуда же завершают зависший сеанс.

Где открыть список активных пользователей в 1С 8.3

Платформенная форма «Активные пользователи» одинакова для всех конфигураций. Типовые решения на Библиотеке стандартных подсистем (БСП) дают свою форму с кнопками управления. Путь к ней в основных конфигурациях один и тот же:

Где смотретьПутьЧто умеет
БП 3.0, ЗУП 3.1, УТ 11Администрирование → Обслуживание, ссылка «Активные пользователи»Список, отбор, переход в журнал регистрации, завершение сеанса (клиент-серверный вариант)
Любая конфигурация☰ → Все функции → Стандартные → Активные пользователиТолько просмотр
КонфигураторАдминистрирование → Активные пользователиТолько просмотр
Сервер 1СКонсоль администрирования кластера, ветка «Сеансы» базыВсё: активность, лицензии, завершение

Если пункта «Все функции» в главном меню нет, включите его: ☰ → Сервис и настройки → Параметры (в части релизов — Настройки → Параметры), флажок «Отображать команду “Все функции”».

Просмотр списка не требует монопольного режима и не мешает другим пользователям. Но открыть форму БСП и тем более завершать чужие сеансы может только пользователь с полными правами.

Что показывает список: колонки и типы подключений

В форме видны строки по каждому сеансу. Один и тот же человек может занимать две-три строки: например, открыл базу в тонком клиенте и параллельно Конфигуратор.

Основные колонки:

  • 👤 Пользователь — имя из списка пользователей информационной базы. Если список пуст, имени не будет.
  • 💻 Компьютер — сетевое имя машины. На терминальном сервере у всех будет имя сервера, поэтому различайте людей по колонке «Пользователь».
  • 🧩 Приложение — чем подключён сеанс.
  • 🕒 Начало работы — время входа.
  • 🔢 Сеанс и Соединение — номера, по которым сеанс ищут в консоли и журнале регистрации.

Колонка «Приложение» часто важнее имени. По ней понятно, живой это человек или служебный процесс:

ЗначениеКто этоМожно ли завершать
Тонкий клиент, Толстый клиент, Веб-клиентПользователь за рабочим местомДа, предупредив человека
КонфигураторРазработчик или администраторТолько согласовав
Фоновое заданиеРегламентное задание или длительная операцияОсторожно: прервётся загрузка, обмен, закрытие месяца
COM-соединениеВнешняя программа, обработка-интеграторУточните, кто подключается
Веб-сервис, HTTP-сервисОбмен с сайтом, мобильным приложением, ЭДООбычно нет, сеанс короткий

Платформенная форма в файловой базе иногда показывает «призраков» — сеансы, которые остались после аварийного закрытия программы. Как их отличить и убрать — в разделе о зависших сеансах ниже.

Активные пользователи на сервере 1С: консоль кластера

В клиент-серверной базе самый подробный список — в «Консоли администрирования серверов 1С:Предприятия». Она ставится вместе с сервером или отдельным компонентом из дистрибутива платформы.

Как открыть сеансы базы

  1. Запустите консоль. Если сервер ещё не добавлен, правой кнопкой по корню Central 1C:Enterprise 8.3 servers → «Создать» → «Центральный сервер 1С:Предприятия 8.3», укажите имя сервера.
  2. Раскройте имя сервера → Кластеры → кластер → Информационные базы.
  3. Раскройте нужную базу и выберите ветку «Сеансы». Если база защищена, консоль запросит логин и пароль пользователя базы с правами администратора.
  4. Для обзора по всем базам сразу откройте ветку «Сеансы» на уровне кластера.

Консоль подключается к агенту сервера по порту 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С сообщает, что база используется другими пользователями.

Клиент-серверная база

  1. Откройте в консоли кластера ветку «Сеансы» нужной базы.
  2. Найдите строку по пользователю и компьютеру, проверьте колонки «Приложение» и «Последняя активность».
  3. Правой кнопкой по строке → «Удалить». Сеанс будет завершён.

То же через rac:

rac session terminate --cluster=<uuid_кластера> --session=<uuid_сеанса>

В БСП-конфигурациях завершить сеанс можно и из формы «Активные пользователи»: выделите строку и выберите команду завершения в командной панели. Программа попросит параметры администрирования кластера, если они заданы.

Завершение сеанса обрывает работу человека без сохранения. Несохранённый документ пропадёт, а прерванное фоновое задание (загрузка выписки, обмен, закрытие месяца) придётся запускать заново. Сначала свяжитесь с пользователем и проверьте колонку «Приложение».

Чтобы спящие сеансы не копились, в свойствах информационной базы в консоли кластера задают время засыпания пассивного сеанса и время завершения спящего сеанса (в секундах). Например, 1800 и 3600: через полчаса без связи сеанс засыпает, ещё через час закрывается сам.

Файловая база

В файловом варианте нет кластера, и завершить чужой сеанс кнопкой нельзя. Порядок такой:

  1. Попросите всех выйти. В БСП для этого есть Администрирование → Обслуживание → Блокировка работы пользователей: программа предупредит работающих и закроет их сеансы к заданному времени.
  2. Если «призрак» остался, найдите компьютер из колонки «Компьютер» и завершите на нём процесс 1cv8.exe или 1cv8c.exe в диспетчере задач. На терминальном сервере ищите процесс на вкладке «Пользователи».
  3. Когда процессов не осталось, а список всё равно не пуст, закройте 1С у всех и откройте базу заново: платформа сбросит запись о закрытых сеансах.

Не удаляйте служебные файлы из каталога файловой базы, пока в ней кто-то работает: можно повредить базу. Если до этого всё-таки дошло — только после резервной копии каталога и когда все пользователи вышли.

Какая у вас база и что нужно сделать?

История подключений: журнал регистрации

Список активных пользователей отвечает на вопрос «кто сейчас». Кто заходил вчера, с какого компьютера и сколько раз ошибся паролем, показывает журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. В любой конфигурации его можно открыть и через ☰ → Все функции → Стандартные → Журнал регистрации, а в Конфигураторе — Администрирование → Журнал регистрации.

Для аудита подключений поставьте отбор по событиям:

СобытиеЧто означает
Сеанс. НачалоВход в программу
Сеанс. ЗавершениеВыход или принудительное завершение
Сеанс. АутентификацияУспешная проверка логина и пароля
Сеанс. Ошибка аутентификацииНеверный пароль или несуществующий пользователь

Дальше добавьте отбор по пользователю или компьютеру и период. Серия ошибок аутентификации с одного компьютера ночью — повод сменить пароли и проверить, у кого есть доступ к базе.

Журнал пишет только то, что разрешено уровнем регистрации. Проверьте его в Конфигураторе: Администрирование → Настройка журнала регистрации. Для аудита входов нужен уровень не ниже «Ошибки», для полной картины — «Все события». Там же задаётся, как часто журнал разделяется на файлы и удаляются старые записи.

Активные сеансы и лицензии: почему не хватает мест

Каждый клиентский сеанс занимает клиентскую лицензию. Когда свободных нет, новый пользователь получает ошибку о том, что не обнаружена свободная лицензия, хотя по ощущениям «все уже вышли». Почти всегда виноваты лишние сеансы в списке.

На что смотреть:

  • 🎫 Зависшие сеансы. Пока сеанс не завершён, лицензия занята. Чистка по разделу выше часто сразу возвращает места.
  • 🖥 Несколько окон у одного человека. Тонкий клиент плюс Конфигуратор плюс вторая база — проверьте, сколько строк приходится на одного пользователя.
  • ⚙️ Фоновые задания клиентскую лицензию не занимают. Их не нужно учитывать, считая рабочие места.

Точную картину по лицензиям в серверной базе даёт rac session list --licenses или колонка «Лицензия» в консоли кластера. Видно, какой сеанс взял лицензию с какого ключа или файла, и с какого компьютера.

Перед обновлением базы
Выполнено: 0 / 6

Частые вопросы

Видит ли пользователь, что администратор смотрит список активных сеансов?
Нет. Просмотр списка ни на чём не отражается у других пользователей и не попадает к ним в уведомления.
Почему в списке я вижу себя два раза?
У вас открыто два сеанса: например, тонкий клиент и Конфигуратор, или база запущена в двух окнах. Каждое подключение — отдельная строка со своим номером сеанса.
Можно ли посмотреть активных пользователей без прав администратора?
Платформенная форма из «Все функции» может открыться и у обычного пользователя, если ему разрешён этот режим. Форма в разделе Администрирование и завершение сеансов доступны только с полными правами.
Почему в консоли кластера сеансов больше, чем в программе?
Консоль показывает все сеансы, включая фоновые задания, веб-сервисы и COM-соединения. Отберите их по колонке «Приложение».
Как узнать, кто заблокировал базу при обновлении, если список пуст?
Проверьте консоль кластера на уровне всего кластера и фоновые задания. В файловой базе ищите процессы 1cv8 на компьютерах, где база открывалась последней, и на терминальном сервере.