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

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

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

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

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

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

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

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

Регламентное задание — это объект метаданных с расписанием: платформа сама запускает его в заданное время. Фоновое задание — это экземпляр исполнения: оно создаётся либо регламентным заданием по расписанию, либо программно методом ФоновыеЗадания.Выполнить(). Когда администратор говорит «отключить фоновые задания», чаще всего речь идёт о запрете запуска регламентных заданий, потому что именно они порождают большинство фоновых процессов.

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

Способ 1. Блокировка регламентных заданий в консоли кластера

Это штатный и самый безопасный способ остановить запуск заданий на уровне всей информационной базы. Откройте консоль управления серверами 1С (оснастка «Центральные серверы 1С:Предприятия»), разверните нужный кластер, перейдите в ветку «Информационные базы» и откройте свойства требуемой базы.

В окне свойств установите флажок «Блокировка регламентных заданий включена» и нажмите «ОК». С этого момента планировщик кластера не будет запускать регламентные задания этой базы. Сама база остаётся доступной пользователям — блокируется только механизм расписаний.

Порядок действий
  1. 1
    Откройте консоль кластера серверов 1С и найдите нужную информационную базу
  2. 2
    Откройте свойства базы и включите флаг «Блокировка регламентных заданий включена»
  3. 3
    Перейдите в список сеансов и найдите сеансы с типом «Фоновое задание»
  4. 4
    Завершите активные фоновые сеансы через контекстное меню, если они не должны доработать
  5. 5
    Проверьте через 10–15 минут, что новые фоновые сеансы не появляются

Учтите ограничение: задания, которые уже выполняются в момент включения блокировки, не прерываются. Они доработают до конца, если их не завершить вручную. Для длительных обменов это может занять десятки минут.

Способ 2. Завершение конкретного фонового задания

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

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

Способ 3. Отключение через консоль заданий или код

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

Программно управление выполняется через менеджер фоновых заданий. Найти активные задания и отменить нужное можно так:

bsl
МассивЗаданий = ФоновыеЗадания.ПолучитьФоновыеЗадания(Новый Структура("Состояние", СостояниеФоновогоЗадания.Активно));
Для Каждого Задание Из МассивЗаданий Цикл
    Если Задание.ИмяМетода = "ОбменДаннымиССайтом" Тогда
        Задание.Отменить();
    КонецЕсли;
КонецЦикла;

Отдельно можно отключить конкретное регламентное задание через менеджер регламентных заданий: получить объект по имени метода, установить Использование = Ложь и записать. Этот способ сохраняется в базе и действует постоянно, в отличие от временной блокировки в консоли кластера.

Способ 4. Ограничения на уровне СУБД и службы агента

В экстренных ситуациях, когда консоль кластера недоступна или кластер перегружен, запуск заданий можно остановить грубее. Остановка службы «Агент сервера 1С:Предприятия» останавливает кластер целиком — включая пользовательские сеансы, поэтому это мера последнего шага. Более мягкий вариант — на стороне СУБД завершить сессии, порождённые фоновыми заданиями: в MS SQL Server это делается через Activity Monitor или командой KILL по идентификатору сессии, в PostgreSQL — функцией pg_terminate_backend.

Такие действия оставляют на стороне кластера «подвисшие» фоновые задания, которые платформа позже пометит как завершённые с ошибкой. Это допустимо как аварийная мера, но не как штатный способ управления.

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

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

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

Консоль заданий БСП / код

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

Завершение сеанса в консоли

Снимает конкретное активное задание. Не предотвращает повторный запуск по расписанию.

Операции на СУБД

Аварийный вариант при недоступной консоли. Грубо, оставляет мусорные состояния, требует прав администратора СУБД.

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

Первый признак — в консоли кластера в списке сеансов информационной базы перестают появляться новые сеансы с типом «Фоновое задание». Понаблюдайте за списком 10–15 минут: частые задания (например, обмены каждые 5 минут) проявились бы в этот период.

Второй контроль — журнал регистрации. Включите отбор по событию «Фоновое задание» и убедитесь, что новых записей о запуске нет, а по отменённым заданиям зафиксированы события отмены или ошибки. Третий признак — снижение нагрузки: утилизация процессора процессом rphost и число активных сессий на СУБД возвращаются к обычному уровню.

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

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

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

Нет новых сеансов «Фоновое задание» в течение 10–15 минут

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

Сеансы продолжают появляться — блокировка не включена или задания запускаются программно

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

Нет событий запуска фоновых заданий после отключения

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

Записи о запуске продолжают появляться

Нагрузка на сервер
Норма

Загрузка CPU процессом rphost и активность СУБД снизились

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

Нагрузка прежняя — ищите активное зависшее задание или запуски из кода

Типичные ошибки и ограничения

Самая частая ошибка — включить блокировку регламентных заданий и забыть о ней. Через неделю выясняется, что не выполнялись обмены, не обновлялись курсы валют и не рассчитывались итоги. Всегда фиксируйте, кто и зачем включил блокировку, и ставьте напоминание о её снятии.

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

Типичные ошибки
01
Включили блокировку и забыли снять — регламентные операции (обмены, расчёты, рассылки) молча не выполняются
02
Ожидание, что блокировка остановит программные вызовы ФоновыеЗадания.Выполнить — они продолжают работать
03
Завершение сеанса зависшего задания без анализа — обмен может остаться в частично выполненном состоянии
04
Перезапуск rphost в рабочее время — обрыв сеансов всех пользователей процесса

Когда отключать задания обязательно

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

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

Маршрут решения

Как выбрать действие

Нужно на время обновления или диагностики остановить все задания базыВключите блокировку регламентных заданий в свойствах базы в консоли кластера
Мешает одно конкретное заданиеСнимите флаг «Используется» у задания в консоли заданий или кодом
Задание зависло и не отвечаетЗавершите сеанс в консоли кластера; при безрезультатности — перезапустите rphost вне рабочего времени
Восстанавливаете копию базы на другом сервереВключите блокировку сразу после восстановления, до первого запуска пользователей
Итог

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

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

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

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

Нет. Блокировка запрещает только новые запуски по расписанию. Активные задания доработают до конца; если нужно прервать их немедленно, завершите соответствующие сеансы в консоли кластера или отмените задание программно.

Как отключить одно задание, не трогая остальные?

В типовых конфигурациях откройте обработку «Регламентные и фоновые задания» в разделе администрирования и снимите флаг «Используется» у нужного задания. Либо программно: получите задание через РегламентныеЗадания.НайтиПоНаименованию или по уникальному идентификатору, установите Использование = Ложь и запишите.

Почему после блокировки фоновые сеансы всё равно появляются?

Значит, задания запускаются не по расписанию, а программно — из кода конфигурации, расширений или внешних вызовов через COM/HTTP. Проверьте журнал регистрации: в событии запуска видно имя метода. Дальше ищите место вызова ФоновыеЗадания.Выполнить в конфигураторе.

Безопасно ли завершать сеанс фонового задания?

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

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

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

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

Да, если есть доступ в режим предприятия с правами администратора: используйте консоль заданий БСП или выполните код отключения через внешнюю обработку. Полностью заблокировать запуск на уровне базы без консоли кластера нельзя — это свойство хранится в реестре кластера.