Как запустить регламентное задание для тестирования в 1С при отключенных регламентных заданиях?

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

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

Рассмотрим несколько подходов к решению этой задачи, учитывая как быстрые, так и более полноценные методы тестирования.

1. Прямой вызов процедуры регламентного задания

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

Как это работает?

  1. Мы создаем простую внешнюю обработку (или добавляем кнопку в существующую).
  2. В обработке размещаем команду, которая вызывает экспортную процедуру общего модуля, отвечающего за логику регламентного задания.

Давайте посмотрим на пример кода, предложенного на форуме:


Процедура КнопкаВыполнитьНажатие(Кнопка)
    МодульРегламентныхЗаданий.ПерепроведениеПоИсточникамПроисхождения();
КонецПроцедуры

Здесь МодульРегламентныхЗаданий – это общий модуль вашей конфигурации, а ПерепроведениеПоИсточникамПроисхождения() – экспортная процедура, содержащая нужную логику.

Преимущества этого метода:

Ограничения, которые необходимо учитывать:

Важно понимать, что этот метод не полностью эмулирует работу регламентного задания:

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

2. Использование специализированных консолей управления регламентными заданиями

Для более полноценного тестирования и управления регламентными заданиями мы рекомендуем использовать специализированные обработки – так называемые "консоли заданий" или "инструменты разработчика". Эти консоли предоставляют гораздо более широкий функционал и позволяют запустить регламентное задание в условиях, максимально приближенных к реальному фоновому выполнению.

Что такое "Инструменты Разработчика" (ИР) и "Консоль заданий"?

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

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

Преимущества использования консолей:

Если у вас под рукой оказалась "Консоль заданий" без кнопки запуска, это может указывать на то, что это упрощенная версия или консоль, предназначенная только для мониторинга, а не для интерактивного запуска. В таком случае, стоит поискать более функциональную обработку, например, упомянутую "Инструменты Разработчика".

3. Программный запуск с использованием Библиотеки Стандартных Подсистем (БСП)

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

Метод ВыполнитьРегламентноеЗаданиеВручную:

В БСП предусмотрена функция ВыполнитьРегламентноеЗаданиеВручную, которая позволяет инициировать немедленное выполнение процедуры регламентного задания. Она может выполнить его:

Этот метод является более "официальным" способом программного запуска регламентных заданий для тестирования, так как он учитывает особенности развертывания базы и использует стандартные механизмы БСП.

4. Особенности отладки регламентных и фоновых заданий

Отладка кода, который выполняется в фоновом задании, имеет свои нюансы, поскольку фоновое задание запускается в отдельном сеансе. Для эффективной отладки мы можем использовать следующие подходы:

  1. Настройка режима отладки в конфигураторе:

    В Конфигураторе 1С (меню "Отладка" - "Подключение...") мы можем установить флажок "Фоновые задания". Это позволит отладчику автоматически подключаться к фоновым заданиям, и мы сможем ставить точки останова в коде, который выполняется в фоне.

  2. Использование ключа запуска "РежимОтладки" (для БСП):

    Если конфигурация построена на БСП, мы можем добавить ключ запуска РежимОтладки в параметры запуска 1С:Предприятия (через Конфигуратор: Сервис - Параметры, вкладка "Запуск 1С:Предприятия"). В этом режиме фоновые задания будут выполняться не в отдельном сеансе, а в текущем сеансе, что значительно упрощает отладку, так как точки останова будут срабатывать непосредственно. При этом в обработке "Регламентные и фоновые задания" может появиться кнопка "Выполнить не в фоне", которая запускает регламентное задание в текущем сеансе.

  3. Преобразование в синхронное выполнение (для БСП):

    Если фоновое задание вызвано через процедуру БСП ДлительныеОперации.ЗапуститьВыполнениеВФоне, его выполнение можно преобразовать в синхронное с помощью специального ключа запуска в конфигураторе. Это позволит выполнить код в текущем потоке и отладить его.

Важные моменты при работе с регламентными заданиями в копиях баз

Мы всегда должны помнить о нескольких ключевых аспектах при работе с регламентными заданиями в тестовых копиях:

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

← На главную