Кто сейчас работает в базе УНФ: сеансы, журнал и отключение пользователей

· 9 мин

Содержание

Посмотреть активных пользователей в 1С УНФ быстрее всего через Главное меню → Все функции → Стандартные → Активные пользователи. Форма показывает каждый открытый сеанс: кто вошёл, с какого компьютера, в каком клиенте и когда. Список работает и в файловой, и в клиент-серверной базе.

Для серверной базы есть второй источник — консоль администрирования серверов 1С. Там видно больше: нагрузку каждого сеанса, блокировки, фоновые задания. А историю входов и выходов хранит журнал регистрации. Механизмы эти платформенные, поэтому всё ниже одинаково работает в УНФ 1.6 и УНФ 3.0.

Где в УНФ открыть список активных пользователей

Через раздел настроек программы

В УНФ команды обслуживания базы собраны в разделе Настройки, на странице «Поддержка и обслуживание». Там стоят рядом три команды, которые понадобятся в этой статье: «Активные пользователи», «Журнал регистрации» и «Блокировка работы пользователей». В отдельных релизах страница вложена в группу «Администрирование» того же раздела.

Команды видны только пользователю с полными правами. Если у вас их нет, раздела вы просто не увидите.

Через меню «Все функции»

Этот путь не зависит от релиза конфигурации:

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

Из конфигуратора

Если пользовательский режим не запускается или база занята обновлением, откройте её в конфигураторе: Администрирование → Активные пользователи. Список тот же, только без кнопок управления сеансами.

Что показывают колонки

КолонкаЧто означает
ПользовательИмя из справочника пользователей базы
КомпьютерСетевое имя машины, с которой открыт сеанс
ПриложениеТип клиента: тонкий, толстый, веб-клиент, конфигуратор, фоновое задание, COM-соединение
Начало работыДата и время открытия сеанса
СеансНомер сеанса, по нему удобно искать его в консоли кластера

💡 Сеанс с типом «Фоновое задание» — это не человек. Так УНФ выполняет регламентные операции: загрузку курсов, обмен, обновление индексов. Число таких строк постоянно меняется, это нормально.

Двойной щелчок по строке (или кнопка «Журнал регистрации» в форме) открывает события именно этого пользователя. Очень удобно, когда нужно понять, чем человек занят прямо сейчас.

Список сеансов из кода

Иногда нужен не экран, а данные: например, раз в час записывать, сколько людей работает, или выводить список в своей обработке. Платформа отдаёт сеансы функцией ПолучитьСеансыИнформационнойБазы(). Она работает на сервере и требует административных прав.

&НаСервере
Процедура ПоказатьСеансыНаСервере()
	Сеансы = ПолучитьСеансыИнформационнойБазы();
	Для Каждого Сеанс Из Сеансы Цикл
		ИмяПользователя = ?(Сеанс.Пользователь = Неопределено, "<без имени>", Сеанс.Пользователь.Имя);
		Сообщить(СтрШаблон("%1 | %2 | %3 | %4 | сеанс %5",
			ИмяПользователя,
			Сеанс.ИмяКомпьютера,
			ПредставлениеПриложения(Сеанс.ИмяПриложения),
			Сеанс.НачалоСеанса,
			Формат(Сеанс.НомерСеанса, "ЧГ=0")));
	КонецЦикла;
	Сообщить("Всего сеансов: " + Формат(Сеансы.Количество(), "ЧГ=0"));
КонецПроцедуры

Код подходит для внешней обработки: создайте её в конфигураторе, добавьте команду формы и вызовите из неё эту процедуру. Изменять саму конфигурацию УНФ для этого не нужно, обновления не пострадают.

Какая у вас база УНФ?

Сеансы УНФ в консоли администрирования серверов 1С

Консоль ставится вместе с сервером 1С и открывается через оснастку MMC. Чтобы увидеть сеансы:

  1. Разверните Центральные серверы 1С:Предприятия → имя сервера → Кластеры → ваш кластер.
  2. Откройте Информационные базы → база УНФ → Сеансы.
  3. Для общей картины по всем базам используйте ветку Сеансы прямо в кластере.

В консоли у каждого сеанса больше полей, чем в программе. Самые полезные — «Спящий», время текущего вызова, время вызовов СУБД, «Захвачено СУБД» и объём памяти. По ним видно не только кто вошёл, но и кто сейчас грузит сервер.

