Администрирование · 14 мин
Чем отличается регламентное задание от фонового в 1С
Разбираем отличия регламентного задания от фонового в 1С: назначение, запуск, расписание, права, мониторинг и типичные ошибки администратора.
В терминологии 1С регламентное и фоновое задания часто путают, хотя это разные механизмы с разным назначением. Регламентное задание — это объект метаданных, который описывает, какой метод и по какому расписанию нужно выполнять автоматически. Фоновое задание — это конкретный экземпляр выполнения: процесс, который реально запущен сервером 1С и делает работу прямо сейчас.
Проще говоря, регламентное задание — это «планировщик», а фоновое — «исполнитель». Одно регламентное задание может породить множество фоновых: при каждом срабатывании расписания создаётся новый фоновый экземпляр. Но фоновое задание может существовать и без регламентного — например, когда программист запускает длительную операцию из кода через ФоновыеЗадания.Выполнить(), чтобы не блокировать работу пользователя.
Понимание разницы критично при администрировании: от него зависит, где искать причину зависшей обработки, почему обмен данными не отработал ночью и как правильно отключить автоматический запуск на копии базы. Ниже разберём оба механизма, их отличия, сценарии применения и практику диагностики.
Что такое регламентное задание и зачем оно нужно
Регламентное задание — это объект метаданных конфигурации, который создаётся в конфигураторе в ветке «Общие → Регламентные задания». В нём указывается имя метода (экспортная процедура общего модуля), расписание, ключ, наименование и признаки использования. Расписание может быть любым: каждые 5 минут, раз в день в 03:00, по будням, раз в месяц.
Главное назначение — автоматизация периодических операций без участия пользователя: обмены с другими системами, загрузка курсов валют, расчёт итогов, отправка уведомлений, очистка устаревших данных, формирование отчётов для руководства к утру. Типовые конфигурации 1С (ERP, УТ, Бухгалтерия) содержат десятки предопределённых регламентных заданий.
Важная особенность: в файловой базе регламентные задания выполняются только если запущен сеанс с функцией выполнения регламентных заданий (обычно отдельный сеанс, запущенный с параметром /ExecuteScheduledJobs или через настройку в клиенте). В клиент-серверном варианте за их выполнение отвечает сервер 1С — отдельные сеансы не нужны, задания работают, даже когда никто не вошёл в базу.
Что такое фоновое задание и когда оно создаётся
Фоновое задание — это не метаданные, а исполняемый экземпляр: сеанс на сервере 1С (или процесс в файловой базе), который выполняет указанную процедуру. У него есть состояние (активно, завершено, завершено аварийно, отменено), время начала и окончания, а также информация об ошибке, если выполнение упало.
Фоновое задание появляется в двух случаях. Первый — автоматически, когда срабатывает расписание регламентного задания: система создаёт фоновое задание, связанное с этим регламентным. Второй — программно, когда разработчик вызывает ФоновыеЗадания.Выполнить("ИмяМетода", Параметры), чтобы выполнить длительную операцию асинхронно и не блокировать интерфейс пользователя.
Типичный пример программного фонового задания — длительное проведение большого пакета документов или формирование тяжёлого отчёта. Вместо того чтобы пользователь ждал несколько минут с «замороженным» окном, операция уходит в фон, а пользователь продолжает работать и получает результат по готовности.
Ключевые отличия: таблица сравнения
Разница между двумя механизмами проявляется по всем практическим параметрам — от способа создания до инструментов мониторинга. Ниже сведены основные отличия.
| Параметр | Регламентное задание | Фоновое задание |
|---|---|---|
| Что это | Объект метаданных конфигурации (настройка) | Экземпляр выполнения (процесс) |
| Где создаётся | В конфигураторе, ветка «Регламентные задания» | Системой по расписанию или кодом ФоновыеЗадания.Выполнить() |
| Расписание | Есть, настраивается администратором | Нет, запускается один раз в момент вызова |
| Повторяемость | Многократно, по расписанию | Однократно (но можно запускать сколько угодно раз) |
| Хранение в базе | Хранится постоянно как часть конфигурации | Живёт до завершения, история хранится ограниченно |
| Типовое назначение | Периодические обмены, расчёты, загрузки | Разовые длительные операции без блокировки интерфейса |
Из таблицы видно главное: регламентное задание — это «что и когда делать», фоновое — «конкретный запуск этого действия». Именно поэтому в консоли заданий вы видите и список регламентных заданий с их расписаниями, и отдельный список фоновых заданий с их состояниями.
Когда что использовать
Операция повторяется по расписанию без участия пользователя: обмены, загрузка курсов, ночные расчёты. Требует настройки в конфигураторе.
Разовая длительная операция по инициативе пользователя или кода: тяжёлый отчёт, пакетное проведение. Не требует изменения конфигурации.
Стандартная связка: регламентное задание по расписанию порождает фоновые экземпляры, каждый из которых виден в мониторинге отдельно.
Как это работает на практике: связка двух механизмов
Рассмотрим типовой сценарий. В конфигурации есть регламентное задание «Загрузка курсов валют» с расписанием «каждый день в 07:00». Каждое утро сервер 1С проверяет расписание, видит, что время пришло, и создаёт фоновое задание, которое вызывает указанный метод общего модуля. Задание выполняется, записывает курсы в регистр и завершается.
Если в 07:00 база была выключена или сервер недоступен, поведение зависит от настроек: система может выполнить задание при первом запуске после пропущенного времени или пропустить его до следующего срабатывания. Это частая причина вопросов «почему курсы не загрузились» — расписание сработало, но выполнить было некому.
Каждый такой запуск виден отдельно. Открыв консоль заданий, вы увидите: регламентное задание «Загрузка курсов валют» — одно, а связанных с ним фоновых заданий — по одному на каждый день, с датами, длительностью и статусами. Если какой-то запуск упал, у конкретного фонового задания будет состояние «Завершено аварийно» и текст ошибки.
Где смотреть и как управлять заданиями
Для мониторинга в типовых конфигурациях есть обработка «Регламентные и фоновые задания» (обычно в разделе «Администрирование → Обслуживание»). В ней две вкладки: регламентные задания с расписаниями и возможностью включения/отключения, и фоновые задания с фильтрами по состоянию и периоду. Для нетиповых баз администраторы часто используют внешние консоли заданий с расширенными возможностями.
Основные действия администратора: включить или отключить регламентное задание (флажок «Использование»), изменить расписание, принудительно выполнить задание вне расписания, отменить зависшее фоновое задание. Отмена фонового задания — операция, требующая осторожности: если задание в момент отмены записывало данные, возможна незавершённая транзакция, хотя механизм транзакций 1С обычно откатывает изменения корректно.
При диагностике проблем последовательность такая: сначала проверьте, включено ли регламентное задание и корректно ли расписание; затем найдите последние фоновые задания этого регламентного и посмотрите их состояние; если статус «Завершено аварийно» — читайте текст ошибки; если заданий нет вообще — проблема в том, что расписание не срабатывает (база была недоступна или задание заблокировано).
- 1Откройте консоль регламентных и фоновых заданий в разделе администрирования
- 2Проверьте, что регламентное задание включено (флажок «Использование») и расписание задано корректно
- 3Найдите последние фоновые задания этого регламентного задания и проверьте их состояние
- 4Если статус «Завершено аварийно» — откройте описание ошибки и устраните причину
- 5Если фоновых заданий нет — проверьте, не заблокировано ли задание и работал ли сервер (или сеанс для файловой базы) в момент расписания
- 6После исправления выполните задание принудительно и убедитесь, что оно завершилось успешно
Типичные ошибки и риски при работе с заданиями
Самая опасная ошибка — оставить включёнными регламентные задания в копии рабочей базы. Если вы развернули копию для тестирования, а в ней активны задания обмена, копия начнёт отправлять реальные данные во внешние системы, дублировать выгрузки и рассылки. При создании копии базы задания блокируются автоматически (в клиент-серверном варианте при регистрации информационной базы), но при ручном переносе это нужно проверять отдельно.
Вторая частая ошибка — слишком частое расписание тяжёлого задания. Если обмен выполняется 10 минут, а расписание стоит «каждые 5 минут», задания начнут накладываться друг на друга, конкурировать за блокировки и грузить сервер. Правильный подход: замерить реальную длительность выполнения и ставить интервал с запасом.
Третья группа ошибок связана с правами. Фоновые задания выполняются от имени пользователя, указанного в свойствах регламентного задания (или системного пользователя). Если у этого пользователя нет прав на объекты, которые обрабатывает метод, задание будет стабильно падать с ошибкой доступа — и в журнале регистрации это видно не всегда очевидно.
Что выбрать для своей задачи
Логика выбора простая. Если операция должна выполняться регулярно по расписанию без участия человека — создавайте (или настраивайте типовое) регламентное задание. Если нужно один раз выполнить длительную операцию, не заставляя пользователя ждать — запускайте фоновое задание программно. Менять конфигурацию ради разовой операции не нужно.
Есть и граничные случаи. Например, массовая обработка данных, которую нужно запускать вручную, но регулярно: здесь удобнее регламентное задание с расписанием «по требованию» (выполняется только принудительным запуском). А для цепочек зависимых операций часто используют приём, когда одно фоновое задание по завершении запускает следующее.
Как выбрать действие
Проверка результата после настройки
После настройки или исправления задания обязательно проверьте результат, а не только факт запуска. Успешное завершение фонового задания (статус «Завершено») означает лишь, что метод отработал без исключений — но не гарантирует, что данные реально обновились. Откройте связанные регистры, документы или журналы обмена и убедитесь, что появились ожидаемые записи за нужное время.
Полезно также проверить длительность выполнения: если задание, которое раньше работало минуту, стало выполняться полчаса, это ранний признак проблем — роста объёма данных, блокировок или деградации сервера. Регулярный просмотр истории фоновых заданий — простая и эффективная практика профилактики.
Как проверить результат
Статус «Завершено», время окончания соответствует расписанию
«Завершено аварийно», «Отменено» или задание зависло в состоянии «Активно» часами
Новые записи появились с ожидаемой датой и в ожидаемом объёме
Записей нет или они устарели, хотя задание «успешно завершено»
Стабильная от запуска к запуску
Растёт от раза к разу или сильно колеблется
Соответствует расписанию, запуски не накладываются
Пропуски запусков или одновременная работа нескольких экземпляров
Что важно запомнить
Регламентное задание — это настройка в конфигурации (метод + расписание), фоновое — конкретный запущенный экземпляр выполнения. Регламентное задание порождает фоновые по расписанию, но фоновые можно запускать и программно без регламентного. Диагностика всегда идёт по цепочке: включено ли регламентное задание → есть ли фоновые → какое у них состояние → что в тексте ошибки.
Частые вопросы
Может ли фоновое задание существовать без регламентного?
Да. Фоновое задание можно запустить программно методом ФоновыеЗадания.Выполнить() из любого кода — например, при нажатии кнопки в форме. Такое задание не связано ни с каким регламентным и выполняется один раз.
Почему регламентное задание не выполняется в файловой базе?
В файловом варианте задания исполняются только в специальном сеансе. Если базу никто не открыл или сеанс запущен без поддержки выполнения заданий, расписание не сработает. Решение — выделенный сеанс для заданий или переход на клиент-серверный вариант.
Что происходит, если задание не успело завершиться до следующего запуска по расписанию?
Новый экземпляр всё равно будет создан — система не ждёт завершения предыдущего. Это приводит к параллельной работе одинаковых заданий, блокировкам и конфликтам. Чтобы избежать этого, ставьте интервал с запасом или добавляйте в код метода проверку на уже выполняющийся экземпляр.
Как безопасно отключить все задания в копии базы?
В клиент-серверном варианте при создании новой информационной базы на сервере регламентные задания блокируются автоматически — их нужно разблокировать осознанно. В файловой копии откройте консоль заданий и снимите флажок «Использование» у всех заданий, особенно обменов и рассылок, до первого запуска пользователей.
От чьего имени выполняется регламентное задание?
От имени пользователя, указанного в свойствах задания (поле «Имя пользователя»). Если оно пустое — от имени системного пользователя с полными правами. Если у указанного пользователя не хватает прав на обрабатываемые объекты, задание будет завершаться аварийно с ошибкой доступа.
Чем отменить зависшее фоновое задание?
В консоли заданий выберите фоновое задание и нажмите «Отменить». Если задание не реагирует (например, зависло на уровне СУБД), может потребоваться завершение соответствующего сеанса в консоли кластера серверов 1С. После отмены проверьте, не осталось ли незавершённых транзакций и блокировок.