Администрирование · 9 мин
Как заблокировать фоновые задания в 1С
Как заблокировать фоновые задания в 1С: отключение регламентных заданий через консоль, конфигуратор и код. Блокировка сеансов, проверка результата и типичные ошибки администраторов.
Фоновые задания в 1С выполняют регламентные операции: обмен данными, расчёт итогов, загрузку курсов валют, синхронизацию с сайтом. Иногда их нужно остановить — например, при обновлении конфигурации, восстановлении базы из копии, диагностике нагрузки или когда задание «зависло» и блокирует ресурсы сервера.
Способ блокировки зависит от режима работы базы (файловый или клиент-серверный), от того, нужно ли остановить одно задание или все сразу, и от того, есть ли у вас доступ к консоли кластера. Ниже разобраны все основные методы — от штатных настроек до программного отключения через код.
Прежде чем блокировать задания, убедитесь, что вы понимаете, какие процессы будут остановлены: отключение регламентных заданий обмена или расчёта итогов может привести к неактуальным данных в отчётах и сбоям в интеграциях.
Какие задания бывают и что именно нужно блокировать
В платформе 1С существует два связанных, но разных механизма. Регламентные задания — это расписание: они описаны в конфигурации и запускаются по расписанию (каждые 10 минут, раз в день и т.д.). Фоновые задания — это конкретные исполняемые экземпляры: когда регламентное задание срабатывает, платформа создаёт фоновое задание, которое и выполняет код.
Блокировать можно на двух уровнях. Блокировка регламентных заданий запрещает запуск новых фоновых заданий по расписанию, но не прерывает те, что уже выполняются. Завершение сеансов фоновых заданий принудительно останавливает уже работающие процессы. Для полной остановки обычно нужны оба действия.
Блокировка через консоль кластера серверов
Это основной способ для клиент-серверного режима. Откройте консоль администрирования серверов 1С (оснастка «Центральные серверы 1С:Предприятие»), найдите нужную информационную базу в ветке кластера, откройте её свойства через контекстное меню.
В окне свойств установите флажок «Блокировка регламентных заданий включена» и нажмите «ОК». С этого момента новые фоновые задания по расписанию запускаться не будут. Уже выполняющиеся задания продолжат работу — их нужно завершать отдельно через список сеансов.
Чтобы остановить активные фоновые задания, откройте в консоли список сеансов базы, найдите сеансы с типом «Фоновое задание» и завершите их через контекстное меню. Делайте это аккуратно: принудительное прерывание задания на середине транзакции может оставить данные в промежуточном состоянии, если разработчик не предусмотрел откат.
- 1Откройте консоль администрирования серверов 1С и раскройте нужный кластер
- 2Найдите информационную базу и откройте её свойства
- 3Установите флажок «Блокировка регламентных заданий включена»
- 4Откройте список сеансов и завершите сеансы типа «Фоновое задание»
- 5После завершения работ снимите блокировку тем же способом
Блокировка в файловом режиме
В файловых базах консоли кластера нет, поэтому используются другие инструменты. Самый распространённый — типовая обработка «Регламентные и фоновые задания» (в конфигурациях на БСП: раздел «Администрирование» → «Обслуживание» → «Регламентные операции»). Там можно открыть конкретное задание и снять флажок «Используется» — задание перестанет запускаться.
Для массового отключения удобна внешняя обработка «Консоль заданий» с диска информационно-технологического сопровождения (ИТС). Она показывает все регламентные и активные фоновые задания, позволяет отключать их пакетно и прерывать выполняющиеся.
Учтите особенность файлового режима: фоновые задания там выполняются в отдельном процессе на компьютере, где запущен сеанс, обслуживающий задания. Если базу открывают несколько пользователей, выполнение заданий может «привязываться» к конкретному сеансу — при его закрытии задания остановятся.
Программная блокировка через встроенный язык
Для автоматизации (например, отключения заданий при копировании боевой базы в тестовую) используются методы встроенного языка. Отключить конкретное регламентное задание можно так:
Задание = РегламентныеЗадания.НайтиПредопределенное("ОбменДанными");
Задание.Использование = Ложь;
Задание.Записать();Для перебора и отключения всех регламентных заданий используйте метод РегламентныеЗадания.ПолучитьРегламентныеЗадания() и в цикле установите каждому свойство Использование = Ложь с последующим вызовом Записать(). Это безопасно: настройка сохраняется в базе, и задания можно так же программно включить обратно.
Прервать выполняющееся фоновое задание программно можно методом Отменить() у объекта фонового задания, полученного через ФоновыеЗадания.ПолучитьФоновыеЗадания() с отбором по состоянию «Активно». Учтите, что отмена не мгновенна: задание завершится в ближайшей точке, где платформа сможет его прервать.
Блокировка при обновлении конфигурации
Частая задача — остановить все фоновые процессы перед обновлением конфигурации базы. Платформа сама требует завершения сеансов при монопольном обновлении, но фоновые задания могут перезапускаться, пока идёт подготовка.
Надёжная последовательность: сначала включите блокировку регламентных заданий в свойствах базы в консоли кластера, затем установите блокировку сеансов (в тех же свойствах базы — «Блокировка начала сеансов включена» с указанием времени), дождитесь завершения текущих заданий или завершите их вручную, и только потом запускайте обновление.
После успешного обновления не забудьте снять обе блокировки. Забытая блокировка регламентных заданий — одна из самых частых причин «молчаливых» сбоев: обмены не работают, курсы валют не загружаются, а пользователи замечают это спустя дни.
Проверка результата и типичные ошибки
После блокировки проверьте, что задания действительно не выполняются. В консоли кластера список сеансов не должен пополняться новыми сеансами «Фоновое задание». В журнале регистрации не должно быть новых событий запуска фоновых заданий. В типовой консоли заданий все регламентные задания должны иметь состояние «Не используется» или отсутствие активных выполнений.
Как проверить результат
Нет новых сеансов типа «Фоновое задание»
Новые фоновые сеансы появляются по расписанию
Нет записей о запуске фоновых заданий после блокировки
Записи о запуске продолжают появляться
Флажок «Используется» снят, заданий в состоянии «Выполняется» нет
Задания остаются активными или зависли в состоянии «Выполняется»
Частые вопросы
Чем отличается блокировка регламентных заданий от блокировки сеансов?
Блокировка регламентных заданий запрещает только запуск фоновых заданий по расписанию — пользователи продолжают работать. Блокировка сеансов запрещает подключение к базе вообще. Для остановки фоновых процессов обычно достаточно первой; вторая нужна при обновлении конфигурации.
Почему задание продолжает запускаться после отключения?
Скорее всего, вы завершили сеанс фонового задания, но не отключили само регламентное задание — по расписанию платформа создаёт новый сеанс. Также проверьте, не работаете ли вы с другой копией базы: настройка использования задания хранится в конкретной информационной базе.
Как отключить все фоновые задания в копии базы для тестирования?
После восстановления копии включите блокировку регламентных заданий в свойствах базы (для серверного режима) или выполните код, перебирающий все регламентные задания и устанавливающий Использование = Ложь. Это предотвратит случайную отправку данных в реальные системы из тестовой копии.
Что делать, если фоновое задание зависло и не завершается?
Сначала попробуйте завершить его сеанс через консоль кластера. Если сеанс не завершается, перезапустите службу агента сервера 1С или рабочий процесс кластера, на котором выполняется задание. После этого проверьте журнал регистрации на предмет ошибок, вызвавших зависание.
Опасно ли отключать регламентные задания в рабочей базе?
Механически — безопасно, настройка обратима. Но функционально отключение критичных заданий (обменов, расчёта итогов, загрузки данных) приводит к неактуальным данным. Перед отключением выясните, какие бизнес-процессы зависят от конкретного задания, и предупредите ответственных пользователей.
Что важно запомнить
Для серверных баз блокируйте задания через свойства информационной базы в консоли кластера, для файловых — через консоль заданий или код. Блокировка не останавливает уже выполняющиеся задания — их сеансы завершайте отдельно. После работ обязательно снимайте блокировку и проверяйте по журналу регистрации, что задания снова запускаются.