Если консоль не запускается после установки новой платформы, перерегистрируйте библиотеку radmin.dll той же версии, что и сервер. Запустите командную строку от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1691\bin\radmin.dll"

Номер версии в пути замените на свой. Он должен совпадать с номером платформы на сервере.

Командная строка: rac

Если графической консоли нет, сеансы показывает утилита rac. Ей нужна запущенная служба сервера администрирования ras (по умолчанию порт 1545).

rac cluster list
rac session list --cluster=<uuid_кластера>
rac session list --cluster=<uuid_кластера> --licenses

Первая команда выдаёт идентификатор кластера, вторая — все сеансы с пользователями и компьютерами. Третья показывает, какие лицензии заняты сеансами. Если кластер защищён администратором, добавьте параметры учётной записи — синтаксис смотрите в rac help session.

Файловая база: кто держит её открытой

У файловой базы нет консоли кластера. Список «Активные пользователи» — единственный способ внутри 1С.

Бывает, что в списке пусто, а база всё равно «занята». Обычно это процесс 1С, который завис на чужом компьютере после обрыва сети. Найти его помогает Windows на компьютере, где лежит папка с базой:

  1. Откройте Управление компьютером → Общие папки → Открытые файлы.
  2. Найдите строки с файлом 1Cv8.1CD.
  3. В колонке «Пользователь» указана учётная запись Windows, в «Компьютер» — машина, которая держит файл.

Дальше попросите этого человека закрыть 1С или завершите процесс 1cv8.exe / 1cv8c.exe на его компьютере.

Закрыть файл принудительно можно прямо из списка открытых файлов. Делайте это только когда пользователь точно не работает: несохранённые документы пропадут, а запись, прерванная на середине, может повредить файловую базу. Перед такой операцией нужна свежая копия базы.

Журнал регистрации: кто входил и выходил

Список активных пользователей показывает только «сейчас». Чтобы узнать, кто работал вчера вечером или кто последним открывал документ, нужен журнал регистрации.

Откройте его из раздела настроек, через Все функции → Стандартные → Журнал регистрации или в конфигураторе: Администрирование → Журнал регистрации.

Полезные отборы:

  • 🔑 события «Сеанс. Начало» и «Сеанс. Завершение» — время входа и выхода каждого пользователя;
  • 🚫 «Сеанс. Ошибка аутентификации» — неудачные попытки входа с неверным паролем;
  • 👤 отбор по пользователю и компьютеру — что делал конкретный сотрудник;
  • 📄 отбор по данным — кто менял конкретный документ.

Пример: кто работал в базе ночью

Утром обнаружили, что остатки на складе изменились, хотя все ушли в 19:00. Откройте журнал, задайте отбор по периоду с 19:00 до 08:00 и по событию «Сеанс. Начало». В списке останутся только входы за ночь: пользователь, компьютер и тип клиента. Затем уберите отбор по событию и оставьте пользователя — увидите, какие документы он записывал.

Если вход сделан через COM-соединение или фоновое задание, ищите не человека, а внешнюю программу или регламентное задание, которое работало в это время.

Если в журнале нет нужных событий

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

В той же настройке задаётся разделение журнала на периоды. Журнал без разделения в активной базе растёт годами и начинает медленно открываться. Разделение по месяцам решает это.

💡 Журнал хранится отдельно от данных базы. При выгрузке в .dt он не переносится. Если история входов важна, копируйте папку журнала вместе с резервной копией.

Монопольный режим и блокировки: кто мешает

Монопольный режим нужен для обновления конфигурации со сменой структуры, загрузки .dt, тестирования и исправления базы. Пока в базе есть хоть один чужой сеанс, установить его нельзя. Здесь и пригождается список активных пользователей: он показывает, кого попросить выйти.

Частые «невидимые» виновники:

  • ⚙️ фоновые задания УНФ — обмен с сайтом, синхронизация, загрузка выписок;
  • 🔌 COM-соединения от внешних программ и обработок;
  • 💤 спящие сеансы людей, которые закрыли ноутбук, не выйдя из программы;
  • 🖥️ ваш собственный второй сеанс, открытый в другом окне.

