Регламентные и фоновые задания в 1С 8.3: остановка, расписание и блокировка перед обновлением

· 9 мин

Содержание

Фоновое задание в 1С 8.3 отключают в форме Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Активное задание останавливают кнопкой отмены на вкладке фоновых заданий. Чтобы оно не запустилось снова, снимают флажок «Включено» у породившего его регламентного задания. На время обновления в клиент-серверной базе всё разом выключает флажок «Блокировка регламентных заданий включена» в свойствах базы в консоли кластера.

Путь меню одинаков для типовых конфигураций на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, КА и ERP. Сама механика (регламентные задания, фоновые задания, блокировка в кластере) общая для платформы 8.3 и от конфигурации не зависит.

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

Пользователи часто называют фоновыми заданиями всё, что «крутится само». На деле это два разных объекта, и выключаются они по-разному.

Регламентное заданиеФоновое задание
Что этоПравило: какую процедуру и по какому расписанию запускатьКонкретный запуск процедуры на сервере
Где живётОписано в конфигурации, настройки хранятся в базеСуществует, пока выполняется, плюс след в истории
Как выключитьСнять флажок «Включено» или изменить расписаниеОтменить, если активно
Вернётся лиНет, пока не включите обратноДа, если его снова запустит регламентное задание или пользователь

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

Фоновые задания запускают и сами пользователи. Пример: формирование тяжёлого отчёта, закрытие месяца , проведение документов «в фоне», загрузка выписки. У такого задания нет расписания, его можно только дождаться или отменить.

Что обычно работает в фоне в типовой базе:

  • 💱 загрузка курсов валют и классификаторов;
  • 🏦 обмен с банком через «ДиректБанк»;
  • 🔍 обновление и слияние индекса полнотекстового поиска;
  • 📨 получение почты и обмен ЭДО;
  • 🔄 синхронизация с другими базами;
  • 🧹 удаление устаревших данных и служебные проверки;
  • ⚙️ отложенная обработка данных после обновления версии программы.

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

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

В интерфейсе программы

  1. Откройте Администрирование → Обслуживание.
  2. В группе «Регламентные операции» нажмите ссылку «Регламентные и фоновые задания».
  3. На вкладке «Фоновые задания» посмотрите список запусков. Колонка состояния показывает, что выполняется прямо сейчас, что завершилось и что упало с ошибкой.
  4. Отсортируйте список по дате начала. Задание, которое стартовало давно и до сих пор активно, — первый кандидат на разбор.
  5. Двойной щелчок по строке открывает карточку запуска. У упавших заданий там есть текст ошибки.

Если ссылки нет, у пользователя не хватает прав. Форма доступна с ролью полных прав.

В консоли администрирования кластера

В клиент-серверной базе откройте консоль администрирования серверов 1С и раскройте Кластеры → <кластер> → Информационные базы → <база> → Сеансы. Сеансы фоновых заданий отображаются с приложением «Фоновое задание». Видно, сколько их, сколько времени они работают и сколько вызовов к СУБД сделали.

Из командной строки то же самое показывает утилита rac:

rac cluster list
rac session list --cluster=<uuid-кластера> --infobase=<uuid-базы>

У сеансов фоновых заданий в выводе поле app-id равно BackgroundJob.

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

Порядок действий зависит от того, хотите вы прервать текущий запуск или запретить задание совсем.

Остановить активное задание

  1. Откройте Регламентные и фоновые задания, вкладку «Фоновые задания».
  2. Выделите строку в состоянии «Активно».
  3. Нажмите кнопку отмены задания в командной панели списка.
  4. Обновите список. Состояние сменится на «Отменено».

Отмена не мгновенная. Платформа выставляет флаг, а процедура завершается при ближайшей проверке. Долгий запрос к СУБД дорабатывает до конца. Изменения, которые задание не успело записать в одной транзакции, откатываются.

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

  1. Перейдите на вкладку «Регламентные задания».
  2. Найдите задание по наименованию. Удобно отсортировать по колонке «Включено» или воспользоваться поиском по списку.
  3. Откройте задание двойным щелчком.
  4. Снимите флажок «Включено» и нажмите «Записать и закрыть».

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

Можно ли удалить фоновое задание

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

Записи в истории фоновых заданий удалять незачем. Платформа сама хранит ограниченный объём истории и очищает её.

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

Настройка расписания вместо полного отключения

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

Как изменить расписание:

  1. Откройте регламентное задание в форме Регламентные и фоновые задания.
  2. Нажмите ссылку с текущим расписанием, откроется окно настройки.
  3. На вкладках окна задайте периодичность: дни недели, время начала и окончания, интервал повтора.
  4. Сохраните задание.

Удобные приёмы для расписания:

  • 🌙 тяжёлые задания (полнотекстовый поиск, удаление устаревших данных) — на время с 22:00 до 06:00;
  • 📅 загрузку классификаторов и курсов — один раз в день, утром до начала работы;
  • ⏳ если задание часто падает, задайте в расписании повтор через 10–15 минут и ограничьте число попыток;
  • 🔒 для обменов укажите конкретный период работы, чтобы они не пересекались с закрытием месяца.

