Специальный параметр "ИсполнительСледующейЗадачи"

Настройка выполняемых процессов

Для чего нужен специальный параметр
Специальный параметр "ИсполнительСледующейЗадачи" предназначен для возможности динамически указывать исполнителя для следующей задачи в процессе выполнения. По умолчанию, реквизит адресации в задаче 1С заполняется по данным закладки "Адресация" соответствующего элемента Дерева процессов. Но в реальном выполнении возможность изменять настроенного исполнителя довольно часто используется. Или может быть вариант, когда нет преднастроенного исполнителя и он определяется динамически по ходу выполнения.

Пример передачи специального параметра в 1С

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

В нашем примере мы рассмотрим несколько вариантов использования этого специального параметра для выполнение задач в 1С. За исходный процесс возьмем "Поиск и одобрение поставщика".

Пример BPMN диаграммы

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

Предустановка значения парметра для выполнения задачи в 1С

При выполнении задачи "Выбор поставщика", исполнитель должен указать значение параметра "ИсполнительСледующейЗадачи".

Открытие задачи в 1С для установки параметра

После нажатия кнопки "Выполнено" будет создана задача "Одобрение поставщика", у которой поле "Исполнитель" = "Побегайло Б.Б."

Проверка установки параметра при выполнении задачи в 1С

Созданная задача "Одобрение поставщика" будет отображаться в панели задач для пользователя из поля "Исполнитель". При использовании этого параметра следует учитывать следующие моменты:
*) Приоритет значения передаваемого параметра "ИсполнительСледующейЗадачи" выше чем значение поля "Исполнитель" из соответствующего Элемента Дерева процессов для задачи;
*) При настройке типа для параметра можно выбрать или тип спр. "Пользователи.ОС" или спр. "Элементы ДП".

Динамическая установка кодом
Выполнение этого примера рассчитано на пользователей, знакомых с программированием на встроенном языке 1С. Преимуществ такого подхода несколько:
*) От пользователя убирается встроенная форма задачи 1С с большим набором полей, а остается только простая форма с минимальным набором элементов;
*) Тип значения параметра "ИсполнительСледующейЗадачи" может быть определен кодом, без ограничения, что тип надо установить сразу на этапе проектирования.

В этом примере мы будем выполнить задачу в 1С "Выбор поставщика" с двумя отличиями от предыдущего примера:
1) Будем использовать дополнительную внешнюю форму задачи;
2) Параметр "ИсполнительСледующейЗадачи" будем создавать и заполнять кодом.

Подготовительные работы будут следующие:
1) Удалим параметр "ИсполнительСледующейЗадачи" в параметрах выхода элемента ДП "Выбор поставщика". Оставим только "ВыбранныйПоставщик".

Установка значения параметра кодом

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

Процедура КнопкаВыполнитьНажатие(Кнопка)
// Для выполнения задачи получаем объект задачи из реквизита обработки
ЗадачаОбъект = ЭтотОбъект.СсылкаНаОбъект.ПолучитьОбъект();

// Табличную часть приводим к строке, т.к.данные передаются на сервер.
тзПараметрыВыхода_Строка = ЗначениеВСтрокуВнутр(ЗадачаОбъект.ПараметрыВыходаВыполняемогоБП.Выгрузить());

// Заполняем параметр
осРаботаСОтчетами_Сервер.ЗаполнитьЗначениеПараметраТаблицыПараметров(тзПараметрыВыхода_Строка,
"ИсполнительСледующейЗадачи", // Имя параметра
ИсполнительСледующейЗадачи, // Значение параметра
Истина);

// Добавление параметра если отсутствует
// В объект загружаем тз из строки, полученной с сервера.
ЗадачаОбъект.ПараметрыВыходаВыполняемогоБП.Загрузить(ЗначениеИзСтрокиВнутр(тзПараметрыВыхода_Строка));

// Устанавливаем признак выполнения
ЗадачаОбъект.Выполнена = Истина;

// Выполняем
ЗадачаОбъект.Записать();
КонецПроцедуры

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

Заполнение параметра в форме 1С

В следующей созданной задаче "Одобрение поставщика" откроем закладку "Доп. инфо" и посмотрим значение поля "Исполнитель". Все верно, оно заполнено значением параметра "ИсполнительСледующейЗадачи" из параметров выхода предыдущей задачи.

Заполнен параметр Исполнитель задачи в 1С

Таким образом можно установить исполнителя следующей задачи 1С, если она выполняется пользователем. Если выполнение установлено автоматическое, то этот параметр просто проигнорируется для выполнения, но может быть передан по совпадению имен до ручной задачи.

Алгоритм передачи параметра в 1С

В приведенном выше примере, параметр из задачи1 был передан в задачу3 через задачу2.


написать комментарий
*Имя *e-mail
*разрешена загрузка файлов типа:
**максимальный размер загружаемого файла: 150 kb.


прикрепить файл
 
Защита от автоматического заполнения
CAPTCHA
обновить изображение
Введите слово с картинки*: