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

· 9 мин

Содержание

Регламентное задание в 1С — это процедура на сервере, которую платформа запускает сама по расписанию: загрузить курсы валют, получить письма, обменяться данными, обновить полнотекстовый индекс. Настроить его в типовой конфигурации можно без конфигуратора: Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания. Там включают и выключают задания, меняют расписание и смотрят, чем закончился последний запуск.

Способов работы три, и выбирают их по задаче. Включить или перенастроить готовое задание — в пользовательском режиме, это пять минут. Добавить своё — в конфигураторе или расширении, нужен программист. Разобраться, почему задание не работает , — журнал регистрации и консоль кластера. Механизм общий для платформы 8.3, поэтому всё ниже одинаково для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигураций на БСП.

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

Регламентное задание — объект метаданных. В конфигураторе он лежит в ветке Общие → Регламентные задания. У объекта есть несколько главных свойств:

  • 🧩 Имя метода — экспортная процедура общего модуля, которая выполняется на сервере;
  • ✅ Использование — включено задание или нет;
  • 📅 Расписание — когда и как часто запускать;
  • 🔁 Количество повторных попыток и интервал — что делать, если запуск завершился аварийно;
  • 📌 Предопределённое — задание существует в базе всегда, его нельзя удалить из списка.

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

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

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

Виды регламентных заданий в типовых конфигурациях

На практике задания делят на три группы. От группы зависит, где их настраивать.

  1. Предопределённые. Описаны в конфигурации и есть в каждой базе: загрузка курсов валют, обновление классификатора банков, обновление агрегатов, удаление устаревших данных журнала. Их можно включить, выключить и перенастроить, но не удалить.
  2. Динамические (непредопределённые). Создаются программно по шаблону из метаданных. Так работают, например, сценарии обмена данными и учётные записи почты: на каждый сценарий или ящик — своя запись со своим расписанием.
  3. Из дополнительных обработок. В конфигурациях на БСП подключённую внешнюю обработку можно запускать по расписанию. Расписание задают в карточке обработки: Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки, у команды обработки включают флажок запуска по расписанию.

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

По назначению типичные задания выглядят так:

ГруппаПримерыЧто будет, если выключить
Обмен и интеграцииСинхронизация данных, обмен с ЭДО, получение писемДанные перестанут приходить автоматически
КлассификаторыКурсы валют, банки, адресный классификаторСправочники устареют
Обслуживание базыОбновление и слияние индекса полнотекстового поиска, итоги, агрегатыМедленнее поиск и отчёты
ОчисткаУдаление устаревших версий объектов, временных файловБаза растёт быстрее

Включаем и настраиваем расписание в пользовательском режиме

Пользователю для этого нужны полные права. Порядок одинаков для БП 3.0, ЗУП 3.1 и УТ 11.

  1. Откройте Администрирование → Обслуживание.
  2. Раскройте группу Регламентные операции и перейдите по ссылке Регламентные и фоновые задания.
  3. На вкладке регламентных заданий найдите нужное в списке. Колонки показывают, включено ли оно, когда запускалось и с каким результатом.
  4. Откройте задание двойным щелчком. Поставьте флажок Включено.
  5. Перейдите по ссылке расписания и задайте период.
  6. Укажите пользователя, от имени которого выполнять задание, если поле есть в форме.
  7. Сохраните и закройте.

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

Как читать форму расписания

Расписание задаётся на нескольких вкладках:

  • 📆 Общие — дата начала и окончания, повтор каждые N дней;
  • 🗓 Недельное — дни недели, в которые задание работает;
  • 📅 Месячное — месяцы и числа;
  • ⏰ Дневное — время начала и окончания в течение суток, повтор каждые N секунд, пауза после завершения.

Пример для обмена с сайтом: каждый день, с 08:00 до 20:00, повторять каждые 900 секунд. Получится 48 запусков за смену: 12 часов × 4 запуска в час.

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

Создаём своё регламентное задание в конфигураторе

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

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

Процедура задания в конфигурации на БСП начинается с вызова служебного метода — он проверяет, можно ли сейчас выполнять задание, и записывает это в журнал:

