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