К статье
Практический материал

Администрирование · 10 мин

Как выбросить пользователя из 1С: рабочие способы завершения сеанса

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

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

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

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

Определите режим работы базы: файловый или клиент-серверный

От этого зависит весь дальнейший порядок действий. Откройте окно «О программе» в 1С или посмотрите строку подключения в списке информационных баз: если путь выглядит как каталог на диске или сетевой папке (например, \\server\base\) — база файловая. Если указаны имя сервера кластера и имя базы — клиент-серверная.

В файловом режиме сеансы хранятся в самой базе, и управлять ими можно через конфигуратор или средства конфигурации. В клиент-серверном режиме сеансами управляет кластер серверов 1С, и основной инструмент администратора — консоль кластера.

Маршрут решения

Как выбрать способ

База клиент-серверная, есть доступ к консоли кластераУдаляйте сеанс через консоль кластера серверов 1С
База файловая, конфигуратор доступенИспользуйте «Администрирование — Активные пользователи» в конфигураторе
Конфигурация типовая (БСП), есть права администратора в режиме ПредприятияИспользуйте обработку «Активные пользователи» / «Блокировка работы пользователей»
Нужно выгнать всех и не пускать новыхУстановите блокировку сеансов с кодом разрешения

Завершение сеанса через консоль кластера серверов

Это основной способ для клиент-серверных баз. Откройте оснастку «Администрирование серверов 1С:Предприятия» на машине, где установлен сервер 1С (или подключитесь к серверу удалённо, добавив его в консоль). Раскройте ветку кластера, затем «Сеансы». В списке видны все активные сеансы: пользователь, приложение, время начала, компьютер.

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

Порядок действий в консоли кластера
  1. 1
    Откройте консоль «Администрирование серверов 1С:Предприятия»
  2. 2
    Раскройте нужный кластер и перейдите в раздел «Сеансы»
  3. 3
    Найдите сеанс по имени пользователя или компьютеру
  4. 4
    Предупредите пользователя, если это возможно
  5. 5
    Щёлкните правой кнопкой по сеансу и выберите «Удалить»
  6. 6
    Убедитесь, что сеанс исчез из списка, а при необходимости удалите и связанное соединение в разделе «Соединения»

Если сеанс восстанавливается сразу после удаления, проверьте раздел «Соединения»: тонкий клиент может держать соединение и пересоздавать сеанс. Удалите соединение, а затем сеанс. Также проверьте, не запущен ли у пользователя агент или регламентное задание, которое пересоздаёт сеанс автоматически.

Файловая база: активные пользователи в конфигураторе

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

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

Имейте в виду: если «убить» процесс 1С на клиентской машине, файл базы может остаться с незакрытыми блокировками. Обычно они снимаются автоматически, но при сбоях может потребоваться проверка целостности базы утилитой chdbfl или тестирование и исправление.

Завершение работы пользователей в типовых конфигурациях

В конфигурациях на базе Библиотеки стандартных подсистем (Управление торговлей, Бухгалтерия предприятия, ЗУП, ERP и другие) есть встроенный механизм завершения сеансов. Обычно он находится в разделе «Администрирование — Обслуживание — Активные пользователи» (название может отличаться в зависимости от версии).

Откройте обработку, выберите пользователя и нажмите «Завершить сеанс» (или «Завершить работу»). Механизм сначала пытается завершить сеанс штатно: пользователю приходит сообщение с просьбой выйти, и через заданный интервал сеанс закрывается. Это безопаснее прямого удаления из консоли кластера.

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

Программное завершение сеансов и блокировка входа

Администраторы часто автоматизируют выгон пользователей перед ночным обслуживанием. В клиент-серверном режиме для этого используется объект БлокировкаСеансов и методы работы с кластером через COM-соединитель или административный API (rac/ras).

Утилита командной строки rac позволяет завершить сеанс без графической консоли. Сначала получите список сеансов, затем удалите нужный по его идентификатору:

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

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

Блокировка = Новый БлокировкаСеансов;

Блокировка.Установлена = Истина;

Блокировка.Начало = ТекущаяДатаСеанса();

Блокировка.Конец = ТекущаяДатаСеанса() + 3600;

Блокировка.КодРазрешения = "Обслуживание";

Блокировка.Сообщение = "В базе ведутся регламентные работы";

УстановитьБлокировкуСеансов(Блокировка);

После установки блокировки новые сеансы без кода разрешения создаваться не будут, а текущие пользователи увидят сообщение. Завершить уже открытые сеансы блокировка сама по себе не делает — их нужно закрывать отдельно.

Проверка результата и типичные ошибки

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

Контрольные точки

Как проверить результат

Список сеансов в консоли кластера
Норма

Сеанс нужного пользователя отсутствует и не появляется снова

Тревожный признак

Сеанс пересоздаётся через несколько секунд — проверьте соединения и регламентные задания

Список активных пользователей в файловой базе
Норма

Список пуст или содержит только ваш сеанс

Тревожный признак

Пользователь числится активным — процесс на его машине не завершён

Вход в базу после обслуживания
Норма

Пользователи входят штатно, блокировка снята

Тревожный признак

Осталась блокировка сеансов — пользователи видят сообщение о регламентных работах

Типичные ошибки
01
Удаление сеанса без предупреждения пользователя — потеря несохранённых документов и конфликт с сотрудником
02
Завершение сеанса во время проведения крупного документа — длительный откат транзакции и блокировки в СУБД
03
Забытая блокировка сеансов после обслуживания — утром никто не может войти в базу
04
Завершение только сеанса без удаления соединения — сеанс пересоздаётся автоматически
05
Попытка выгнать пользователя файловой базы через консоль кластера — консоль работает только с клиент-серверными базами

FAQ

Можно ли выбросить пользователя, не имея прав администратора?

Нет. Завершение чужих сеансов требует административных прав: в консоли кластера — прав администратора кластера, в конфигураторе — права «Администрирование», в типовых обработках — роли администратора в самой конфигурации. Обычный пользователь может завершить только свой собственный сеанс.

Пользователь потеряет данные при принудительном завершении сеанса?

Да, если данные не были записаны в базу. Всё, что сохранено (проведённые документы, записанные элементы справочников), останется в целости — разрыв сеанса не откатывает завершённые транзакции. Потеряется только несохранённая работа в открытых формах.

Что делать, если сеанс «висит» и не удаляется из консоли кластера?

Сначала удалите связанное соединение в разделе «Соединения», затем повторно удалите сеанс. Если не помогает — перезапустите службу агента сервера 1С (это разорвёт все сеансы, предупредите пользователей). Также проверьте, нет ли зависшего процесса rphost, который можно завершить через диспетчер задач на сервере.

Как выгнать всех пользователей разом перед обновлением?

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

Чем отличается завершение сеанса от завершения соединения?

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

Можно ли автоматически завершать сеансы, которые простаивают слишком долго?

Да. В свойствах информационной базы в консоли кластера есть параметры «Интервал перезапуска» и «Допустимый объём памяти», а в свойствах кластера — настройки отключения неактивных сеансов. Также можно настроить расписание скрипта rac, который ночью завершает все сеансы перед резервным копированием.

Итог

Что важно запомнить

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