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

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

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

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

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

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

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

Почему регламентные задания мешают обновлению

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

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

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

Подготовка: что сделать до отключения заданий

Первый шаг — резервная копия. Для файловой базы достаточно выгрузки в dt через конфигуратор («Администрирование → Выгрузить информационную базу») или копирования файла 1Cv8.1CD. Для клиент-серверной базы надёжнее средства СУБД: бэкап через SQL Server Management Studio или pg_dump для PostgreSQL. Копия dt на больших серверных базах создаётся долго и не всегда является оптимальным вариантом.

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

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

Порядок действий перед обновлением
  1. 1
    Сделайте резервную копию базы (dt или бэкап СУБД)
  2. 2
    Зафиксируйте список включённых регламентных заданий
  3. 3
    Завершите сеансы пользователей и активные фоновые задания
  4. 4
    Отключите регламентные задания подходящим способом
  5. 5
    Установите блокировку сеансов, чтобы никто не вошёл во время обновления
  6. 6
    Выполните обновление и дождитесь завершения отложенных обработчиков
  7. 7
    Проверьте базу и включите задания обратно

Отключение заданий в файловой базе

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

Для контроля и ручного отключения используйте обработку «Консоль заданий» (есть в составе БСП и на диске ИТС). Откройте её в режиме предприятия, перейдите на закладку «Регламентные задания», отметьте все строки и снимите флаг «Использование». На закладке «Фоновые задания» проверьте, что ничего не выполняется в данный момент.

Отключение через код

Если база открывается внешней обработкой или через COM, можно отключить задания программно. Метод РегламентныеЗадания.ПолучитьРегламентныеЗадания() возвращает список, у каждого задания устанавливается свойство Использование = Ложь с последующим вызовом Записать(). Это удобно для автоматизации, когда обновлений много и действия повторяются.

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

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

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

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

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

Отключение через утилиту rac

Для автоматизации на сервере без графической консоли используйте rac: команда обновления свойств информационной базы позволяет установить параметр scheduled-jobs-deny в значение on. Это удобно включать в скрипт обновления: сначала блокировка заданий и сеансов, затем запуск конфигуратора в пакетном режиме, затем снятие блокировок.

bash
rac infobase update --cluster=<ид_кластера> --infobase=<ид_базы> --scheduled-jobs-deny=on --sessions-deny=on --permission-code=update123

Обновление и контроль отложенных обработчиков

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

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

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

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

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

База файловая и задания исполняет отдельный сеансПросто завершите этот сеанс и не запускайте его до конца обновления
База клиент-серверная, есть доступ к консоли кластераВключите блокировку регламентных заданий и блокировку сеансов в свойствах базы
Нужно автоматизировать обновление скриптомИспользуйте rac с параметром scheduled-jobs-deny=on и пакетный режим конфигуратора
После обновления есть отложенные обработчикиВременно снимите блокировку заданий или запустите обработчики вручную, затем дождитесь их завершения

Включение заданий после обновления и проверка

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

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

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

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

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

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

Ни одно задание не выполняется, обновление идёт без конфликтов блокировок

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

Задания запускаются, в журнале ошибки блокировок — блокировка не сработала

Отложенные обработчики после обновления
Норма

Все обработчики в статусе «Выполнено» в форме результатов обновления

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

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

Регламентные задания после включения
Норма

Дата последнего выполнения обновляется по расписанию, ошибок в журнале нет

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

Задания не запускаются — флаг блокировки в кластере или «Использование» не снят

Типичные ошибки и как их избежать

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

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

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

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

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

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

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

Обязательно ли отключать регламентные задания при небольшом обновлении?

Да. Даже минорное обновление выполняет реструктуризацию и запускает обработчики обновления данных. Конфликт с фоновым заданием возможен на любом обновлении, а отключение занимает несколько минут — риск несопоставим с затратами.

Чем отличается блокировка регламентных заданий от снятия флага «Использование»?

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

Отложенные обработчики не выполняются после обновления — в чём причина?

Чаще всего в базе осталась включённой блокировка регламентных заданий: отложенные обработчики работают через механизм фоновых заданий и тоже блокируются. Снимите блокировку или запустите обработчики вручную из формы «Результаты обновления программы».

Можно ли обновить базу, не выгоняя пользователей, если задания отключены?

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

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

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

Что делать, если обновление прервалось на середине из-за фонового задания?

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