Принудительное отключение сеанса в Управлении торговлей 11: от кнопки в программе до rac

· 9 мин

Содержание

Выкинуть пользователя из 1С УТ 11 быстрее всего так: НСИ и администрирование → Администрирование → Обслуживание → Активные пользователи, выделить сеанс и нажать «Завершить сеанс». Команда работает в клиент-серверной базе. В файловой базе отдельный сеанс так не завершить, там помогает блокировка работы пользователей.

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

Перед тем как завершить сеанс: что потеряет пользователь

Принудительное завершение сеанса в 1С не портит базу. Платформа откатывает незавершённую транзакцию, проведённые документы остаются на месте.

Теряется другое:

  • 📝 несохранённые изменения в открытых формах документов и справочников;
  • 🧾 введённые, но не записанные строки в документе на 300 позиций;
  • 🔄 результат долгой операции, если она ещё шла: проведение, закрытие месяца , загрузка цен.

Перед жёстким отключением позвоните или напишите пользователю. Две минуты на «сохранись и выйди» дешевле, чем повторный ввод заказа.

Второе, что нужно знать заранее, — режим работы базы. От него зависит, какие способы вообще доступны.

Режим базыКак понятьЧто доступно
ФайловаяВ списке баз путь вида D:\Base\UT11Блокировка работы пользователей, завершение процесса на терминальном сервере
Клиент-сервернаяПуть вида Srvr="server1";Ref="ut11";Все способы: кнопка в программе, консоль кластера, rac

Способ 1. Завершить сеанс пользователя через «Активные пользователи»

Это штатный способ из самой программы. Нужны права полного администратора в базе.

  1. Откройте раздел НСИ и администрирование.
  2. Перейдите в Администрирование → Обслуживание.
  3. Откройте «Активные пользователи». В списке видно пользователя, приложение (тонкий клиент, конфигуратор, фоновое задание), компьютер и время начала сеанса.
  4. Выделите нужную строку. Можно выделить несколько.
  5. Нажмите «Завершить сеанс».
  6. Программа запросит параметры администрирования: имя и пароль администратора кластера (если он задан) и администратора информационной базы. Введите и подтвердите.

Через несколько секунд строка пропадёт из списка. Пользователь увидит сообщение, что соединение с базой разорвано, и при попытке продолжить работу клиент предложит перезапуск.

Если администратор кластера не назначен, поля для него оставьте пустыми. Пароль администратора базы нужен всегда — это ваш собственный логин в УТ с полными правами.

Как найти нужного человека в длинном списке

В крупной базе сеансов бывает 80–150. Отсортируйте список по колонке «Пользователь» или воспользуйтесь поиском по списку (Ctrl+F). Строки с приложением «Фоновое задание» — это не люди, а регламентные задания. Их завершать бессмысленно: задание запустится снова по расписанию.

Если кнопки нет или она неактивна

Так бывает в трёх случаях:

  • 📁 база файловая — команда не предусмотрена, переходите к блокировке (раздел про блокировку входа ниже);
  • 🔐 у вашего пользователя нет полных прав;
  • 🖥️ на компьютере, откуда вы работаете, не зарегистрирована компонента администрирования сервера (comcntr.dll). Программа обращается к кластеру через неё.

Компоненту регистрируют из командной строки, запущенной от имени администратора Windows:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\comcntr.dll"

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

Способ 2. Удалить сеанс в консоли администрирования кластера

Консоль администрирования серверов 1С:Предприятия — инструмент администратора сервера. Она работает, даже когда в саму УТ не войти: база заблокирована, а нужно убрать чужой сеанс.

  1. Запустите «Администрирование серверов 1С Предприятия» из меню «Пуск». Если ярлыка нет или консоль не открывается, зарегистрируйте radmin.dll из каталога bin установленной платформы той же командой regsvr32.
  2. Раскройте Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер.
  3. Разверните Информационные базы → ваша база УТ → Сеансы.
  4. В правой панели найдите строку с нужным пользователем. Колонки «Пользователь», «Компьютер», «Приложение» помогают не ошибиться.
  5. Щёлкните правой кнопкой по строке и выберите «Удалить». Подтвердите.

Сеанс исчезнет сразу. Лицензия освобождается вместе с ним.

Сеанс или соединение

В ветке базы есть ещё узел «Соединения». Соединение — это канал между клиентом и рабочим процессом, сеанс — работа пользователя с базой. Удалять нужно именно сеанс. Удаление соединения без сеанса пользователь часто даже не замечает: клиент переподключается.

Если в списке кластеров стоит замок, консоль попросит логин администратора кластера. Пароль от УТ сюда не подходит. Потеряли пароль кластера — не пересоздавайте кластер. Восстановите файлы настроек кластера из резервной копии или обратитесь к тому, кто настраивал сервер.

Способ 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:

  1. Откройте диспетчер задач на терминальном сервере, вкладка «Пользователи».
  2. Раскройте нужного пользователя.
  3. Завершите процесс 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент, конфигуратор).

Несохранённые данные пользователя пропадут так же, как при отключении из консоли.

Блокировка входа и автоматическое отключение по бездействию

Когда нужно выкинуть из базы не одного человека, а всех (перед обновлением или закрытием месяца), отключать сеансы по одному долго. Удобнее установить блокировку.

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

  1. НСИ и администрирование → Администрирование → Обслуживание → Блокировка работы пользователей.
  2. Заполните сообщение: «База закрыта на обновление до 19:30».
  3. Укажите время начала и окончания блокировки.
  4. Задайте код разрешения, например upd77.
  5. Нажмите «Установить блокировку».

Пользователи получат предупреждение и через несколько минут будут отключены. Это работает и в файловой, и в клиент-серверной базе. Сами вы войдёте с кодом разрешения, добавив к строке запуска ключ:

"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С. Иначе ни «Завершить сеанс», ни консоль кластера к серверу не подключатся.

Если сеанс не завершается: ошибки и что с ними делать

Диагностика: выберите симптом

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

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