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

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

Что такое регламентное задание в 1С и как его настроить

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

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

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

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

Как устроен механизм регламентных заданий

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

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

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

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

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

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

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

Регламентное задание

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

Фоновое задание

Подходит для разовых длительных операций по инициативе пользователя или кода: тяжёлый отчёт, пакетная обработка. Не повторяется автоматически.

Внешний планировщик (Windows, cron)

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

Где посмотреть и настроить задания в режиме предприятия

В типовых конфигурациях список заданий открывается через раздел «Администрирование» → «Обслуживание» → «Регламентные операции» (в разных конфигурациях название пункта может отличаться: «Регламентные и фоновые задания», «Консоль заданий»). Там видны состояние, расписание, дата последнего и ближайшего запуска, а также ошибки.

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

Порядок настройки задания
  1. 1
    Откройте список регламентных заданий в разделе администрирования
  2. 2
    Найдите нужное задание и проверьте, что оно включено (флаг «Используется»)
  3. 3
    Откройте расписание и задайте периодичность: дни, время начала, интервал повторения
  4. 4
    Сохраните расписание и выполните задание вручную для проверки
  5. 5
    Откройте журнал регистрации и убедитесь, что задание завершилось без ошибок

Особенности файлового и клиент-серверного режимов

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

В файловом варианте планировщика нет. Чтобы задания выполнялись, нужен постоянно запущенный сеанс 1С с параметром командной строки /ExecuteScheduledJobs (в старых версиях — отдельный ключ запуска) либо код, периодически вызывающий метод ВыполнитьОбработкуЗаданий(). Частая схема — отдельный компьютер или сеанс под специальным пользователем «Робот», запускаемый через планировщик Windows.

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

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

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

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

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

Дата последнего запуска в консоли заданий
Норма

Соответствует расписанию, интервалы регулярные

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

Дата устарела или запуски идут с пропусками

Журнал регистрации по событию задания
Норма

Есть записи о начале и успешном окончании

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

Записи с ошибками или только о начале без окончания

Состояние задания
Норма

«Не выполняется» между запусками, «Выполняется» кратковременно

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

Постоянное «Выполняется» — признак зависания

Прикладной результат (курсы, обмен, отчёты)
Норма

Данные обновляются согласно расписанию

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

Данные устарели, хотя задание формально работает

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

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

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

Процедура для примера может выглядеть так:

Процедура ЗагрузитьКурсыВалют() Экспорт

// Проверка: не выполнялось ли задание сегодня

Если КурсыУжеЗагружены(ТекущаяДатаСеанса()) Тогда

Возврат;

КонецЕсли;

// Основная логика загрузки

ВыполнитьЗагрузку();

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

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

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

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

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

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

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

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

Итог

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

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

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

Можно ли запустить регламентное задание вручную, не дожидаясь расписания?

Да. В консоли регламентных и фоновых заданий есть команда «Выполнить сейчас» — задание запустится немедленно, не влияя на расписание. Это стандартный способ проверки после изменения настроек.

Почему задание работает под одним пользователем и не работает под другим?

Регламентное задание выполняется от имени указанного в его свойствах пользователя (или пользователя по умолчанию). Если у этого пользователя нет прав на объекты, которые трогает код, задание завершится ошибкой. Проверьте роли и при необходимости назначьте заданию пользователя с достаточными правами.

Что произойдёт, если в момент запуска сервер был выключен?

Пропущенный запуск не «наверстывается» автоматически пакетом: после старта сервера задание выполнится в ближайшее время по расписанию. Если пропуски критичны (например, ежедневный обмен), добавьте в обработчик проверку даты последнего успешного выполнения и догоняющую обработку.

Можно ли выполнять разные задания параллельно?

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

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

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

Видно ли в журнале регистрации, кто изменил расписание задания?

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