Регламентное задание

При большом объеме обрабатываемых документов часть задач можно переложить на выполнение их в фоновом режиме без участия пользователя.

Алгоритм работы описывается в функции ВыполнитьРегламентныеДействия.

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

  • при нажатии кнопки «Выполнить регламентное задание» в настройках модуля
  • при запуске регламентного задания программно из конфигурации

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

Второй вариант имеет несколько ограничений:

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

Чаще всего использование регламентного задания предполагает:

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

Пример получения новых событий и отправка документов:

// ОБРАБОТКА СОБЫТИЙ ЛЕНТЫ, В Т.Ч. ЗАГРУЗКА НОВЫХ ДОКУМЕНТОВ

КоличествоПорцийСобытий = 10; // Кол-во вычитываемых порций событий (каждая порция содержит не более 100 событий)
Для Каждого СтрокаОрганизации Из ОсновнойМодуль.ЭДО_Модуль_ТаблицаОрганизацийПользователя() Цикл
    ОсталосьСобытийВЛенте = ОсновнойМодуль.ЭДО_Модуль_ОбработатьНовыеСобытияДокументов(СтрокаОрганизации, КоличествоПорцийСобытий);
КонецЦикла;

// ВЫПОЛНЕНИЕ MessagePatchToPost

Режим = ""; // Режим исполнения: ПередатьНаСогласование / ПередатьНаПодпись / ПередатьПоМаршруту / Согласование / ОтказВСогласовании

ПараметрыMessagePatchToPost = Новый Структура;
ПараметрыMessagePatchToPost.Вставить("Действие"                  , Режим); // вариант режима MessagePatchToPost
ПараметрыMessagePatchToPost.Вставить("ИдентификаторСотрудника"   , Неопределено); // внутренний ID Диадока
ПараметрыMessagePatchToPost.Вставить("ИдентификаторПодразделения", Неопределено); // внутренний ID Диадока
ПараметрыMessagePatchToPost.Вставить("ИдентификаторМаршрута"     , Неопределено); // внутренний ID Диадока
ПараметрыMessagePatchToPost.Вставить("Комментарий"               , "");           // произвольный текст

// Произвольная коллекция документов Диадока, которые необходимо пропатчить (необходимо собрать по нужному алгоритму).
// Элементы этой коллекции должны содержать ключ "ДокументДД".
ТаблицаДокументов = Новый ТаблицаЗначений;

Если ЗначениеЗаполнено(Режим) Тогда
    ОсновнойМодуль.ЭДО_ОтправитьMessagePatchToPostДляВыбранныхСтрокСпискаДокументов(ТаблицаДокументов, ПараметрыMessagePatchToPost);
КонецЕсли;