Администрирование · 10 мин
Как закрыть все сеансы в 1С
Как закрыть все сеансы в 1С: через консоль кластера, администрирование сервера, код на встроенном языке и файловую базу. Риски, проверка результата и FAQ.
Завершить все сеансы пользователей требуется перед регламентными операциями: обновлением конфигурации, резервным копированием, восстановлением базы, тестированием и исправлением. Пока в базе есть активные соединения, монопольный режим установить нельзя, а часть обслуживающих процедур просто не запустится. Поэтому задача «закрыть все сеансы» — одна из базовых в работе администратора 1С.
Способ завершения зависит от режима работы базы. В клиент-серверном варианте сеансами управляет кластер серверов 1С, и работать с ними нужно через консоль кластера или программно. В файловом варианте централизованного механизма нет: убрать пользователей можно через список активных пользователей, блокировку соединений или перезапуск службы доступа к файлам.
Принудительное завершение сеанса — разрушительная операция для несохранённых данных пользователя. Открытый документ, незаписанный отчёт или незавершённая транзакция будут потеряны. Перед массовым отключением предупредите сотрудников и, если есть время, дождитесь завершения критичных операций — проведения больших документов, обменов данными, закрытия периода.
Как понять, какие сеансы сейчас активны
Прежде чем что-то завершать, посмотрите, кто и чем занят в базе. В клиент-серверном режиме откройте консоль кластера серверов 1С (оснастка «Администрирование серверов 1С Предприятия»), разверните нужный кластер, найдите информационную базу и перейдите на вкладку «Сеансы». Здесь видны пользователь, приложение (толстый клиент, веб-клиент, фоновое задание, COM-соединение), время начала и длительность простоя.
Обратите внимание на колонку «Приложение»: фоновые задания и соединения через COM тоже являются сеансами и блокируют монопольный режим. Именно «забытые» фоновые задания чаще всего мешают обновлению, когда все пользователи уже вышли. Вкладка «Соединения» показывает соединения с рабочими процессами — это смежная сущность, удалять её вместо сеансов не нужно.
В файловом режиме список активных пользователей доступен из самой программы: раздел «Администрирование» → «Обслуживание» → «Активные пользователи» (в типовых конфигурациях путь может называться «Поддержка и обслуживание»). Отсюда же можно завершить выбранный сеанс, если у текущего пользователя есть права администратора.
Предупредить и дать время сохранить данные
Проверить, что задание не критично, иначе дождаться завершения
Найти источник подключения, иначе сеансы появятся снова
Такой сеанс можно удалять без риска потери данных
Завершение сеансов через консоль кластера серверов
Это основной способ для клиент-серверных баз. Откройте оснастку администрирования серверов 1С на компьютере, где она установлена (обычно на самом сервере или рабочем месте администратора). Выберите кластер, информационную базу, перейдите на вкладку «Сеансы». Для завершения одного сеанса выделите его и нажмите «Удалить» в контекстном меню. Для массового завершения выделите все строки через Ctrl+A и удалите их одним действием.
Удаление сеанса происходит немедленно и без подтверждения со стороны пользователя: его клиентское приложение покажет сообщение о разрыве соединения и закроется. Несохранённые данные будут потеряны. Учтите, что консоль кластера должна соответствовать версии сервера 1С — консолью одной версии управлять кластером другой версии обычно нельзя.
- 1Откройте оснастку «Администрирование серверов 1С Предприятия»
- 2Разверните нужный кластер и выберите информационную базу
- 3Перейдите на вкладку «Сеансы» и оцените, кто подключён
- 4Установите блокировку сеансов в свойствах базы, чтобы не пускать новых пользователей
- 5Выделите все сеансы (Ctrl+A) и удалите их
- 6Обновите список и убедитесь, что остались только служебные сеансы или список пуст
Блокировка соединений, чтобы сеансы не появлялись снова
Частая ошибка — удалять сеансы, не закрыв «вход». Пользователи с автоматическим переподключением, планировщики обменов и интеграционные сервисы тут же создадут новые сеансы, и монопольный режим снова станет недоступен. Поэтому перед массовым завершением установите блокировку соединений.
В консоли кластера откройте свойства информационной базы и установите флажок «Блокировка регламентных заданий включена» и «Блокировка начала сеансов включена». Укажите время начала блокировки, сообщение для пользователей и код разрешения — строку, с которой можно войти в базу несмотря на блокировку (например, для запуска обновления конфигурации). Параметр запуска /UC код позволяет администратору зайти в заблокированную базу.
В типовых конфигурациях аналогичная функция есть в интерфейсе: «Администрирование» → «Обслуживание» → «Блокировка работы пользователей». Она устанавливает блокировку на заданный период и может автоматически завершать активные сеансы с отсрочкой, давая пользователям время сохранить данные.
Программное завершение сеансов через COM и код
Когда баз много или операцию нужно автоматизировать (например, в скрипте ночного обновления), сеансы завершают программно через COM-объект V83.COMConnector и интерфейс администрирования кластера. Скрипт подключается к агенту сервера, получает список сеансов по конкретной базе и вызывает метод завершения для каждого.
Типовой сценарий на встроенном языке 1С выглядит так: создаётся COMConnector, через него — агент сервера, выполняется аутентификация администратора кластера, перебираются рабочие процессы и их сеансы, отфильтрованные по имени информационной базы, и для каждого вызывается метод Terminate. Для запуска из командной строки удобно обернуть логику в обработку или использовать PowerShell с тем же COM-интерфейсом.
// Упрощённый скелет завершения сеансов через COM
Коннектор = Новый COMОбъект("V83.COMConnector");
Агент = Коннектор.ConnectAgent("ИмяСервера:1540");
Кластеры = Агент.GetClusters();
Агент.Authenticate(Кластеры[0], "АдминистраторКластера", "Пароль");
Процессы = Агент.GetWorkingProcesses(Кластеры[0]);
Для Каждого Процесс Из Процессы Цикл
Агент.Authenticate(Процесс, "", "");
Базы = Агент.GetInfoBases(Процесс);
// найти базу, получить сеансы, вызвать Terminate для каждого
КонецЦикла;Внутри самой базы завершить чужие сеансы штатным встроенным языком нельзя — метод ПолучитьСеансыИнформационнойБазы() позволяет только получить информацию, а не завершить сеанс. Исключение — типовые механизмы БСП («Завершение работы пользователей»), которые внутри используют административное подключение к кластеру и требуют параметров подключения к серверу.
Завершение сеансов в файловой базе
В файловом режиме кластера нет, поэтому инструменты другие. Самый безопасный путь — через интерфейс: «Администрирование» → «Активные пользователи», выделить пользователей и нажать «Завершить сеанс» (в конфигурациях на БСП кнопка доступна при наличии прав администратора). Дополнительно включите «Блокировку работы пользователей», чтобы никто не вошёл заново.
Если доступа в базу нет (например, нужно скопировать файл 1Cv8.1CD, а он занят), сеансы держат открытые клиентские приложения на компьютерах пользователей. Варианты: попросить всех выйти, завершить процессы 1cv8.exe на терминальном сервере через диспетчер задач или перезапустить общий сетевой ресурс. Если база опубликована через веб-сервер или сервер 1С в файловом режиме, сеансы завершаются на стороне этого сервера — перезапуском службы агента или пула приложений.
Проверка результата и типичные ошибки
После завершения сеансов обновите список в консоли кластера: должны остаться либо ноль сеансов, либо только ваш сеанс администратора. Затем проверьте саму цель операции — попробуйте установить монопольный режим или запустить обновление конфигурации. Если появляется сообщение, что база занята, значит, остался незамеченный сеанс: чаще всего фоновое задание, COM-соединение от интеграции или сеанс, созданный веб-сервисом.
Отдельно проверьте, что блокировка сеансов действительно активна: попробуйте войти в базу без кода разрешения — вход должен быть отклонён с вашим сообщением. После завершения регламентных работ не забудьте снять блокировку и уведомить пользователей, иначе утром никто не сможет начать работу.
Частые вопросы
Пользователь вышел из 1С, но сеанс в консоли кластера остался. Это нормально?
Да, «спящие» сеансы могут жить некоторое время после закрытия клиента — кластер завершает их по таймауту. Такие сеансы безопасно удалять вручную: данных пользователь уже не потеряет, а монопольный режим они освободят сразу.
Чем удаление сеанса отличается от удаления соединения?
Сеанс — это логическая сессия пользователя в информационной базе, соединение — техническая связь с рабочим процессом кластера. Для освобождения базы удалять нужно именно сеансы: при удалении соединения сеанс может сохраниться и продолжить блокировать монопольный режим.
Можно ли завершить все сеансы, кроме своего?
Да. В консоли кластера выделите все сеансы, кроме собственного (его видно по имени пользователя и приложению). В программных сценариях отфильтруйте текущий сеанс по номеру или пользователю, чтобы не отключить самого себя в середине операции.
Как закрыть сеансы, если нет доступа к консоли кластера?
Используйте типовую обработку «Блокировка работы пользователей» внутри базы — она завершает сеансы с отсрочкой. Либо выполните скрипт через V83.COMConnector с учётной записью администратора кластера с любого компьютера, где установлена компонента COM-соединения.
Потеряют ли пользователи данные при принудительном завершении?
Да, всё несохранённое пропадёт: открытые незаписанные документы, настройки отчётов, введённые строки. Записанные в базу объекты не пострадают. Чтобы минимизировать потери, используйте блокировку с отсрочкой и сообщением пользователям о времени отключения.
Нужно ли завершать сеансы перед резервным копированием?
Для файловой базы — обязательно: копирование занятого файла 1Cv8.1CD даст неконсистентную копию. Для клиент-серверной базы штатное средство СУБД (например, backup в MS SQL или PostgreSQL) делает согласованную копию без выгона пользователей, но перед обновлением конфигурации сеансы завершать всё равно придётся.
Что важно запомнить
Сначала блокируйте новые соединения, потом завершайте сеансы — в консоли кластера, через типовую блокировку или скриптом. Проверяйте фоновые задания и COM-подключения, предупреждайте пользователей и не забывайте снять блокировку после работ.