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

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

Как отключить пользователей 1С по расписанию

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

Автоматическое отключение пользователей по расписанию нужно перед резервным копированием, обновлением конфигурации, регламентным обслуживанием сервера или в конце рабочего дня, чтобы не оставались «зависшие» сеансы. В 1С нет встроенной кнопки «отключать всех в 23:00», но задача решается несколькими штатными способами: через регламентные задания в самой конфигурации, через консольную утилиту кластера rac с планировщиком Windows и через внешние обработки.

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

Какой способ отключения выбрать

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

В клиент-серверном варианте сеансами управляет кластер серверов 1С, поэтому самый надёжный путь — консольная утилита rac или скрипты через COM-connector. В файловом варианте кластера нет, и отключать сеансы можно только изнутри самой базы — кодом на встроенном языке, запущенным регламентным заданием или вручную.

Сравнение вариантов

Утилита rac + планировщик Windows

Подходит для клиент-серверных баз. Работает независимо от того, запущена ли база, надёжно завершает любые сеансы. Требует прав администратора кластера.

Регламентное задание в конфигурации

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

Внешняя обработка отключения

Запускается вручную администратором. Хороша как резервный вариант, но по расписанию работает только в связке с регламентным заданием.

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

Не отключает текущих пользователей, но запрещает новые подключения. Используется вместе с отключением перед обновлением.

Отключение через утилиту rac и планировщик Windows

Это основной способ для клиент-серверных баз. Утилита rac входит в состав сервера 1С:Предприятия и обычно находится в каталоге вида C:\Program Files\1cv8\<версия>\bin\rac.exe. Она позволяет получить список сеансов и завершить их принудительно.

Логика настройки такая: сначала создаётся bat-файл, который подключается к кластеру, получает список сеансов нужной базы и завершает каждый из них. Затем этот файл ставится на расписание в планировщике заданий Windows — например, на 22:30 каждый будний день.

bat
rac session --cluster=<ID_кластера> terminate --cluster-user=АдминКластера --cluster-pwd=Пароль --infobase=<ID_базы>

Идентификаторы кластера и базы получают командами rac cluster list и rac infobase summary list. Если учётная запись администратора кластера не задана, параметры --cluster-user и --cluster-pwd можно опустить.

Настройка отключения через rac
  1. 1
    Узнайте ID кластера: rac cluster list
  2. 2
    Узнайте ID базы: rac infobase --cluster=<ID> summary list
  3. 3
    Создайте bat-файл с командой session terminate
  4. 4
    Протестируйте файл вручную в нерабочее время
  5. 5
    Откройте планировщик заданий Windows и создайте задачу на нужное время
  6. 6
    Укажите запуск от учётной записи с правами администратора сервера
  7. 7
    Проверьте журнал выполнения задачи на следующий день

Для массового завершения часто пишут скрипт, который в цикле обрабатывает вывод rac session list и завершает каждый сеанс по его ID. Готовые примеры таких скриптов на bat и PowerShell широко доступны; важно адаптировать их под свою версию платформы и проверить на тестовой базе.

Отключение изнутри базы: регламентное задание

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

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

Для предупреждения пользователей за 10–15 минут до отключения используют функцию ОтправитьСообщениеПользователю() или механизм оповещений — пользователи видят сообщение и успевают сохранить документы. Многие типовые конфигурации и расширения уже содержат подобный механизм «завершения работы пользователей».

Блокировка новых подключений и предупреждение пользователей

Отключение по расписанию почти всегда связано с последующими работами — обновлением или архивацией. Чтобы пользователи не зашли обратно сразу после отключения, на базу устанавливают блокировку сеансов. В клиент-серверном варианте это делается в консоли кластера: свойства информационной базы → параметр «Блокировка регламентных заданий включена» и «Блокировка начала сеансов включена» с указанием времени и сообщения.

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

Тот же параметр блокировки доступен через rac командой rac infobase update с параметрами --sessions-deny и --denied-message, что позволяет включать блокировку тем же скриптом по расписанию, что и отключение.

Проверка результата и контроль зависших сеансов

После срабатывания расписания убедитесь, что сеансы действительно завершены. В клиент-серверном варианте откройте консоль кластера, раздел «Сеансы» нужной базы — список должен быть пуст или содержать только служебные сеансы. Альтернатива — команда rac session list.

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

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

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

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

Пользовательских сеансов нет, остались только служебные

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

Сеансы на месте — задача планировщика не выполнилась или неверные ID кластера/базы

Журнал планировщика заданий Windows
Норма

Статус «Задача успешно завершена», код 0

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

Код ошибки — проверяйте путь к rac, права учётной записи и пароль

Повторный вход пользователя
Норма

При блокировке сеансов пользователь видит сообщение о запрете

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

Пользователь спокойно заходит — блокировка не установлена

Журнал регистрации 1С
Норма

Есть записи о завершении сеансов в нужное время

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

Записей нет — регламентное задание не запускалось

Типичные ошибки при настройке

Чаще всего автоматическое отключение не срабатывает из-за мелочей в настройке, а не из-за самого механизма. Ниже — ошибки, которые встречаются регулярно.

Типичные ошибки
01
Неверный ID кластера или базы в скрипте — команда отрабатывает без ошибок, но завершает сеансы не той базы. Всегда проверяйте ID командами list после обновления платформы или пересоздания базы.
02
Запуск задачи планировщика от учётной записи без прав — скрипт не может подключиться к кластеру. Задавайте запуск от сервисной учётной записи администратора сервера 1С.
03
Отключение без предупреждения — пользователи теряют несохранённые документы. Добавляйте рассылку предупреждения за 10–15 минут.
04
Отключение сеансов без блокировки новых подключений — пользователи заходят обратно, и обновление всё равно невозможно.
05
Регламентное задание отключает и свой собственный сеанс — задание падает с ошибкой. Исключайте текущий сеанс в коде.

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

FAQ

Можно ли отключать не всех, а только выбранных пользователей?

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

Работает ли отключение по расписанию в файловой базе?

Напрямую через rac — нет, кластера в файловом режиме нет. Используйте регламентное задание внутри базы с принудительным прерыванием сеансов либо закрывайте доступ к файлу базы на уровне файлового сервера, что менее безопасно.

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

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

Нужно ли отключать фоновые и регламентные задания вместе с сеансами?

Зависит от цели. Перед обновлением конфигурации фоновые задания тоже должны быть остановлены — для этого в свойствах базы включают «Блокировка регламентных заданий». Сеансы фоновых заданий завершаются вместе с остальными при использовании rac.

Как отключить пользователей, если база в облачном сервисе 1С:Фреш?

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

Почему после отключения в списке сеансов снова появляются пользователи?

Клиентские приложения с включённым автоподключением переподключаются автоматически. Чтобы этого не происходило, одновременно с отключением устанавливайте блокировку начала сеансов на базе.

Итог

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

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