Для заданий, которые запускаются по учётным записям (почта, ЭДО, банк), расписание иногда задаётся не в общей форме, а в настройках самой подсистемы. Если в карточке регламентного задания вы видите параметры, привязанные к учётной записи, ищите расписание в настройках обмена.

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

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

Клиент-серверная база: консоль кластера

  1. Откройте консоль администрирования серверов 1С.
  2. Раскройте Кластеры → <кластер> → Информационные базы.
  3. Откройте свойства нужной базы. Консоль попросит логин и пароль администратора информационной базы.
  4. Поставьте флажок «Блокировка регламентных заданий включена».
  5. Если нужно выгнать и пользователей, там же включите блокировку начала сеансов, задайте период и сообщение.
  6. Нажмите «ОК».
  7. Перейдите в раздел «Сеансы» базы и дождитесь, пока сеансы фоновых заданий завершатся. Зависший сеанс можно удалить вручную.

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

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

То же самое через rac

Для скриптов обновления блокировку включают утилитой rac. Сервер администрирования ras должен быть запущен.

rem Включить блокировку регламентных заданий
rac infobase update --cluster=<uuid-кластера> --infobase=<uuid-базы> ^
  --infobase-user=Администратор --infobase-pwd=<пароль> ^
  --scheduled-jobs-deny=on

rem Снять блокировку после обновления
rac infobase update --cluster=<uuid-кластера> --infobase=<uuid-базы> ^
  --infobase-user=Администратор --infobase-pwd=<пароль> ^
  --scheduled-jobs-deny=off

UUID базы берут из вывода rac infobase summary list --cluster=<uuid-кластера>. Полный список параметров показывает rac help infobase.

Файловая база

В файловом варианте нет сервера, который запускал бы задания сам. Регламентные задания выполняет один из клиентских сеансов. Поэтому их достаточно запретить при запуске клиента.

Ключ командной строки клиента:

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /AllowExecuteScheduledJobs -Off
  • -Off — запрет выполнения регламентных заданий в этом сеансе;
  • -Force — принудительно выполнять их в этом сеансе.

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

Встроенное обновление через интерфейс

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

Массовое отключение и автоматизация

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

Для этого подходит внешняя обработка с одной серверной процедурой. Её запускают под пользователем с полными правами через Файл → Открыть.

&НаСервере
Процедура ОтключитьВсеЗаданияНаСервере()

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

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

КонецПроцедуры

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

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

  • 🧪 в каждой копии базы для тестов сразу после развёртывания включайте блокировку регламентных заданий в кластере;
  • 📋 раз в месяц открывайте вкладку «Фоновые задания» и смотрите запуски с ошибками: повторяющийся сбой виден сразу;
  • 🕐 разнесите тяжёлые задания по времени, чтобы они не стартовали одновременно в 00:00;
  • 🔐 не выдавайте сотрудникам полные права ради доступа к этой форме: ошибочное выключение обмена заметят нескоро;
  • 📝 записывайте, какие задания и когда вы выключили. Через полгода никто не вспомнит, почему перестали загружаться курсы.
Перед обновлением клиент-серверной базы
Выполнено: 0 / 7

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

Выключенное задание не выдаёт ошибок. Оно просто перестаёт работать, и последствия всплывают позже.

Задание (по смыслу)Что сломается, если выключить
Загрузка курсов валютНеверные суммы в валютных документах и переоценке
Обмен с банкомВыписки и платёжки перестанут уходить и приходить автоматически
Обмен ЭДО и получение почтыВходящие документы от контрагентов не появятся в базе
Отложенная обработка после обновленияЧасть данных останется в старом формате, отчёты покажут неполные цифры
Полнотекстовый поискСтрока поиска перестанет находить новые документы
Синхронизация данныхРасхождения между связанными базами

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

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

Почему отключённое регламентное задание снова включилось?
Его включила сама программа. Ряд заданий управляется функциональными опциями: при включении функции в настройках или при обновлении версии задание переключается автоматически. Выключите ненужную функцию в настройках программы.
Блокировка в консоли кластера мешает пользователям работать?
Нет. Флажок «Блокировка регламентных заданий включена» запрещает только регламентные задания. Пользователи входят и работают как обычно, а их собственные фоновые запуски вроде формирования отчётов в фоне не блокируются.
Чем грозит отмена фонового задания закрытия месяца?
Незаписанная транзакция откатится, часть регламентных операций останется невыполненной. Закрытие месяца после этого запустите заново с того шага, на котором оно прервалось.
Почему в файловой базе задания выполняются только когда кто-то открыл программу?
В файловом варианте нет сервера 1С. Регламентные задания выполняет один из клиентских сеансов, и без открытой программы их запускать некому.
Где посмотреть, почему фоновое задание завершилось с ошибкой?
Откройте запуск на вкладке «Фоновые задания»: в карточке есть текст ошибки. Подробности ищите в журнале регистрации с отбором по времени запуска.