Принудительное отключение сеанса в Управлении торговлей 11: от кнопки в программе до rac
Содержание
Выкинуть пользователя из 1С УТ 11 быстрее всего так: НСИ и администрирование → Администрирование → Обслуживание → Активные пользователи, выделить сеанс и нажать «Завершить сеанс». Команда работает в клиент-серверной базе. В файловой базе отдельный сеанс так не завершить, там помогает блокировка работы пользователей.
Обычно это нужно срочно: идёт обновление, а кто-то ушёл домой с открытой программой. Или сеанс «завис» и держит блокировку документа. Ниже четыре рабочих способа, от мягкого к жёсткому, и что делать, если сеанс возвращается.
Перед тем как завершить сеанс: что потеряет пользователь
Принудительное завершение сеанса в 1С не портит базу. Платформа откатывает незавершённую транзакцию, проведённые документы остаются на месте.
Теряется другое:
- 📝 несохранённые изменения в открытых формах документов и справочников;
- 🧾 введённые, но не записанные строки в документе на 300 позиций;
- 🔄 результат долгой операции, если она ещё шла: проведение, закрытие месяца , загрузка цен.
Перед жёстким отключением позвоните или напишите пользователю. Две минуты на «сохранись и выйди» дешевле, чем повторный ввод заказа.
Второе, что нужно знать заранее, — режим работы базы. От него зависит, какие способы вообще доступны.
| Режим базы | Как понять | Что доступно |
|---|---|---|
| Файловая | В списке баз путь вида D:\Base\UT11 | Блокировка работы пользователей, завершение процесса на терминальном сервере |
| Клиент-серверная | Путь вида Srvr="server1";Ref="ut11"; | Все способы: кнопка в программе, консоль кластера, rac |
Способ 1. Завершить сеанс пользователя через «Активные пользователи»
Это штатный способ из самой программы. Нужны права полного администратора в базе.
- Откройте раздел
НСИ и администрирование. - Перейдите в
Администрирование → Обслуживание. - Откройте «Активные пользователи». В списке видно пользователя, приложение (тонкий клиент, конфигуратор, фоновое задание), компьютер и время начала сеанса.
- Выделите нужную строку. Можно выделить несколько.
- Нажмите «Завершить сеанс».
- Программа запросит параметры администрирования: имя и пароль администратора кластера (если он задан) и администратора информационной базы. Введите и подтвердите.
Через несколько секунд строка пропадёт из списка. Пользователь увидит сообщение, что соединение с базой разорвано, и при попытке продолжить работу клиент предложит перезапуск.
Если администратор кластера не назначен, поля для него оставьте пустыми. Пароль администратора базы нужен всегда — это ваш собственный логин в УТ с полными правами.
Как найти нужного человека в длинном списке
В крупной базе сеансов бывает 80–150. Отсортируйте список по колонке «Пользователь» или воспользуйтесь поиском по списку (Ctrl+F). Строки с приложением «Фоновое задание» — это не люди, а регламентные задания. Их завершать бессмысленно: задание запустится снова по расписанию.
Если кнопки нет или она неактивна
Так бывает в трёх случаях:
- 📁 база файловая — команда не предусмотрена, переходите к блокировке (раздел про блокировку входа ниже);
- 🔐 у вашего пользователя нет полных прав;
- 🖥️ на компьютере, откуда вы работаете, не зарегистрирована компонента администрирования сервера (
comcntr.dll). Программа обращается к кластеру через неё.
Компоненту регистрируют из командной строки, запущенной от имени администратора Windows:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\comcntr.dll"
Номер платформы в пути подставьте свой — он должен совпадать с версией сервера 1С.
Способ 2. Удалить сеанс в консоли администрирования кластера
Консоль администрирования серверов 1С:Предприятия — инструмент администратора сервера. Она работает, даже когда в саму УТ не войти: база заблокирована, а нужно убрать чужой сеанс.
- Запустите «Администрирование серверов 1С Предприятия» из меню «Пуск». Если ярлыка нет или консоль не открывается, зарегистрируйте
radmin.dllиз каталогаbinустановленной платформы той же командойregsvr32. - Раскройте
Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер. - Разверните
Информационные базы → ваша база УТ → Сеансы. - В правой панели найдите строку с нужным пользователем. Колонки «Пользователь», «Компьютер», «Приложение» помогают не ошибиться.
- Щёлкните правой кнопкой по строке и выберите «Удалить». Подтвердите.
Сеанс исчезнет сразу. Лицензия освобождается вместе с ним.
Сеанс или соединение
В ветке базы есть ещё узел «Соединения». Соединение — это канал между клиентом и рабочим процессом, сеанс — работа пользователя с базой. Удалять нужно именно сеанс. Удаление соединения без сеанса пользователь часто даже не замечает: клиент переподключается.
Если в списке кластеров стоит замок, консоль попросит логин администратора кластера. Пароль от УТ сюда не подходит. Потеряли пароль кластера — не пересоздавайте кластер. Восстановите файлы настроек кластера из резервной копии или обратитесь к тому, кто настраивал сервер.
Способ 3. Принудительное завершение сеанса командой rac
Когда графической консоли нет (сервер на Linux, удалённый доступ только по SSH) или нужно отключать пользователей по расписанию, используйте утилиту rac. Она общается с сервером администрирования ras.
Запустите ras
На Windows ras обычно ставят службой. Для разового запуска хватит команды в каталоге bin платформы:
ras cluster --port=1545 localhost:1540
На Linux тот же сервер запускают с ключом --daemon. Порт 1545 — стандартный для ras, 1540 — порт агента сервера 1С.
Найдите кластер, базу и сеанс
rac localhost:1545 cluster list
rac localhost:1545 infobase summary list --cluster=<uuid-кластера>
rac localhost:1545 session list --cluster=<uuid-кластера> --infobase=<uuid-базы>
В выводе session list у каждого сеанса есть поля session (идентификатор), user-name, host, app-id. Найдите блок с нужным пользователем и скопируйте значение session.
Завершите сеанс
rac localhost:1545 session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если на кластере задан администратор, добавьте к командам --cluster-user=<имя> и --cluster-pwd=<пароль>. Список прочих параметров выводит rac help session.
Не храните пароль администратора кластера открытым текстом в bat-файле на общем диске. Для регулярных задач заведите скрипт в каталоге, доступ к которому есть только у администраторов сервера.
SQL-сервер и файловая база: крайние меры
Почему SQL-запрос не выкинет конкретного пользователя
В клиент-серверной УТ пользователи не подключаются к СУБД напрямую. К базе SQL ходят рабочие процессы rphost, и одно соединение обслуживает сеансы разных людей. В sys.dm_exec_sessions вы увидите имя сервера 1С и учётную запись службы, а не «Иванова со склада».
Поэтому KILL на стороне MS SQL или pg_terminate_backend() в PostgreSQL не завершает сеанс 1С. Он рвёт запрос, который в этот момент выполнял рабочий процесс, — возможно, запрос совсем другого пользователя.
Оправдан этот шаг только в одном случае: запрос висит в СУБД часами, держит блокировку, а консоль кластера не помогла. Тогда смотрят, какой запрос блокирует остальные:
SELECT session_id, blocking_session_id, wait_type, wait_time, command
FROM sys.dm_exec_requests
WHERE blocking_session_id <> 0;
Убивать соединение СУБД — только после согласования и в тихое время. Оборвутся операции всех пользователей, чьи запросы шли через это соединение.
Файловая база на терминальном сервере
Если УТ файловая и пользователи работают через RDP, зависший сеанс можно снять на уровне Windows:
- Откройте диспетчер задач на терминальном сервере, вкладка «Пользователи».
- Раскройте нужного пользователя.
- Завершите процесс
1cv8c.exe(тонкий клиент) или1cv8.exe(толстый клиент, конфигуратор).
Несохранённые данные пользователя пропадут так же, как при отключении из консоли.
Блокировка входа и автоматическое отключение по бездействию
Когда нужно выкинуть из базы не одного человека, а всех (перед обновлением или закрытием месяца), отключать сеансы по одному долго. Удобнее установить блокировку.
Блокировка работы пользователей
НСИ и администрирование → Администрирование → Обслуживание → Блокировка работы пользователей.- Заполните сообщение: «База закрыта на обновление до 19:30».
- Укажите время начала и окончания блокировки.
- Задайте код разрешения, например
upd77. - Нажмите «Установить блокировку».
Пользователи получат предупреждение и через несколько минут будут отключены. Это работает и в файловой, и в клиент-серверной базе. Сами вы войдёте с кодом разрешения, добавив к строке запуска ключ:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"server1\ut11" /UCupd77
Как снять блокировку после работ
Откройте ту же форму «Блокировка работы пользователей» и нажмите «Снять блокировку». Если указали время окончания, блокировка снимется сама в назначенный момент.
Проверьте сразу после снятия, что вход открыт: попросите одного пользователя зайти без кода. Частая ситуация — администратор закончил обновление в 19:10, а люди до утра видят сообщение о закрытой базе, потому что время окончания стояло на завтра.
Не забудьте про регламентные задания
После блокировки в «Активных пользователях» часто остаются фоновые задания: обмен с сайтом, загрузка курсов, обработка очередей. В клиент-серверной базе их останавливают в консоли кластера: свойства базы → флажок «Блокировка регламентных заданий включена». Снимите его после обновления, иначе обмены встанут.
Отключение по бездействию
Для сеансов, которые висят неделями, в свойствах информационной базы в консоли кластера есть два параметра:
- ⏸️ «Время засыпания пассивного сеанса» — через сколько секунд сеанс без связи с клиентом засыпает и освобождает лицензию;
- ⏹️ «Время завершения спящего сеанса» — через сколько секунд спящий сеанс завершается окончательно.
Например, 600 и 3600: через 10 минут без связи сеанс засыпает, ещё через час завершается. Это решает проблему «закрыл ноутбук, а сеанс висит». Пользователя, который просто оставил открытое окно на работающем компьютере, эти параметры не отключат: связь с клиентом есть.
Как отличаются способы в УТ 11.4 и 11.5
В редакциях 11.4 и 11.5 путь к «Активным пользователям» и к блокировке одинаковый: раздел НСИ и администрирование, подраздел Администрирование, группа «Обслуживание». Разницу даёт не релиз конфигурации, а режим базы и версия платформы.
| Способ | Файловая база | Клиент-серверная база | Нужные права |
|---|---|---|---|
| «Активные пользователи» → «Завершить сеанс» | Нет | Да | Полные права в УТ, администратор кластера |
| Консоль кластера → «Удалить» | Нет | Да | Администратор кластера |
rac session terminate | Нет | Да | Администратор кластера, запущенный ras |
| Блокировка работы пользователей | Да | Да | Полные права в УТ |
| Завершение процесса в Windows | Да, на терминальном сервере | Да, на терминальном сервере | Администратор Windows |
Платформа на рабочем месте администратора должна совпадать по номеру с версией сервера 1С. Иначе ни «Завершить сеанс», ни консоль кластера к серверу не подключатся.