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

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

Как отключить фоновые задания в базе 1С

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

Фоновые задания в 1С выполняются без участия пользователя: обмены данными, расчёт итогов, отправка отчётности, полнотекстовое индексирование, загрузка курсов валют. Иногда их нужно отключить — например, при восстановлении базы из копии, при переносе на тестовый сервер, при отладке или когда задание зависло и блокирует работу пользователей.

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

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

Когда отключение фоновых заданий действительно необходимо

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

Стандартные ситуации, когда задания отключают: восстановление копии базы в тестовую среду (чтобы тестовая копия не начала отправлять реальные письма, обмениваться с банками и сайтами), аварийная остановка зависшего обмена, регламентные работы на сервере СУБД, диагностика падения производительности.

Отключение через типовые средства конфигурации

В большинстве типовых конфигураций (БСП — библиотека стандартных подсистем) есть встроенный интерфейс управления заданиями. Путь зависит от конфигурации, обычно это: «Администрирование» → «Обслуживание» → «Регламентные операции» → «Регламентные и фоновые задания».

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

В том же разделе на вкладке «Фоновые задания» видны выполняющиеся сейчас задания. Активное задание можно выделить и нажать «Отменить». Если кнопка недоступна или задание не реагирует, оно завершится только по таймауту либо при перезапуске сервера 1С (в клиент-серверном варианте) или при завершении сеанса-владельца (в файловом).

Порядок действий в типовой конфигурации
  1. 1
    Откройте «Администрирование» → «Обслуживание» → «Регламентные и фоновые задания»
  2. 2
    На вкладке «Регламентные задания» снимите флаг «Используется» у нужных заданий
  3. 3
    На вкладке «Фоновые задания» отфильтруйте активные задания
  4. 4
    Выделите выполняющееся задание и нажмите «Отменить»
  5. 5
    Проверьте журнал регистрации: новых записей о запуске заданий быть не должно

Отключение через консоль заданий

Если в конфигурации нет типового раздела или нужен расширенный контроль, используется внешняя обработка «Консоль заданий» с диска ИТС или из состава инструментов разработчика. Она открывается через «Файл» → «Открыть» в режиме Предприятия под пользователем с полными правами.

Консоль показывает два списка: регламентные задания (с возможностью включать, отключать, менять расписание) и фоновые задания (с возможностью отмены выполняющихся). Преимущество консоли — она работает с любой конфигурацией и показывает технические детали: ключ задания, имя метода, состояние, время начала.

Обратите внимание на колонку «Предопределенное»: предопределённые регламентные задания зашиты в конфигуратор, их нельзя удалить, но можно отключить флагом использования. Непредопределённые (созданные программно или вручную) можно полностью удалить.

Полная блокировка регламентных заданий на уровне базы

Клиент-серверный вариант

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

Это самый безопасный способ для тестовых копий: блокировка действует на уровне сервера, и её нельзя «случайно» обойти из клиентского приложения. Уже выполняющиеся фоновые задания при этом не прерываются — их нужно отменить отдельно или принудительно завершить сеансы в консоли кластера.

Файловый вариант

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

Дополнительно можно программно установить блокировку: при открытии базы выполнить код установки параметра сеанса или использовать механизм «Блокировка установки соединений» в типовых конфигурациях, где есть отдельная настройка запрета регламентных заданий.

Программное отключение через встроенный язык

Администраторы и разработчики могут управлять заданиями кодом. Это удобно для автоматизации: например, процедура, которая при первом запуске восстановленной копии отключает все регламентные задания разом.

bsl
// Отключить все регламентные задания
МассивЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
Для Каждого Задание Из МассивЗаданий Цикл
    Задание.Использование = Ложь;
    Задание.Записать();
КонецЦикла;

// Отменить выполняющееся фоновое задание по UUID
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Новый УникальныйИдентификатор("..."));
Если ФоновоеЗадание <> Неопределено Тогда
    ФоновоеЗадание.Отменить();
КонецЕсли;

Метод Отменить() работает только если задание написано с учётом прерывания или находится в точке, где платформа может его остановить. Задание, выполняющее длинный запрос к СУБД, прервётся только после завершения запроса. Фильтровать задания можно через ФоновыеЗадания.ПолучитьФоновыеЗадания() с отбором по состоянию «Активно».

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

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

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

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

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

Флаг «Используется» у регламентного задания
Норма

Флаг снят, задание в списке неактивно

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

Флаг снова установлен — задание включается кодом или другим администратором

Список фоновых заданий
Норма

Нет заданий в состоянии «Активно»

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

Задание висит в состоянии «Активно» после отмены — требуется завершение сеанса

Журнал регистрации за 15–30 минут
Норма

Нет новых записей о запуске регламентных заданий

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

Появляются записи о запуске — блокировка не сработала

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

Включена блокировка регламентных заданий

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

Флаг снят — блокировку отменил другой администратор кластера

Типичные ошибки и их последствия

Типичные ошибки
01
Отключили регламентное задание, но забыли отменить уже идущее фоновое — оно продолжает блокировать данные и нагружать сервер
02
Завершили сеанс фонового задания принудительно во время записи транзакции — возможны незавершённые транзакции и битые ссылки в данных
03
Отключили все задания в рабочей базе и забыли включить обратно — перестали приходить заказы с сайта, не обновляются курсы валют, не формируются резервные копии средствами заданий
04
Удалили предопределённое задание вместо отключения — после обновления конфигурации оно может пересоздаться с настройками по умолчанию
05
Отключили задания только в интерфейсе тестовой копии, но не поставили блокировку в консоли кластера — код при первом запуске включил их обратно

Отдельная частая ситуация — задание «зависло» и не отменяется. В этом случае в клиент-серверном варианте найдите соответствующий сеанс в консоли кластера (тип сеанса «Фоновое задание») и завершите его принудительно. Перед этим убедитесь по журналу регистрации, что задание не находится в середине критичной транзакции записи.

Итог

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

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

Частые вопросы

Чем регламентное задание отличается от фонового?

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

Фоновое задание не отменяется кнопкой «Отменить». Что делать?

Отмена срабатывает, только когда задание достигает точки, где платформа может его прервать. Если задание выполняет длинный запрос к СУБД, дождитесь его завершения или завершите сеанс принудительно: в клиент-серверном варианте — через консоль кластера (список сеансов), в файловом — через завершение соответствующего процесса или перезапуск сеанса-владельца.

Как отключить все задания сразу в копии базы?

Самый надёжный способ для клиент-серверной базы — включить «Блокировка регламентных заданий» в свойствах базы в консоли кластера до первого запуска копии. Дополнительно можно программно пройти по всем регламентным заданиям и установить Использование = Ложь. Только после этого открывайте базу пользователям.

Почему отключенное задание снова стало активным?

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

Опасно ли принудительно завершать фоновое задание?

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

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

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