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

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

Как запустить регламентное задание в 1С 8.2

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

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

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

Ниже разобраны оба сценария, способы ручного запуска, проверка результата и типичные причины, по которым задание не стартует.

Как устроены регламентные задания в платформе 8.2

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

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

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

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

Откройте конфигуратор, в дереве конфигурации найдите ветку «Общие» → «Регламентные задания». Если задание уже есть в типовой конфигурации, достаточно проверить его свойства. Для нового задания создайте объект и заполните ключевые поля:

  • Имя метода — например, ОбменДанными.ВыполнитьОбмен;
  • Расписание — периодичность, время начала, дни недели;
  • Использование — флаг должен быть установлен, иначе задание отключено;
  • Количество повторов при аварийном завершении и пауза между ними.

После изменений обновите конфигурацию базы данных (F7). Без обновления задание не появится в списке активных, даже если в конфигураторе всё настроено верно.

Запуск в клиент-серверном варианте

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

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

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

Запуск в файловом варианте базы

Файловая база 8.2 не имеет постоянно работающего сервера, поэтому платформа не может сама «проснуться» в нужное время. Регламентные задания выполняются только внутри запущенного сеанса, и для штатной работы нужно выделить отдельный процесс.

Классический способ — запустить дополнительный экземпляр 1С с параметром командной строки, который превращает сеанс в исполнителя заданий:

bash
1cv8.exe ENTERPRISE /F"C:\Bases\Trade" /N"Robot" /P"пароль" /C ExecuteScheduledJobs

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

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

Файловый или клиент-серверный режим

Клиент-серверный

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

Файловый с выделенным сеансом

Нужен постоянно работающий сеанс с параметром ExecuteScheduledJobs. Риск — сеанс закрыли или он завис

Ручной запуск через консоль заданий

Подходит для разового выполнения и отладки. Не заменяет автоматику: работает, только пока открыт сеанс

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

Тот факт, что вы нажали «Выполнить сейчас» или настроили расписание, ещё ничего не гарантирует. Проверка делается по журналу фоновых заданий и журналу регистрации.

В консоли заданий перейдите на закладку «Фоновые задания», установите отбор по имени регламентного задания и посмотрите состояние последнего экземпляра. «Завершено» означает успех, «Ошибка» — откройте задание и прочитайте текст исключения. Дополнительно проверьте журнал регистрации (Администрирование → Журнал регистрации) с отбором по событию фонового задания.

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

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

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

«Завершено» без сообщений об ошибке

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

«Ошибка» или задание отсутствует в списке

Время последнего выполнения
Норма

Соответствует расписанию

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

Дата старая — задание не запускалось

Прикладной результат
Норма

Данные обновились (курсы, остатки, обмен прошёл)

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

Задание завершено, но данных нет — ошибка логики внутри процедуры

Почему задание не запускается: типичные причины

Большинство проблем сводится к нескольким повторяющимся причинам. Проверяйте их последовательно, начиная с самых частых.

Типичные ошибки
01
В файловой базе не запущен сеанс-исполнитель — задания просто некому выполнять
02
Включена блокировка регламентных заданий в свойствах базы на сервере — механизм отключён целиком
03
Снят флаг «Использование» у задания — оно есть в списке, но не активно
04
Процедура находится в клиентском общем модуле — фоновое задание падает с ошибкой вызова
05
Сеанс выполняется под пользователем без прав на объекты, которые читает процедура
06
Расписание задано на время, когда сервер или файловый сеанс выключены

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

Отладка и разовый запуск из кода

Для отладки удобно запустить метод задания принудительно. В консоли кода или через внешнюю обработку можно выполнить:

РегламентныеЗадания.НайтиПредопределенное("ЗагрузкаКурсовВалют").ВыполнитьСейчас();

Для непредопределённых заданий используйте РегламентныеЗадания.ПолучитьРегламентныеЗадания() с отбором и метод ВыполнитьСейчас() у найденного объекта. Метод создаёт фоновое задание немедленно, независимо от расписания.

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

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

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

Задание настроено, но в списке фоновых заданий пусто. Что не так?

Скорее всего, задание ни разу не запускалось: не подошло время расписания, снят флаг «Использование», включена блокировка заданий на сервере или в файловой базе нет работающего сеанса-исполнителя. Проверьте эти четыре пункта по порядку.

Как запустить задание в файловой базе без постоянно открытого сеанса?

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

Фоновое задание завершается с ошибкой «Метод объекта не обнаружен». Причина?

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

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

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

Задание выполнилось успешно, но данные не изменились. Где искать проблему?

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

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

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

Итог

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

В клиент-серверной базе 1С 8.2 задания запускает сервер — проверьте блокировку заданий и флаг «Использование». В файловой базе нужен постоянно работающий сеанс с параметром ExecuteScheduledJobs или ручной запуск через консоль заданий. Результат всегда проверяйте по состоянию фонового задания и журналу регистрации.