Процедура ВыгрузкаОстатковНаСайт() Экспорт

	ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
		Метаданные.РегламентныеЗадания.ВыгрузкаОстатковНаСайт);

	// Здесь сама выгрузка

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

Если нужно много однотипных заданий — по одному на склад или на ящик, — делайте объект непредопределённым и создавайте записи кодом:

Процедура СоздатьЗаданиеВыгрузки(Наименование) Экспорт

	Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(
		Метаданные.РегламентныеЗадания.ВыгрузкаОстатковНаСайт);
	Задание.Наименование = Наименование;
	Задание.Использование = Истина;

	Расписание = Новый РасписаниеРегламентногоЗадания;
	Расписание.ПериодПовтораДней = 1;
	Расписание.ПериодПовтораВТечениеДня = 3600; // раз в час, в секундах
	Задание.Расписание = Расписание;

	Задание.Записать();

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

Предопределённое задание кодом не создают, его находят: РегламентныеЗадания.НайтиПредопределенное(Метаданные.РегламентныеЗадания.ВыгрузкаОстатковНаСайт).

Почему регламентное задание не выполняется или зависает

Сначала посмотрите на сам список заданий: дату последнего запуска и состояние. Потом — в журнал регистрации: Администрирование → Обслуживание → Журнал регистрации, отбор по приложению «Фоновое задание». Текст ошибки там обычно сразу называет причину.

Диагностика: выберите симптом

Что делать с зависшим заданием

Зависшее фоновое задание можно отменить на вкладке фоновых заданий в той же форме. Если не помогает — завершите его сеанс в консоли администрирования серверов: в списке сеансов базы ищите приложение «Фоновое задание».

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

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

Файловая база: как гарантировать выполнение

Для файловой базы на отдельном компьютере держат открытым один сеанс под служебным пользователем. Параметр командной строки /AllowExecuteScheduledJobs управляет тем, будет ли конкретный клиент выполнять задания: с ключом -Off — не будет, с -Force — будет. Так можно назначить «исполнителем» один служебный клиент и разгрузить рабочие места бухгалтеров.

Нагрузка на сервер: как развести задания по времени

Десяток заданий, стартующих в одну минуту, тормозит базу заметнее, чем любой отчёт. Порядок действий простой.

  1. Отключите лишнее. Не ведёте валютный учёт — курсы раз в сутки не нужны. Не используете ЭДО — выключите его задания. Каждое выключенное задание — минус фоновый сеанс.
  2. Разнесите тяжёлые задания. Обновление индекса полнотекстового поиска, слияние индекса, пересчёт итогов и удаление устаревших данных ставьте на ночь и с разницей во времени: например, 01:00, 02:00, 03:00.
  3. Уберите частые повторы. Обмен раз в минуту почти всегда можно заменить обменом раз в 10–15 минут.
  4. Ограничьте время работы. В дневном расписании задайте время окончания, чтобы задание не стартовало в часы закрытия месяца.
  5. Вынесите задания на отдельный сервер. В кластере из нескольких рабочих серверов в свойствах рабочего сервера задают требования назначения функциональности. Для объекта «Фоновое задание» можно указать, что выполнять его нужно на выделенном сервере, — тогда обмены не мешают пользователям.
Проверка нагрузки от регламентных заданий
Выполнено: 0 / 5

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

Права и пользователь, от имени которого работает задание

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

Рекомендации практика:

  • 👤 Заведите служебного пользователя, например «Регламентные задания». Не привязывайте задания к сотруднику — уволится, учётную запись отключат, обмены встанут.
  • 🔐 Дайте ему только нужные роли. Для обмена — права на обмен и чтение нужных справочников, а не «Полные права» по умолчанию.
  • 🚫 Запретите интерактивный вход. Служебному пользователю не нужен вход в программу, только выполнение заданий.
  • 📝 Проверяйте журнал. Все записи задания в журнале регистрации идут от этого пользователя, по нему удобно делать отбор.

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

Блокировку регламентных заданий в консоли кластера ставит администратор сервера. Если её сняли «чтобы заработало», а база оказалась тестовой копией, из неё уйдут реальные письма и обмены. Перед снятием блокировки уточните, какая это база.

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

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