Администрирование · 11 мин
Как выкинуть клиента из 1С: все способы завершить сеанс пользователя
Как принудительно завершить сеанс пользователя в 1С: через консоль кластера, конфигуратор, командную строку и программно. Способы, риски и типичные ошибки.
«Выкинуть клиента из 1С» — значит принудительно завершить сеанс пользователя, который мешает работе: держит монопольный доступ, завис с открытой транзакцией или просто не вышел из базы перед обновлением. Способ зависит от того, как работает ваша база — в файловом или клиент-серверном режиме — и от того, есть ли у вас права администратора.
В клиент-серверном варианте сеанс завершается через консоль кластера серверов 1С или программно из встроенного языка. В файловом варианте централизованного механизма нет: приходится либо договариваться с пользователем, либо удалять сеанс через список активных пользователей, либо перезапускать доступ к папке с базой. Каждый способ имеет свои риски — от потери несохранённых данных до повреждения индексов при грубом обрыве.
Прежде чем отключать пользователя, стоит убедиться, что это действительно необходимо: иногда «зависший» сеанс — это живой пользователь, выполняющий длительную операцию, и его отключение оборвёт проведение документов или закрытие периода на половине пути.
Определите режим работы базы: файловый или клиент-серверный
От режима работы зависит весь инструментарий. Откройте в конфигураторе меню «Администрирование» — «Параметры информационной базы» или просто посмотрите на строку подключения: если путь к базе выглядит как сетевая папка (\\server\base или локальный диск), это файловый режим. Если указаны имя сервера и имя базы в кластере — клиент-серверный.
В клиент-серверном режиме все соединения проходят через агент сервера 1С, и администратор кластера может видеть и завершать любой сеанс централизованно. В файловом режиме каждый пользователь открывает файл базы напрямую, и единого «диспетчера сеансов» не существует — отсюда и ограниченность методов.
Как выкинуть пользователя через консоль кластера серверов
Основной и самый чистый способ для клиент-серверной 1С. Откройте оснастку «Администрирование серверов 1С:Предприятия» на сервере или на машине администратора, раскройте нужный кластер, затем ветку «Сеансы». В списке будут видны все активные сеансы с указанием пользователя, приложения, компьютера и времени начала.
Найдите нужный сеанс, щёлкните по нему правой кнопкой мыши и выберите «Удалить». Сеанс завершится немедленно, а клиентское приложение пользователя покажет сообщение о разрыве соединения с сервером. Если у пользователя открыто несколько сеансов, удалять нужно каждый — иначе он останется в базе через другое приложение.
Для массового отключения перед обновлением удобнее использовать блокировку сеансов: в свойствах информационной базы в консоли кластера установите флаг «Блокировка начала сеансов включена», задайте сообщение для пользователей и время начала блокировки. Новые сеансы перестанут создаваться, а текущие можно завершить выборочно или все сразу.
- 1Откройте оснастку «Администрирование серверов 1С:Предприятия»
- 2Раскройте кластер и перейдите в ветку «Сеансы»
- 3Найдите сеанс нужного пользователя, проверьте приложение и компьютер
- 4Щёлкните правой кнопкой и выберите «Удалить»
- 5Проверьте, что сеанс исчез из списка, а при необходимости включите блокировку новых сеансов
Завершение сеансов программно и через командную строку
Если отключать пользователей нужно регулярно — например, перед ночным обновлением или регламентным заданием, — ручная работа в консоли неудобна. В типовых конфигурациях на базе БСП (Библиотека стандартных подсистем) есть встроенный механизм: в разделе «Администрирование» — «Обслуживание» — «Блокировка работы пользователей» можно установить блокировку на заданный период. Пользователи получат предупреждение, а по наступлении времени их сеансы завершатся автоматически.
Для автоматизации из скриптов используется утилита администрирования кластера rac.exe из каталога установки сервера 1С. Сначала получают список сеансов, затем завершают нужный по его идентификатору. Это удобно встраивать в bat-файлы и планировщик задач.
rac session --cluster=<ID_кластера> terminate --session=<ID_сеанса>В файловой базе программно «выкинуть» другого пользователя штатными средствами нельзя — встроенный язык позволяет получить список активных сеансов только в клиент-серверном режиме через COM-соединитель (V83.COMConnector) и объект агента сервера.
Как отключить пользователя в файловой базе
В файловом режиме централизованного механизма нет, поэтому применяют обходные пути. Первый — открыть в конфигураторе «Администрирование» — «Активные пользователи», увидеть, кто в базе, и связаться с ним. Это не отключение, а инвентаризация: штатной кнопки «завершить сеанс» здесь нет.
Второй путь — действия на уровне сети. Если база лежит в общей папке, администратор может на файловом сервере закрыть открытые файлы базы через оснастку «Управление общими папками» (раздел «Открытые файлы») или временно отключить общий доступ к папке. Сеансы пользователей оборвутся с ошибкой. Это грубый метод: обрыв файлового доступа во время записи может повредить данные, поэтому применять его стоит только когда пользователь недоступен, а база нужна монопольно.
Третий вариант — настроить в типовой конфигурации завершение работы по расписанию или использовать регламентные операции, которые просят пользователей выйти. В небольших компаниях самый надёжный «механизм» — регламент: согласованное время обновлений и автоответчик в мессенджере работают лучше любых скриптов.
Как понять, что сеанс завис, а не работает
Признак зависшего сеанса в консоли кластера — отсутствие активности при длительном времени жизни: колонки «Прочитано», «Записано», «Время вызова СУБД» не меняются, а сам сеанс висит часами. Но есть нюанс: фоновые задания и сеансы с длительными операциями выглядят активными, хотя пользователь давно ушёл — такие сеансы держат блокировки и мешают обновлению.
Обратная ситуация — «спящие» сеансы, которые пользователь оставил на ночь с открытым клиентом. Они не нагружают сервер, но мешают монопольному доступу. В консоли кластера можно настроить параметры рабочих процессов и кластера, чтобы неактивные сеансы завершались автоматически по таймауту.
Как проверить результат
Сеанс пользователя исчез из ветки «Сеансы»
Сеанс появился снова — у пользователя настроен автозапуск или открыто второе приложение
Установился без ошибок
Ошибка «информационная база используется» — остались активные сеансы или фоновые задания
Показало сообщение о разрыве соединения и закрылось
Приложение зависло — сеанс завершён, но клиент нужно закрыть вручную на его компьютере
Типичные ошибки при принудительном завершении сеансов
Самая частая ошибка — удалять сеансы, не разобравшись, чем они заняты. Завершение сеанса, выполняющего обновление конфигурации базы данных, почти гарантированно приводит к незавершённой реструктуризации и необходимости восстанавливаться из резервной копии. Перед массовым отключением проверьте ветку «Соединения» и активность по каждому сеансу.
Вторая ошибка — забыть про фоновые задания и сеансы веб-сервисов. Пользователь вышел, но регламентное задание продолжает держать соединение, и монопольный режим не устанавливается. Отключать нужно не только «живых» пользователей, но и служебные сеансы, либо временно блокировать выполнение регламентных заданий в свойствах базы.
Третья ошибка — не включить блокировку новых сеансов. Пока вы завершаете старые, пользователи заходят снова, и процесс превращается в бесконечную погоню. Правильный порядок: сначала блокировка, потом завершение текущих сеансов.
Как предотвратить проблему: регламент и автоматика
Лучший способ «выкидывать клиентов» — сделать так, чтобы это почти не требовалось. Настройте в консоли кластера автоматическое завершение неактивных сеансов по таймауту, включите в типовой конфигурации напоминания о необходимости выйти и заведите регламентное окно для обновлений — например, ночью или в обеденный перерыв.
Полезно также ограничить количество сеансов на пользователя, если лицензионная политика и инфраструктура это позволяют: тогда один сотрудник не сможет держать пять открытых клиентов на разных компьютерах. И обязательно настройте регулярное резервное копирование — это страховка на случай, если принудительное завершение всё же повредит данные.
Как выбрать действие
Что важно запомнить
В клиент-серверной 1С сеансы завершаются через консоль кластера или rac.exe, в файловой — только косвенными методами. Перед массовым отключением включайте блокировку новых сеансов, проверяйте активность каждого сеанса и предупреждайте пользователей. Никогда не обрывайте сеанс во время обновления конфигурации.
Частые вопросы
Что увидит пользователь, когда его сеанс завершат?
Клиентское приложение покажет сообщение о разрыве соединения с сервером и предложит завершить работу или перезапуститься. Все несохранённые данные — открытые незаписанные документы, введённые строки — будут потеряны, поэтому предупреждение перед отключением обязательно.
Можно ли выкинуть пользователя, не имея доступа к серверу 1С?
Штатно — нет. Завершение сеансов требует прав администратора кластера (в клиент-серверном режиме) или прав на файловом сервере (в файловом). Рядовой пользователь может только попросить коллегу выйти. Если доступа нет, обратитесь к администратору сервера.
Почему после удаления сеанса монопольный режим всё равно не устанавливается?
Чаще всего остались фоновые задания, сеансы веб-сервисов или COM-соединения, которые не видны как «пользователи». Проверьте полный список сеансов в консоли кластера и временно заблокируйте выполнение регламентных заданий в свойствах информационной базы.
Опасно ли завершать сеанс через консоль кластера?
Сама операция безопасна для базы в клиент-серверном режиме: СУБД корректно откатит незавершённую транзакцию. Опасность представляет только обрыв критичных длительных операций — обновления конфигурации, реструктуризации, закрытия периода — и потеря несохранённых данных пользователя.
Как автоматически завершать сеансы, которые простаивают?
В консоли кластера в свойствах рабочего процесса и кластера есть параметры таймаутов неактивных соединений. Дополнительно в типовых конфигурациях можно настроить завершение работы простаивающих пользователей штатными средствами подсистемы администрирования.
Можно ли выкинуть пользователя из файловой базы удалённо?
Напрямую через 1С — нет. Удалённо это делается средствами операционной системы файлового сервера: закрытием открытых файлов базы или отключением общего доступа к папке. Оба способа грубые и применяются только при уверенности, что запись в базу не выполняется.