Кто сейчас работает в базе УНФ: сеансы, журнал и отключение пользователей
Содержание
Посмотреть активных пользователей
в 1С УНФ быстрее всего через Главное меню → Все функции → Стандартные → Активные пользователи. Форма показывает каждый открытый сеанс: кто вошёл, с какого компьютера, в каком клиенте и когда. Список работает и в файловой, и в клиент-серверной базе.
Для серверной базы есть второй источник — консоль администрирования серверов 1С. Там видно больше: нагрузку каждого сеанса, блокировки, фоновые задания. А историю входов и выходов хранит журнал регистрации. Механизмы эти платформенные, поэтому всё ниже одинаково работает в УНФ 1.6 и УНФ 3.0.
Где в УНФ открыть список активных пользователей
Через раздел настроек программы
В УНФ команды обслуживания базы собраны в разделе Настройки, на странице «Поддержка и обслуживание». Там стоят рядом три команды, которые понадобятся в этой статье: «Активные пользователи», «Журнал регистрации» и «Блокировка работы пользователей». В отдельных релизах страница вложена в группу «Администрирование» того же раздела.
Команды видны только пользователю с полными правами. Если у вас их нет, раздела вы просто не увидите.
Через меню «Все функции»
Этот путь не зависит от релиза конфигурации:
- Откройте главное меню (кнопка с тремя полосками в левом верхнем углу).
- Если пункта «Все функции» нет, включите его:
Главное меню → Сервис → Параметры, флажок «Отображать команду “Все функции”». - Откройте
Все функции → Стандартные → Активные пользователи.
Из конфигуратора
Если пользовательский режим не запускается или база занята обновлением, откройте её в конфигураторе: Администрирование → Активные пользователи. Список тот же, только без кнопок управления сеансами.
Что показывают колонки
| Колонка | Что означает |
|---|---|
| Пользователь | Имя из справочника пользователей базы |
| Компьютер | Сетевое имя машины, с которой открыт сеанс |
| Приложение | Тип клиента: тонкий, толстый, веб-клиент, конфигуратор, фоновое задание, COM-соединение |
| Начало работы | Дата и время открытия сеанса |
| Сеанс | Номер сеанса, по нему удобно искать его в консоли кластера |
💡 Сеанс с типом «Фоновое задание» — это не человек. Так УНФ выполняет регламентные операции: загрузку курсов, обмен, обновление индексов. Число таких строк постоянно меняется, это нормально.
Двойной щелчок по строке (или кнопка «Журнал регистрации» в форме) открывает события именно этого пользователя. Очень удобно, когда нужно понять, чем человек занят прямо сейчас.
Список сеансов из кода
Иногда нужен не экран, а данные: например, раз в час записывать, сколько людей работает, или выводить список в своей обработке. Платформа отдаёт сеансы функцией ПолучитьСеансыИнформационнойБазы(). Она работает на сервере и требует административных прав.
&НаСервере
Процедура ПоказатьСеансыНаСервере()
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
ИмяПользователя = ?(Сеанс.Пользователь = Неопределено, "<без имени>", Сеанс.Пользователь.Имя);
Сообщить(СтрШаблон("%1 | %2 | %3 | %4 | сеанс %5",
ИмяПользователя,
Сеанс.ИмяКомпьютера,
ПредставлениеПриложения(Сеанс.ИмяПриложения),
Сеанс.НачалоСеанса,
Формат(Сеанс.НомерСеанса, "ЧГ=0")));
КонецЦикла;
Сообщить("Всего сеансов: " + Формат(Сеансы.Количество(), "ЧГ=0"));
КонецПроцедуры
Код подходит для внешней обработки: создайте её в конфигураторе, добавьте команду формы и вызовите из неё эту процедуру. Изменять саму конфигурацию УНФ для этого не нужно, обновления не пострадают.
Сеансы УНФ в консоли администрирования серверов 1С
Консоль ставится вместе с сервером 1С и открывается через оснастку MMC. Чтобы увидеть сеансы:
- Разверните
Центральные серверы 1С:Предприятия → имя сервера → Кластеры → ваш кластер. - Откройте
Информационные базы → база УНФ → Сеансы. - Для общей картины по всем базам используйте ветку
Сеансыпрямо в кластере.
В консоли у каждого сеанса больше полей, чем в программе. Самые полезные — «Спящий», время текущего вызова, время вызовов СУБД, «Захвачено СУБД» и объём памяти. По ним видно не только кто вошёл, но и кто сейчас грузит сервер.
Если консоль не запускается после установки новой платформы, перерегистрируйте библиотеку 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 на компьютере, где лежит папка с базой:
- Откройте
Управление компьютером → Общие папки → Открытые файлы. - Найдите строки с файлом
1Cv8.1CD. - В колонке «Пользователь» указана учётная запись Windows, в «Компьютер» — машина, которая держит файл.
Дальше попросите этого человека закрыть 1С или завершите процесс 1cv8.exe / 1cv8c.exe на его компьютере.
Закрыть файл принудительно можно прямо из списка открытых файлов. Делайте это только когда пользователь точно не работает: несохранённые документы пропадут, а запись, прерванная на середине, может повредить файловую базу. Перед такой операцией нужна свежая копия базы.
Журнал регистрации: кто входил и выходил
Список активных пользователей показывает только «сейчас». Чтобы узнать, кто работал вчера вечером или кто последним открывал документ, нужен журнал регистрации.
Откройте его из раздела настроек, через Все функции → Стандартные → Журнал регистрации или в конфигураторе: Администрирование → Журнал регистрации.
Полезные отборы:
- 🔑 события «Сеанс. Начало» и «Сеанс. Завершение» — время входа и выхода каждого пользователя;
- 🚫 «Сеанс. Ошибка аутентификации» — неудачные попытки входа с неверным паролем;
- 👤 отбор по пользователю и компьютеру — что делал конкретный сотрудник;
- 📄 отбор по данным — кто менял конкретный документ.
Пример: кто работал в базе ночью
Утром обнаружили, что остатки на складе изменились, хотя все ушли в 19:00. Откройте журнал, задайте отбор по периоду с 19:00 до 08:00 и по событию «Сеанс. Начало». В списке останутся только входы за ночь: пользователь, компьютер и тип клиента. Затем уберите отбор по событию и оставьте пользователя — увидите, какие документы он записывал.
Если вход сделан через COM-соединение или фоновое задание, ищите не человека, а внешнюю программу или регламентное задание, которое работало в это время.
Если в журнале нет нужных событий
Проверьте уровень записи: Конфигуратор → Администрирование → Настройка журнала регистрации. При уровне «Ошибки» события входа не пишутся. Для аудита пользователей нужен уровень «Информация» или «Примечания».
В той же настройке задаётся разделение журнала на периоды. Журнал без разделения в активной базе растёт годами и начинает медленно открываться. Разделение по месяцам решает это.
💡 Журнал хранится отдельно от данных базы. При выгрузке в .dt он не переносится. Если история входов важна, копируйте папку журнала вместе с резервной копией.
Монопольный режим и блокировки: кто мешает
Монопольный режим нужен для обновления конфигурации со сменой структуры, загрузки .dt, тестирования и исправления базы. Пока в базе есть хоть один чужой сеанс, установить его нельзя. Здесь и пригождается список активных пользователей: он показывает, кого попросить выйти.
Частые «невидимые» виновники:
- ⚙️ фоновые задания УНФ — обмен с сайтом, синхронизация, загрузка выписок;
- 🔌 COM-соединения от внешних программ и обработок;
- 💤 спящие сеансы людей, которые закрыли ноутбук, не выйдя из программы;
- 🖥️ ваш собственный второй сеанс, открытый в другом окне.
Управляемые блокировки данных
Это другая история: пользователи не мешают обновлению, но мешают друг другу. Признак — ошибка Превышено максимальное время ожидания предоставления блокировки при проведении документа.
В серверной базе откройте в консоли кластера ветку Блокировки. Там видно, какой сеанс держит блокировку и на каком объекте. Номер сеанса сверяете со списком сеансов и находите пользователя. Чаще всего это долгое проведение, перепроведение за период или зависшая обработка.
Как ограничить подключения и отключить всех перед работами
Блокировка работы пользователей
Перед обновлением используйте команду «Блокировка работы пользователей» в разделе настроек:
- Укажите время начала и окончания блокировки и текст сообщения.
- Задайте код разрешения — с ним вы сами сможете войти в заблокированную базу.
- Нажмите «Установить блокировку».
Пользователи получат предупреждение и будут отключены к назначенному времени. Новые входы запрещены. Чтобы войти самому, запустите базу с параметром /UC<код>, например /UC2468.
Завершение сеансов обрывает работу людей. Несохранённые документы будут потеряны. Ставьте блокировку заранее, предупредите сотрудников и выбирайте время вне рабочих часов.
Если блокировку установили и забыли снять, войдите с кодом разрешения и снимите её той же командой.
Блокировка в консоли кластера
В свойствах информационной базы в консоли есть флажок «Блокировка начала сеансов включена», поле сообщения и код разрешения. Это то же самое, только на уровне сервера. Помогает, когда программа не открывается и снять блокировку изнутри нельзя.
Отключить один сеанс
| Способ | Где работает | Что учесть |
|---|---|---|
| Команда «Завершить сеанс» в форме активных пользователей | Клиент-серверная база | Нужны права администратора кластера, если он защищён паролем |
| Удаление сеанса в консоли кластера (контекстное меню сеанса) | Клиент-серверная база | Сеанс обрывается сразу |
rac session terminate | Клиент-серверная база | Нужны идентификаторы кластера и сеанса |
| Закрытие процесса на компьютере пользователя | Файловая база | Только при уверенности, что работа сохранена |
Ограничение числа подключений
Сколько человек одновременно работает в УНФ, ограничивают в первую очередь лицензии. Каждый клиентский сеанс занимает лицензию, а фоновые задания — нет. Когда лицензии кончаются, следующий пользователь получает ошибку и не может войти.
Для серверных баз в консоли кластера есть ограничения потребления ресурсов: по ним сервер прерывает вызов или сеанс, который превысил заданный порог. Это защита от «тяжёлых» отчётов, а не лимит пользователей.
Сеанс тормозит базу: как найти виновника
Когда УНФ начинает тормозить у всех сразу, в консоли кластера откройте сеансы базы и отсортируйте по колонкам нагрузки.
Что смотреть по порядку:
- Время текущего вызова. Сеанс, у которого оно исчисляется минутами, что-то долго выполняет: отчёт за год, перепроведение, обработку.
- Время вызовов СУБД и «Захвачено СУБД». Высокие значения означают, что сеанс держит соединение с SQL и, скорее всего, блокирует таблицы.
- Память. Сеанс с растущей памятью часто связан с внешней обработкой или отчётом без отборов.
- Приложение. Если нагрузку создаёт фоновое задание, ищите его в списке регламентных заданий, а не у пользователей.
Найдя сеанс, сначала свяжитесь с человеком: часто отчёт можно остановить штатно. Удалять сеанс в консоли стоит, только если работа зависла и ждать нельзя.
Если тормоза повторяются и не привязаны к одному сеансу, нужен технологический журнал (настраивается файлом logcfg.xml на сервере). Он пишет длительные запросы и ожидания на блокировках. Это уже работа администратора, но начинают её всё равно со списка сеансов.