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