Почему новое регламентное задание не отображается в консоли заданий 1С и как это исправить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке функционала в платформе «1С:Предприятие 8.3» разработчики часто сталкиваются с ситуацией: в Конфигураторе создано новое регламентное задание, установлены флаг использования и расписание, изменения внесены в конфигурацию базы данных, однако при открытии обработки «Консоль регламентных заданий» новое задание не отображается в списке. Разберем подробно, почему так происходит и как правильно настроить отображение и запуск задания.

Выясним причину проблемы: метаданные и экземпляры заданий

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

Ключевую роль играет свойство Предопределенное в свойствах объекта метаданных:

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

Способ 1. Установка признака «Предопределенное» в Конфигураторе

Если планируется, что у задания будет строго один экземпляр в базе данных и его параметры задаются на этапе разработки, выполним следующие шаги:

  1. Откроем Конфигуратор и найдем созданное задание в ветке Общие -> Регламентные задания.
  2. Откроем палитру свойств этого задания.
  3. Установим флаг Предопределенное в значение Истина (поставим галочку).
  4. Убедимся, что заполнены свойства Имя метода, Использование и задано Расписание.
  5. Обновим конфигурацию базы данных (нажатием клавиши F7).

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

Способ 2. Ручное добавление экземпляра в Консоли заданий

Если задание создано как непредопределенное (флаг Предопределенное = Ложь), его можно добавить интерактивно. Это удобно, если требуется запускать несколько экземпляров одного и того же задания с разными параметрами или расписанием:

  1. Запустим сеанс «1С:Предприятие» и откроем обработку «Консоль заданий».
  2. Нажмем клавишу Insert или кнопку добавления нового задания.
  3. В появившемся диалоговом окне выбора метаданных выберем нужное регламентное задание из списка доступных.
  4. Настроим расписание, флаг использования и сохраним изменения.

Способ 3. Программное создание экземпляра задания

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


// Проверим наличие и создадим экземпляр непредопределенного регламентного задания
ИмяЗадания = "МоеРегламентноеЗадание";
МассивЗаданий = РегламентныеЗадания.ПолучитьРегламентныеЗадания(Новый Структура("Метаданные", Метаданные.РегламентныеЗадания[ИмяЗадания]));

Если МассивЗаданий.Количество() = 0 Тогда
    НовоеЗадание = РегламентныеЗадания.СоздатьРегламентноеЗадание(ИмяЗадания);
    НовоеЗадание.Использование = Истина;
    НовоеЗадание.Записать();
КонецЕсли;

Метод РегламентныеЗадания.СоздатьРегламентноеЗадание() принимает имя регламентного задания из метаданных и записывает его экземпляр в базу данных.

Критически важные требования к коду метода

Для корректного запуска регламентного задания проанализируем требования к процедуре, указанной в свойстве ИмяМетода:

  1. Процедура должна находиться в **общем модуле** с установленным флагом Сервер.
  2. Процедура должна иметь ключевое слово Экспорт.
  3. В коде процедуры **недопустимы интерактивные вызовы** (такие как Предупреждение(), Вопрос() или открытие форм), так как фоновое задание выполняется в фоновом сеансе без участия пользователя.

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

Посмотрим на особенности файлового варианта информационной базы. В отличие от клиент-серверного режима, где за планирование отвечает служба кластера серверов, в файловой базе регламентные задания не выполняются автоматически «в фоне» сами по себе.

Для выполнения заданий в файловой базе необходимо, чтобы был запущен хотя бы один сеанс клиентского приложения (или специальный технический сеанс). Планировщик файловой базы проверяет наличие задач с определенной периодичностью (обычно раз в 30–60 секунд).

← На главную