Администрирование · 10 мин
Как отключить пользователей 1С по расписанию
Как автоматически отключать пользователей 1С по расписанию: регламентные задания, скрипты кластера, консольные команды rac и внешние обработки. Пошаговая настройка.
Автоматическое отключение пользователей по расписанию нужно перед резервным копированием, обновлением конфигурации, регламентным обслуживанием сервера или в конце рабочего дня, чтобы не оставались «зависшие» сеансы. В 1С нет встроенной кнопки «отключать всех в 23:00», но задача решается несколькими штатными способами: через регламентные задания в самой конфигурации, через консольную утилиту кластера rac с планировщиком Windows и через внешние обработки.
Выбор способа зависит от режима работы базы (файловый или клиент-серверный), от того, нужно ли отключать всех или только выбранных пользователей, и от того, должны ли они получать предупреждение. Ниже разобраны рабочие варианты с точными командами, ограничениями и проверкой результата.
Какой способ отключения выбрать
Прежде чем настраивать расписание, определите три вещи: режим работы информационной базы, кого нужно отключать и допустимо ли принудительное завершение сеансов. От этого зависит и инструмент, и риски.
В клиент-серверном варианте сеансами управляет кластер серверов 1С, поэтому самый надёжный путь — консольная утилита rac или скрипты через COM-connector. В файловом варианте кластера нет, и отключать сеансы можно только изнутри самой базы — кодом на встроенном языке, запущенным регламентным заданием или вручную.
Сравнение вариантов
Подходит для клиент-серверных баз. Работает независимо от того, запущена ли база, надёжно завершает любые сеансы. Требует прав администратора кластера.
Подходит для файловых баз и для мягкого отключения с предупреждением. Ограничение: задание выполняется внутри базы, поэтому не сработает, если сервер 1С остановлен.
Запускается вручную администратором. Хороша как резервный вариант, но по расписанию работает только в связке с регламентным заданием.
Не отключает текущих пользователей, но запрещает новые подключения. Используется вместе с отключением перед обновлением.
Отключение через утилиту rac и планировщик Windows
Это основной способ для клиент-серверных баз. Утилита rac входит в состав сервера 1С:Предприятия и обычно находится в каталоге вида C:\Program Files\1cv8\<версия>\bin\rac.exe. Она позволяет получить список сеансов и завершить их принудительно.
Логика настройки такая: сначала создаётся bat-файл, который подключается к кластеру, получает список сеансов нужной базы и завершает каждый из них. Затем этот файл ставится на расписание в планировщике заданий Windows — например, на 22:30 каждый будний день.
rac session --cluster=<ID_кластера> terminate --cluster-user=АдминКластера --cluster-pwd=Пароль --infobase=<ID_базы>Идентификаторы кластера и базы получают командами rac cluster list и rac infobase summary list. Если учётная запись администратора кластера не задана, параметры --cluster-user и --cluster-pwd можно опустить.
- 1Узнайте ID кластера: rac cluster list
- 2Узнайте ID базы: rac infobase --cluster=<ID> summary list
- 3Создайте bat-файл с командой session terminate
- 4Протестируйте файл вручную в нерабочее время
- 5Откройте планировщик заданий Windows и создайте задачу на нужное время
- 6Укажите запуск от учётной записи с правами администратора сервера
- 7Проверьте журнал выполнения задачи на следующий день
Для массового завершения часто пишут скрипт, который в цикле обрабатывает вывод rac session list и завершает каждый сеанс по его ID. Готовые примеры таких скриптов на bat и PowerShell широко доступны; важно адаптировать их под свою версию платформы и проверить на тестовой базе.
Отключение изнутри базы: регламентное задание
Если база файловая или нужно «мягкое» отключение с предупреждением, задачу решают кодом на встроенном языке. Создаётся регламентное задание, которое по расписанию получает список активных сеансов через ПолучитьСеансыИнформационнойБазы() и завершает их.
У объекта сеанса есть метод ПрерватьСеансИнформационнойБазы() (в современных версиях — метод объекта СеансИнформационнойБазы.ПрерватьСеанс()), который завершает сеанс принудительно. Важно исключить из обработки текущий сеанс самого задания, иначе оно прервёт само себя.
Для предупреждения пользователей за 10–15 минут до отключения используют функцию ОтправитьСообщениеПользователю() или механизм оповещений — пользователи видят сообщение и успевают сохранить документы. Многие типовые конфигурации и расширения уже содержат подобный механизм «завершения работы пользователей».
Блокировка новых подключений и предупреждение пользователей
Отключение по расписанию почти всегда связано с последующими работами — обновлением или архивацией. Чтобы пользователи не зашли обратно сразу после отключения, на базу устанавливают блокировку сеансов. В клиент-серверном варианте это делается в консоли кластера: свойства информационной базы → параметр «Блокировка регламентных заданий включена» и «Блокировка начала сеансов включена» с указанием времени и сообщения.
В сообщении блокировки укажите причину и ориентировочное время окончания работ, например: «Идёт обновление конфигурации, база будет доступна до 23:30». Это снимет большинство вопросов пользователей и звонков администратору.
Тот же параметр блокировки доступен через rac командой rac infobase update с параметрами --sessions-deny и --denied-message, что позволяет включать блокировку тем же скриптом по расписанию, что и отключение.
Проверка результата и контроль зависших сеансов
После срабатывания расписания убедитесь, что сеансы действительно завершены. В клиент-серверном варианте откройте консоль кластера, раздел «Сеансы» нужной базы — список должен быть пуст или содержать только служебные сеансы. Альтернатива — команда rac session list.
Отдельная проблема — «зависшие» сеансы, которые числятся в кластере, хотя пользователь давно закрыл программу. Они мешают обновлению и занимают лицензии. Для борьбы с ними в свойствах информационной базы настраивают параметры «Интервал перезапуска» и «Допустимый объём памяти», а также время ожидания завершения сеанса. Регулярное принудительное отключение по расписанию частично решает и эту задачу.
Как проверить результат
Пользовательских сеансов нет, остались только служебные
Сеансы на месте — задача планировщика не выполнилась или неверные ID кластера/базы
Статус «Задача успешно завершена», код 0
Код ошибки — проверяйте путь к rac, права учётной записи и пароль
При блокировке сеансов пользователь видит сообщение о запрете
Пользователь спокойно заходит — блокировка не установлена
Есть записи о завершении сеансов в нужное время
Записей нет — регламентное задание не запускалось
Типичные ошибки при настройке
Чаще всего автоматическое отключение не срабатывает из-за мелочей в настройке, а не из-за самого механизма. Ниже — ошибки, которые встречаются регулярно.
Ещё одна ошибка — забыть снять блокировку после завершения работ. Утром пользователи не могут войти, и администратор получает поток обращений. Добавьте в тот же планировщик задачу на снятие блокировки или снимайте её в конце скрипта обновления.
FAQ
Можно ли отключать не всех, а только выбранных пользователей?
Да. В скрипте rac фильтруйте вывод rac session list по имени пользователя, а в коде на встроенном языке — по свойству ИмяПользователя объекта сеанса. Так можно, например, оставлять работать отдел закрытия месяца, отключая остальных.
Работает ли отключение по расписанию в файловой базе?
Напрямую через rac — нет, кластера в файловом режиме нет. Используйте регламентное задание внутри базы с принудительным прерыванием сеансов либо закрывайте доступ к файлу базы на уровне файлового сервера, что менее безопасно.
Что будет с несохранёнными данными пользователей при принудительном отключении?
Незавершённые транзакции откатятся, несохранённые документы будут потеряны. Поэтому перед отключением обязательно отправляйте предупреждение и по возможности выполняйте отключение в нерабочее время.
Нужно ли отключать фоновые и регламентные задания вместе с сеансами?
Зависит от цели. Перед обновлением конфигурации фоновые задания тоже должны быть остановлены — для этого в свойствах базы включают «Блокировка регламентных заданий». Сеансы фоновых заданий завершаются вместе с остальными при использовании rac.
Как отключить пользователей, если база в облачном сервисе 1С:Фреш?
В облачном сервисе доступа к кластеру и rac нет. Используйте штатные механизмы сервиса: в типовых конфигурациях есть функция завершения работы пользователей, а регламентные окна обслуживания задаются через менеджер сервиса.
Почему после отключения в списке сеансов снова появляются пользователи?
Клиентские приложения с включённым автоподключением переподключаются автоматически. Чтобы этого не происходило, одновременно с отключением устанавливайте блокировку начала сеансов на базе.
Что важно запомнить
Штатного расписания отключения в 1С нет: для клиент-серверных баз используйте rac с планировщиком Windows, для файловых — регламентное задание внутри базы. Всегда предупреждайте пользователей заранее, включайте блокировку новых сеансов и проверяйте результат по списку сеансов и журналу планировщика.