Управляемые блокировки данных

Это другая история: пользователи не мешают обновлению, но мешают друг другу. Признак — ошибка Превышено максимальное время ожидания предоставления блокировки при проведении документа.

В серверной базе откройте в консоли кластера ветку Блокировки. Там видно, какой сеанс держит блокировку и на каком объекте. Номер сеанса сверяете со списком сеансов и находите пользователя. Чаще всего это долгое проведение, перепроведение за период или зависшая обработка.

Как ограничить подключения и отключить всех перед работами

Блокировка работы пользователей

Перед обновлением используйте команду «Блокировка работы пользователей» в разделе настроек:

  1. Укажите время начала и окончания блокировки и текст сообщения.
  2. Задайте код разрешения — с ним вы сами сможете войти в заблокированную базу.
  3. Нажмите «Установить блокировку».

Пользователи получат предупреждение и будут отключены к назначенному времени. Новые входы запрещены. Чтобы войти самому, запустите базу с параметром /UC<код>, например /UC2468.

Завершение сеансов обрывает работу людей. Несохранённые документы будут потеряны. Ставьте блокировку заранее, предупредите сотрудников и выбирайте время вне рабочих часов.

Если блокировку установили и забыли снять, войдите с кодом разрешения и снимите её той же командой.

Блокировка в консоли кластера

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

Отключить один сеанс

СпособГде работаетЧто учесть
Команда «Завершить сеанс» в форме активных пользователейКлиент-серверная базаНужны права администратора кластера, если он защищён паролем
Удаление сеанса в консоли кластера (контекстное меню сеанса)Клиент-серверная базаСеанс обрывается сразу
rac session terminateКлиент-серверная базаНужны идентификаторы кластера и сеанса
Закрытие процесса на компьютере пользователяФайловая базаТолько при уверенности, что работа сохранена

Ограничение числа подключений

Сколько человек одновременно работает в УНФ, ограничивают в первую очередь лицензии. Каждый клиентский сеанс занимает лицензию, а фоновые задания — нет. Когда лицензии кончаются, следующий пользователь получает ошибку и не может войти.

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

Сеанс тормозит базу: как найти виновника

Когда УНФ начинает тормозить у всех сразу, в консоли кластера откройте сеансы базы и отсортируйте по колонкам нагрузки.

Что смотреть по порядку:

  1. Время текущего вызова. Сеанс, у которого оно исчисляется минутами, что-то долго выполняет: отчёт за год, перепроведение, обработку.
  2. Время вызовов СУБД и «Захвачено СУБД». Высокие значения означают, что сеанс держит соединение с SQL и, скорее всего, блокирует таблицы.
  3. Память. Сеанс с растущей памятью часто связан с внешней обработкой или отчётом без отборов.
  4. Приложение. Если нагрузку создаёт фоновое задание, ищите его в списке регламентных заданий, а не у пользователей.

Найдя сеанс, сначала свяжитесь с человеком: часто отчёт можно остановить штатно. Удалять сеанс в консоли стоит, только если работа зависла и ждать нельзя.

Если тормоза повторяются и не привязаны к одному сеансу, нужен технологический журнал (настраивается файлом logcfg.xml на сервере). Он пишет длительные запросы и ожидания на блокировках. Это уже работа администратора, но начинают её всё равно со списка сеансов.

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

Почему в списке активных пользователей один человек отображается дважды?
У него открыто два сеанса: например, программа и конфигуратор, или два окна тонкого клиента. Каждый сеанс в серверной базе занимает свою лицензию.
Можно ли увидеть активных пользователей без прав администратора?
Нет. Список сеансов доступен только пользователю с административными правами. Обычный сотрудник видит лишь сообщения о блокировке.
Почему пользователь вышел, а лицензия ещё занята?
Сеанс мог уйти в спящий режим после обрыва связи. Сервер завершает его не сразу. Если ждать нельзя, удалите сеанс в консоли кластера.
Покажет ли список, какие документы пользователь открыл?
Нет, только сам сеанс. Действия с документами смотрите в журнале регистрации с отбором по пользователю.
Кто такой пользователь без имени в списке?
Чаще всего фоновое задание или вход в базу без пользователей. Если в справочнике пользователей никого нет, все входы идут без имени.