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

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

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

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

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

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

Что такое регламентное задание и как оно работает

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

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

Как включить и настроить типовое задание без конфигуратора

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

Чтобы активировать задание, установите флаг «Используется» (или «Включено») и нажмите «Настроить расписание». Здесь задаётся периодичность: ежедневно в определённое время, каждые N минут, по дням недели, с датой начала и окончания. Например, синхронизацию с сайтом разумно запускать каждые 15–30 минут, а тяжёлый пересчёт итогов — ночью, когда пользователей мало.

После изменения расписания дождитесь ближайшего запуска и проверьте результат через кнопку «Журнал регистрации» или отчёт по фоновым заданиям. Если задание завершилось с ошибкой, текст ошибки будет в журнале — это отправная точка диагностики.

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

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

Откройте конфигуратор, разверните ветку «Общие → Регламентные задания» и добавьте новый объект. В свойствах задайте имя (латиницей, без пробелов), синоним и ключ — ключ помогает отличать задания в журнале. Главное поле — «Имя метода»: здесь указывается экспортная процедура общего модуля, которая будет выполняться.

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

Пример минимального метода в общем модуле:

bsl
Процедура ВыполнитьОбработкуДанных() Экспорт
	ЗаписьЖурналаРегистрации("МоеЗадание", УровеньЖурналаРегистрации.Информация,,, "Запуск обработки");
	// здесь прикладная логика
КонецПроцедуры

Дополнительно настройте свойства: «Использование» (включено ли задание по умолчанию), «Расписание» (можно задать предопределённое), «Количество повторов при аварийном завершении» и «Интервал повтора». Для нестабильных операций, например обращений к внешним API, разумно задать 2–3 повтора с паузой в несколько минут.

Настройка расписания: варианты и ограничения

Диалог расписания предлагает вкладки «Общее», «Дневное», «Недельное», «Месячное». На вкладке «Общее» задаются даты начала и окончания действия расписания и возможность повторения в течение дня. Дневные настройки определяют время начала и интервал повтора; недельные и месячные — конкретные дни выполнения.

Учитывайте ограничение: слишком частые запуски (каждую минуту и чаще) создают нагрузку на сервер СУБД и засоряют журнал регистрации. Если логика допускает, ставьте интервал 5–15 минут. Для задач, требовательных к ресурсам (пересчёт, архивация, большие выгрузки), выбирайте ночные часы и проверяйте, не пересекаются ли они с другими тяжёлыми заданиями и регламентными работами СУБД.

Варианты размещения задания

Типовое задание из БСП

Подходит, если нужная функция уже реализована вендором; ограничение — нельзя менять логику без доработки

Новое задание в конфигураторе

Подходит для собственной логики; требует обновления конфигурации и прав разработчика

Программный запуск фонового задания

Подходит для разовых длительных операций по кнопке; расписания нет, запуск инициирует пользователь или код

Проверка выполнения и диагностика ошибок

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

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

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

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

Запись в журнале регистрации
Норма

Событие с информацией об успешном завершении

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

Событие с уровнем «Ошибка» и текстом исключения

Побочный эффект логики
Норма

Данные обновлены, документы созданы, выгрузка появилась

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

Задание «успешно», но прикладного результата нет — логика не сработала

Регулярность запусков
Норма

Запуски идут по расписанию без пропусков

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

Пропуски — задание отключено, сеанс файловой базы не запущен или задание заблокировано

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

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

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

Типичные ошибки при добавлении задания

Типичные ошибки
01
Метод размещён не в серверном общем модуле — платформа не находит процедуру, задание падает с ошибкой сразу после запуска
02
В коде используются Предупреждение() или Вопрос() — в фоновом сеансе это недопустимо и приводит к аварийному завершению
03
Слишком частое расписание — нагрузка на СУБД растёт, пользователи жалуются на замедление
04
Не указан пользователь задания — код выполняется без прав на нужные объекты, операции молча не выполняются
05
Задание включено в конфигураторе, но в пользовательском режиме снят флаг использования — запусков нет
06
Файловая база без сеанса выполнения заданий — расписание настроено, но ничего не происходит

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

Итог

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

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

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

Можно ли добавить регламентное задание без конфигуратора?

Новый объект метаданных — нет, только через конфигуратор. Но в типовых конфигурациях на базе БСП можно включать, отключать и настраивать расписание существующих заданий из пользовательского режима, а также создавать «дополнительные отчеты и обработки» с назначением «Регламентное задание» — это способ добавить свою логику без изменения конфигурации.

Задание настроено, но не выполняется. С чего начать?

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

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

В консоли «Регламентные и фоновые задания» (БСП) выделите задание и нажмите «Выполнить сейчас». Альтернатива — программный вызов: метод РегламентныеЗадания.НайтиПоУникальномуИдентификатору или создание фонового задания с тем же методом через ФоновыеЗадания.Выполнить.

От имени какого пользователя выполняется задание?

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

Как отладить код регламентного задания?

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

Чем регламентное задание отличается от внешнего планировщика (Windows)?

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