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

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

Как завершить сеанс активного пользователя в 1С

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

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

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

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

Как понять, кто и как занимает базу

Прежде чем кого-то «выкидывать», полезно понять, что за сеанс мешает. В 1С различают сеансы пользовательские (толстый, тонкий, веб-клиент), фоновые задания, сеансы веб-сервисов и COM-соединений. Не каждый сеанс принадлежит реально работающему человеку: «зависший» сеанс может остаться после аварийного закрытия клиента.

Признаки зависшего сеанса: дата начала — давняя, при этом пользователь утверждает, что давно вышел; компьютер пользователя выключен, а сеанс в списке есть. Такие сеансы в клиент-серверном режиме сами завершаются по тайм-ауту, но ждать можно долго — проще удалить вручную.

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

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

Это основной способ для клиент-серверных баз. Откройте оснастку «Администрирование серверов 1С:Предприятия» на сервере или на машине администратора, раскройте нужный кластер, найдите базу и перейдите на вкладку «Сеансы».

Порядок действий в консоли кластера
  1. 1
    Откройте консоль кластера и раскройте нужную информационную базу
  2. 2
    Перейдите на вкладку «Сеансы» и найдите нужный сеанс по имени пользователя или компьютера
  3. 3
    Выделите сеанс, нажмите правую кнопку мыши и выберите «Удалить» (или Del)
  4. 4
    Проверьте, что сеанс исчез из списка, а у пользователя клиент закрылся с сообщением о разрыве соединения

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

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

Что делать с файловой базой

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

Практические варианты такие. Первый — попросить пользователя выйти (по телефону, через сообщение). Второй — если компьютер пользователя доступен по сети и завис, перезагрузить его или завершить процесс 1cv8.exe удалённо. Третий — использовать типовой механизм «Завершение работы пользователей» из Библиотеки стандартных подсистем, если он встроен в вашу конфигурацию.

Учтите: если клиент файловой базы завис, его сеанс в списке активных пользователей может «висеть», пока не сработает тайм-аут. При этом монопольный режим установить не получится. Обычно помогает завершение процесса на машине пользователя; в крайнем случае — перезапуск сервера/компьютера, где лежит файл базы.

Типовой механизм «Завершение работы пользователей» (БСП)

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

Механизм работает так: администратор включает блокировку, задаёт время начала и сообщение. Активным пользователям приходит предупреждение, а по наступлении времени блокировки их сеансы завершаются штатно — клиент предлагает сохранить данные и закрывается. Новые входы без кода разрешения блокируются.

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

Программное завершение сеансов

Для автоматизации (например, ночного регламентного обслуживания) сеансы можно завершать программно. В клиент-серверном варианте это делается через COM-объект V83.COMConnector и интерфейс администрирования кластера: получаем список сеансов базы и вызываем завершение для каждого.

bsl
// Пример логики (фрагмент): подключение к агенту и завершение сеансов базы
// Connector = Новый COMОбъект("V83.COMConnector");
// Agent = Connector.ConnectAgent("ИмяСервера");
// Cluster = Agent.GetClusters()[0];
// Agent.Authenticate(Cluster, "", "");
// Infobase = ...; Sessions = Agent.GetSessions(Cluster);
// Для каждого сеанса базы: Agent.TerminateSession(Cluster, Session)

Альтернатива — утилита rac из состава сервера 1С: она позволяет из командной строки получить список сеансов и завершить их, что удобно для скриптов обслуживания. Команды rac требуют указания кластера и, при необходимости, учётных данных администратора кластера и базы.

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

Типичные ошибки и как их избежать

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

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

Проверка результата

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

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

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

Удалённый сеанс отсутствует в списке после обновления

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

Сеанс появляется снова — пользователь переподключился, нужна блокировка

Сообщение у пользователя
Норма

Клиент закрылся с уведомлением о завершении работы или разрыве соединения

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

Клиент продолжает работать — возможно, удалён не тот сеанс

Монопольный режим / обновление
Норма

Операция выполняется без ошибки «база занята»

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

Ошибка повторяется — остались сеансы или фоновые задания, проверьте список ещё раз

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

Итог

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

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

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

Можно ли завершить сеанс пользователя, не имея доступа к серверу 1С?

Да, если конфигурация построена на БСП и у вас есть права администратора в самой программе: используйте «Блокировку работы пользователей» в разделе администрирования. Она завершит сеансы по расписанию без доступа к консоли кластера.

Пользователь вышел, а сеанс в списке остался. Это нормально?

Да, при аварийном закрытии клиента сеанс может висеть до срабатывания тайм-аута кластера. Такой «мёртвый» сеанс можно смело удалить в консоли — на работу пользователя это уже не повлияет.

Что будет с несохранёнными данными пользователя при удалении сеанса?

Они будут потеряны: удаление сеанса равносильно аварийному завершению клиента. Открытые незаписанные документы, введённые строки и несохранённые настройки формы не восстанавливаются.

Как не пустить пользователя в базу после завершения сеанса?

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

Чем отличается блокировка сеансов от монопольного режима?

Блокировка запрещает новые подключения и задаётся на уровне базы или кластера, а монопольный режим — временный режим внутри сеанса конфигуратора, требующий, чтобы других сеансов не было. Для обслуживания обычно используют связку: блокировка + завершение текущих сеансов.