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

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

При разработке в среде 1С:Предприятие 8.3 программисты часто сталкиваются с ситуацией: в конфигураторе создано новое РегламентноеЗадание, оно привязано к правильному методу общего модуля, база обновлена, но в пользовательском режиме (например, в "Управлении торговлей 11.4") в списке регламентных заданий оно так и не появилось. Даже стандартный метод РегламентныеЗадания.ПолучитьРегламентныеЗадания() может не возвращать ожидаемый объект.

В этой статье мы подробно разберем причины такого поведения системы, проанализируем внутренние механизмы Библиотеки стандартных подсистем (БСП) и рассмотрим пошаговые инструкции по исправлению данной проблемы.

Причина 1: Свойство «Предопределенное» и отсутствие экземпляра задания

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

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

Рассмотрим, как это исправить:

  1. Откройте конфигуратор и перейдите к свойствам вашего регламентного задания.
  2. Установите флаг Предопределенное.
  3. Обновите конфигурацию базы данных (F7).

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


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

Причина 2: Обновление идентификаторов объектов метаданных (БСП)

Современные конфигурации, такие как УТ 11.4, ERP или КА, построены на базе БСП. Эти системы не обращаются к метаданным напрямую при каждой операции, а используют справочник ИдентификаторыОбъектовМетаданных для оптимизации прав доступа и работы интерфейсов. Если ваше задание новое, система может «не видеть» его, пока этот справочник не будет актуализирован.

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

Во-первых, можно запустить 1С:Предприятие с параметром командной строки /С ОбновлениеВспомогательныхДанных. Однако, как показывает практика, это не всегда помогает мгновенно. Более надежный способ — выполнить программное обновление.

Разберем пример кода для принудительного обновления идентификаторов:

Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();

Эту строку кода можно выполнить через любую консоль кода или создав временную внешнюю обработку. После выполнения проверьте наличие задания в списке через «Поддержка и обслуживание».

Причина 3: Кэширование серверных данных

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

Посмотрим на алгоритм очистки кэша на сервере:

  1. Остановите службу 1C:Enterprise 8.3 Server Agent.
  2. Перейдите в каталог данных кластера (обычно это C:\Program Files\1cv8\srvinfo).
  3. Найдите папку вашего рабочего сервера (например, reg_1541) и внутри неё папку конкретной информационной базы (ее UID можно посмотреть в консоли администрирования кластера).
  4. Удалите содержимое папки snccntx — именно здесь хранится кэш сеансовых данных и метаданных.
  5. Запустите службу сервера обратно.

Важно: Простая очистка пользовательского кэша (папки Local и Roaming) в данном случае помогает редко, так как список заданий формируется на стороне сервера.

Причина 4: Использование расширений конфигурации

Если вы добавили регламентное задание в расширении, нужно учитывать несколько критических нюансов, характерных для версий 8.3.10–8.3.20:

Во-первых, проверьте, что расширение подключено без признака Безопасный режим. В безопасном режиме выполнение некоторых серверных операций может быть ограничено, и регистрация задания может не произойти автоматически.

Во-вторых, выясним, активен ли флаг Использование в самом расширении. Часто разработчики забывают, что настройки задания в расширении могут перекрываться настройками основной конфигурации, если имена совпадают.

Причина 5: Диагностика через внешние инструменты

Если стандартный интерфейс УТ 11.4 упорно не показывает задание, выясним, существует ли оно на уровне платформы. Для этого лучше всего использовать специализированные инструменты:

  1. Консоль регламентных заданий (с ИТС): Она работает напрямую с объектами платформы РегламентноеЗадание, минуя интерфейсные надстройки БСП. Если в консоли задание есть, значит проблема исключительно в отображении внутри «Управления торговлей».
  2. Инструменты разработчика (ИР): Позволяют увидеть все метаданные и их идентификаторы в одном месте.

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

Итоги и рекомендации

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

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

Следуя этим шагам, вы гарантированно сможете зарегистрировать и запустить любое регламентное задание в современных типовых конфигурациях 1С.

← На главную