Получить точку маршрута бизнес процесса 1с

Как получить текущую точку Бизнес-Процесса

Я
   H A D G E H O G s

08.09.09 — 17:16

День добрый.

Собственно сабж.

  

Партнерская программа EFSOL Oblako

   Defender aka LINN

1 — 08.09.09 — 17:20

По активным задачам

   H A D G E H O G s

2 — 08.09.09 — 17:29

Ммм.
Значит запросом.
Думал, может метод какой есть.

   Михаил Козлов

3 — 08.09.09 — 17:31

Мне кажется, их может быть несколько или я не прав?

   vde69

4 — 08.09.09 — 17:32

внутри модуля БП или извне?

   H A D G E H O G s

5 — 08.09.09 — 17:33

(4) Внутри

   H A D G E H O G s

6 — 08.09.09 — 17:33

(3) Может

   vde69

7 — 08.09.09 — 17:35

// ФормируемыеЗадачи — это массив, его и юзай

Процедура УточнениеЗапросаПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)

   СтрокаМаршрута=Справочники.ВариантыМаршрутов.Уточнение;

   ОбщееПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ, СтрокаМаршрута, Автор);

   
   МассивАдресации = РаботаБП.ПолучитьМассивАдресации(Автор);

   МассивАдресов = РаботаБП.ПолучитьМассивПочтовыхАдресов(МассивАдресации);

   ОтправитьПисьмо(Справочники.ШаблоныПисем.ТребуетьсяПояснение, МассивАдресов, Ссылка, ФормируемыеЗадачи[0].Ссылка);

   
КонецПроцедуры

   H A D G E H O G s

8 — 08.09.09 — 17:45

Ладно.
Такой вопрос — мне надо управлять видимостью формы в зависимости от текущей точки Бизнес процесса.
Но Точки — НЕ предопределенные!
Как быть?

Можно конечно ориентироваться на «Порядковый номер» точки — но а вдруг я «Карту маршрута» перестрою.

   H A D G E H O G s

9 — 08.09.09 — 17:52

ПолучитьКартуМаршрута().ЭлементыГрафическойСхемы.СоздатьИнцидент.Значение

Вот они, предопределенные.
Я правильно мыслю???

   vde69

10 — 08.09.09 — 17:53

// я себе сделал при открытии задачи

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

   // сначало проверим для вложеных БП, если есть — вообще форму не покажем

   Попытка

       Если Ссылка.ТочкаМаршрута.Вид = ВидТочкиМаршрутаБизнесПроцесса.ВложенныйБизнесПроцесс Тогда

           Отказ = Истина;

           // здесь можно сделать открытие формы вложеного БП, или списка текущих задачь по вложеному БП

           Возврат;

       КонецЕсли;                                            

                                                             
       // проверим, что нельзя двигать процесс если есть пред обработка (0-уровень)

       Если Константы.ИспользоватьПредварительныйКонтроль.Получить() и

           (Константы.ГруппаАдресацииПервойЛинии.Получить() = Ссылка.Адресат) тогда

           
           Предупреждение(«Используется режим предварительной оценки. Используйте быструю переадресацию»);

           Отказ = Истина;

           СтандартнаяОбработка = Ложь;

           Возврат;

       КонецЕсли;

   Исключение

       Отказ = Истина;

       Возврат;

   КонецПопытки;

   
   //

   // тут проверим, может надо открыть другую форму

   
   // ВНИМАНИЕ!!! данный алгоритм возможно надо будет переделать, сравнение строк не надежно,

   // возможно совпадение с названиями в будующих БП

   Попытка

       АльтернативнаяФорма = Ссылка.ПолучитьФорму(СокрЛП(Ссылка.ТочкаМаршрута.Имя), ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности);

   Исключение

       АльтернативнаяФорма = Неопределено;

   КонецПопытки;

   
   // позможно есть форма по умолчанию для этого БП

   Если АльтернативнаяФорма = Неопределено Тогда

       Если БизнесПроцесс.Метаданные().Имя = «Работа» Тогда

           АльтернативнаяФорма = Ссылка.ПолучитьФорму(«ОсновнаяДляБПРабота», ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности);

       КонецЕсли;        

   КонецЕсли;      

   
   // позможно есть форма по умолчанию для этого БП

   Если АльтернативнаяФорма = Неопределено Тогда

       Если БизнесПроцесс.Метаданные().Имя = «Согласование» Тогда

           АльтернативнаяФорма = Ссылка.ПолучитьФорму(«ОсновнаяДляБПСогласование», ЭтаФорма.ВладелецФормы, ЭтаФорма.КлючУникальности);

       КонецЕсли;        

   КонецЕсли;      

   
   ПланируемаяДатаНачала      = ГлавныйБП.ПланируемаяДатаНачала;

   ПланируемаяДатаОкончания   = ГлавныйБП.ПланируемаяДатаОкончания;

   
   Если АльтернативнаяФорма <> Неопределено Тогда

       // есть специальная форма, надо работать с ней    

       АльтернативнаяФорма.ТолькоПросмотр = ЭтаФорма.ТолькоПросмотр;

       АльтернативнаяФорма.Открыть();

       АльтернативнаяФорма.Активизировать();

       Отказ = Истина;

       СтандартнаяОбработка = Ложь;

       Возврат;

   КонецЕсли;

   
КонецПроцедуры

   Defender aka LINN

11 — 08.09.09 — 17:55

(8) Как это «не предопределенные»? Как ты карту маршрута поменяешь не в конфигураторе? О_о

   H A D G E H O G s

12 — 08.09.09 — 17:56

(11) см (9) — это правильно?
Вопрос звучал так:
«с чем сравнивать ?»

   H A D G E H O G s

13 — 08.09.09 — 17:56

(10) Либя я тебя не понимаю, либо ты совсем не то пишешь…

   H A D G E H O G s

14 — 08.09.09 — 17:57

Либо

   vde69

15 — 08.09.09 — 18:00

(13) этот код вставляешь в форму задачи (которая по умолчанию), и делаешь кучу дополнительных форм, с именами совпадающими с (см. код) и все будет работать, будешь иметь свою форму на каждую точку маршрута

   EugeneK

16 — 08.09.09 — 18:01

у себя в одном случае делал не правильно (хотя ХЗ), но удобно — в БП сделал реквизит «текущаязадача» и при создании задачи — туда записывал название точки. Но у меня небыло варианта, когда у БП может быть несколько активных задач на разных точках.

   EugeneK

17 — 08.09.09 — 18:03

   H A D G E H O G s

18 — 08.09.09 — 18:05

(15) У меня пользователи вообще про задачи знать не будут.
Мне надо управлять видимостью Формы бизнес процесса, на основе активной задачи

   vde69

19 — 08.09.09 — 18:06

(16)+ у меня в главном БП есть таблица задач, но использую это немного для другого, а именно для приоритета задач между собой.

   vde69

20 — 08.09.09 — 18:18

(18) если задачи не юзаешь зачем вообще бизнес процесс нужен? Сделай документ и кучку статусов…

  

EugeneK

21 — 08.09.09 — 18:22

(20) хороший вопрос. (0) может стоит пересмотреть идею ?

Сабж. Есть метод ПолучитьВходящиеТочки, работает в том числе и для точки вида «Действие», есть метод ПолучитьИсходящиеТочки, но помему-то работает только для точек вида «Разделение». Как можно найти исходящие точки для действия?

А зачем? Ведь в каждой точке есть свои обработчики.

Нужна зашить универсальный алгоритм в задачу. Анализировать следующую ТМ.

Можно конечно перебрать все точки маршрута и вычислить ПолучитьВходящиеТочки = ТекущаяТочкаМаршрута, но это костыль.

То есть использовать схему нестандартным образом? Тогда можно на декорациях-стрелках и справочнике. Кажется, вы это и хотите сделать. Если так — то перебрать все элементы схемы, узнать для которых ПолучитьВходящиеТочки= ТекущаяТочкаМаршрута, именно так. Тупо узнать куда ведут стрелочки от текущей точки — перебрать все другие узлы. И это не костыль, это норма. Ведь вы сознательно отказываетесь от стандартного программирования бизнес-процесса.

Что-то типа этого. Всё-равно считаю костылём. Функция ПолучитьИсходящиеТочки(пТочкаМаршрута)

Как-то мне пришлось делать бизнес-процесс, где около 100 строк в табличной части — и каждая строка должна согласовываться по инстанциям отдельно от других (согласование бюджетных операций).   Для решения я оставил в схеме только Старт, Финиш, и бесконечный цикл проверки. А всю логику вынес в табличную часть «История» и модуль. И что значит «зашить универсальный алгоритм в задачу»? Если его зашить в модуле — это одно. Если вы хотите, чтобы схема бизнес-процесса редактировалась в пользовательском режиме — тогда нужно делать декорации-стрелки и, например, хранить код в справочнике.

Вы не ответили на вопрос :) Цель — программирование бизнес-процесса в конфигураторе или пользователям дать такую возможность?

Цель — при открытии формы задачи, анализировать следующую точку маршрута, и если следующая ТМ вида «точка выбора» — запрашивать у пользователя вариант(результат выполнения) задачи. Что бы на следующем этапе проскочить через выбор. Как-то так. БП только осваиваю…

+ Задачу могут ведь формировать разные бизнес процессы. Вот и анализировать карты маршрута для универсальности.

так на то она и точка выбора — запрашивать у пользователя вариант ответа. Другого назначения у точки выбора и нет. Тогда вам можно использовать стандартный механизм. Я уже не помню (и лень поднять конфу из бекапа), но у точки выбора есть во входящих параметрах, кажется, результат выбора, или как его. Вот туда и передаете, что выбрал пользователь. И логика сама дальше по схеме бежит) Не нужно программировать — какая точка следующая. Это рисуется в схеме.

Входящие параметры у обработчика точки выбора ТочкаВыбораВарианта и Результат. Если выбор зависит от пользователя, то мне нужно это и запросить у пользователя. Не создавать же мне дополнительный диалог, после выполнения задачи. Как это делать по правильному?

Есть ПолучитьИсходящуюТочку — работает для разделения и ПолучитьИсходящиеТочки — для всего остального

Хм… действительно. То что нужно. Почему-то забраковал эту функция изначально. Мерси. Вот чуял что должна быть функция.

А как всё-таки обрабатывать выбор варианта, если он зависит от результата выполнения предыдущей точки действия?

Обычно добавляют реквизит в бизнес-процесс и присваивают ему значение (в предыдущей точке). А в обработчике выбора пишут условие на значение этого реквизита.

Тэги:

Комментарии доступны только авторизированным пользователям

Учебный курс: Подготовка на 1С:Специалист по платформе 1С:Предприятие 8.3

Графическое представление информации добавляет наглядности. На форме бизнес-процесса можно отобразить значения его реквизитов: Номер, Дата, Стартован, Завершен и так далее. Эта информация может быть полезна для идентификации конкретного бизнес-процесса, но по ней не получится сказать, в какой точке маршрута сейчас находится бизнес-процесс, какие задачи уже выполнены, а какие еще нужно будет выполнить.

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

Для сдачи экзамена необходимо на форме бизнес-процесса отображать его карту маршрута. Текущая точка маршрута должна быть выделена на карте, чтобы пользователь в режиме «1С:Предприятие» мог видеть текущее состояние бизнес-процесса.

Далее подробно рассмотрим, как реализовать отображение на форме карты маршрута конкретного бизнес-процесса.

Процесс реализации вывода карты маршрута на форму бизнес-процесса наглядно в формате видеоуроков показан в бесплатном курсе Программирование в 1С – за 21 день! (см. Модуль 6, День 21).

Как вывести карту маршрута на форме?

Создадим форму бизнес-процесса. Добавим реквизит формы КартаМаршрута с типом ГрафическаяСхема:

Создание реквизита «КартаМаршрута» формы бизнес-процесса

Рисунок 1 – Создание реквизита «КартаМаршрута» формы бизнес-процесса

Перенесем созданный реквизит на форму. Получим поле графической схемы, связанное с реквизитом КартаМаршрута:

Размещение созданного реквизита на форме

Рисунок 2 – Размещение созданного реквизита на форме

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

К сожалению, у Вас недостаточно прав для дальнейшего просмотра.

Если Вы приобрели курс, но еще не активировали токен — пожалуйста, активируйте доступ по инструкциям, высланным на Ваш email после покупки.

Если Вы не залогинены на сайте — залогиньтесь, вернитесь на эту страницу и обновите ее.

Если Вы залогинены, у Вас активирован токен доступа, но Вы все равно видите эту запись — напишите нам на e-mail поддержки.

Комментарии закрыты

1С: Предприятие 8.3.13 . Документация
Руководство разработчика
Глава 13. Бизнес-процессы и задачи

13.1. Основные понятия

Бизнес-процессы в системе «1С:Предприятие» предназначены для объединения отдельных операций в цепочки взаимосвязанных действий, приводящих к достижению конкретной цели. Например, цепочку по выписке счета, приему наличной оплаты и отпуску товара со склада можно представить как бизнес-процесс Продажа товара за наличный расчет.

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

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

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

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

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

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

Точка маршрута ‑ отражает этап жизненного цикла бизнес-процесса, связанный с выполнением, как правило, одной автоматической или ручной операции.

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

13.2. Общая часть

Механизм бизнес-процессов в системе «1С:Предприятие» обеспечивается сразу несколькими объектами конфигурирования:

● Бизнес-процессы,

● Задачи,

● Регистр сведений,

● Параметр сеанса.

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

Рис. 425. Схема бизнес-процессов

Основные объекты ‑ бизнес-процессы и задачи ‑ взаимодействуют друг с другом (например, бизнес-процесс создает задачи, а задача в процессе выполнения приводит к продвижению его по маршруту).

Вспомогательные объекты ‑ параметры сеанса, регистр сведений и справочники ‑ не используют друг друга и основные объекты.

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

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

13.3. Маршрутизация

Бизнес-процессы в системе «1С:Предприятие» допускают следующие виды маршрутизации:

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

● Свободная. Адресаты точки карты маршрута бизнес-процесса не установлены и определяются программно или интерактивно в течение жизненного цикла бизнес-процесса.

● Условная. Карта маршрута предусматривает проверку условий и переход по соответствующим ветвям. Переходы могут быть как бинарными (условие), так и множественными (выбор варианта).

● Параллельная. Карта маршрута предусматривает разделение бизнес-процесса на параллельные ветви с возможностью последующего слияния (ожидания). Продвижение бизнес-процесса по каждой из параллельных ветвей происходит независимо по мере выполнения соответствующих задач.

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

13.4. Система адресации

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

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

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

Определение конкретного исполнителя осуществляется с помощью свойств задачи ‑ Адресация, Основной реквизит адресации и Текущий исполнитель.

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

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

Один из реквизитов адресации задачи является основным и означает конкретного сотрудника ‑ исполнителя заданий.

Рис. 426. Схема адресации

Поясним на примере работу системы адресации.

Допустим, что есть регистр сведений, состоящий из двух измерений ‑ роль и сотрудник, в который внесены следующие записи.

Роль Сотрудник
Кассир Иванов
Менеджер Петров

Допустим, что есть бизнес-процесс (например, Принять наличную оплату), в одной из точек которого в свойствах адресации установлена только роль Кассир. При переходе бизнес-процесса на эту точку будет сформирована одна задача.

Свойство задачи Значение
Наименование Принять наличную оплату
Роль Кассир
Сотрудник

При просмотре сотрудником Ивановым списка задач для себя система адресации покажет ему эту задачу, т. к. в регистре сведений есть запись о том, что для Иванова установлена роль Кассир. Сотрудник Петров эту задачу не увидит.

Приведем примерную последовательность действий для создания двух различных бизнес-процессов:

1. Будем исходить из того, что выбрана 3-мерная система адресации ‑ сотрудник, роль, подразделение.

2. Создадим справочники для каждого из планируемых измерений адресации (Сотрудники, Роли, Подразделения) и заполним их предопределенными значениями:

Сотрудники Роли Подразделения
Иванов Кассир Бухгалтерия
Петров Менеджер Отдел продаж
Сидоров Руководитель отдела Склад
Кладовщик

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

Измерение Тип
Сотрудник СправочникСсылка.Сотрудники
Роль СправочникСсылка.Роль
Подразделение СправочникСсылка.Подразделения

4. Создадим параметр сеанса ТекущийИсполнитель и установим ему тип СправочникСсылка.Сотрудники.

5. Проинициализируем параметр сеанса при запуске системы:

Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
    Пользователь = Справочники.Сотрудники.
                    НайтиПоНаименованию(ИмяПользователя());
    ПараметрыСеанса.ТекущийИсполнитель = Пользователь;
КонецПроцедуры

1. Создадим задачу.

2. Установим созданный ранее регистр сведений в свойство задачи Адресация.

3. Добавим к задаче реквизиты адресации аналогично измерениям регистра сведений:

● Сотрудник,

● Роль,

● Подразделение.

4. Установим для созданных реквизитов адресации задачи тип в виде ссылки на соответствующий справочник и в свойстве Реквизиты адресации установим ссылку на измерение регистра сведений.

Реквизит адресации Тип Измерение
адресации
Сотрудник СправочникСсылка.Сотрудники Сотрудник
Роль СправочникСсылка.Роль Роль
Подразделение СправочникСсылка.Подразделения Подразделение

5. Выберем реквизит Сотрудник в качестве основного реквизита адресации, установив его в соответствующем свойстве задачи.

6. Создадим первый бизнес-процесс и установим у него ссылку на созданную ранее задачу (свойство Задача).

Спроектируем маршрутную карту бизнес-процесса, устанавливая нужные реквизиты адресации для точек маршрута, выбирая их из предопределенных данных соответствующих справочников.

Рис. 427. Карта бизнес-процесса

7. Создадим следующий бизнес-процесс и установим у него ссылку на эту же задачу.

8. Спроектируем маршрутную карту созданного бизнес-процесса. И так далее.

В дальнейшем будем использовать этот пример для комментирования ключевых особенностей бизнес-процессов в системе «1С:Предприятие».

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

13.5. Старт бизнес-процесса

Бизнес-процесс стартует при вызове метода Старт() или нажатии кнопки Стартовать и закрыть в форме объекта.

Нижеследующий фрагмент кода показывает программное создание, запись и старт бизнес-процесса.

БП = БизнесПроцессы.Согласование.СоздатьБизнесПроцесс();
БП.Дата = ТекущаяДата();
БП.Записать();
БП.Старт();

При старте выполняется следующая последовательность действий.

Внутренний механизм Обработчики
на встроенном языке
1 Вызов обработчика ПередСтартом у точки старта
2 Продвижение по карте маршрута до точки действия
3 Формирование задач (см. здесь)

Бизнес-процесс может быть записан, но не стартован. Это может оказаться полезным, если создание бизнес-процесса и его старт разделены во времени. Например, когда бизнес-процесс стартует при наступлении некоторого события.

13.6. Выполнение задач

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

Внутренний
механизм
Обработчики
на встроенном языке
1 Начало транзакции
2 Вызов обработчика ПередВыполнением у задачи
3 Вызов обработчика ПередВыполнением у соответствующей точки маршрута
4 Установка свойства Выполнена у задачи равным Истина
5 Вызов обработчика ПриВыполнении у задачи
6 Запись объекта задачи
7 Вызов обработчика ПриВыполнении у соответствующей точки маршрута
8 Переход бизнес-процесса на следующую точку маршрута
9 Формирование задач по новой точке маршрута (см. здесь)
10 Завершение транзакции

13.7. Разделение и слияние

Для разделения бизнес-процесса на несколько параллельно (одновременно и независимо) исполняемых ветвей используется точка разделения. Точка разделения имеет один вход и неограниченное количество выходов.

Для синхронизации разделенных ранее ветвей используется точка слияния. Бизнес-процесс не будет выполняться дальше точки слияния, пока все входящие в нее ветви не будут пройдены. Таким образом, точка слияния является этапом бизнес-процесса, на котором должны быть завершены все задачи по разделенным ранее веткам.

Допускается вложенное разделение и слияние. При этом каждая точка слияния будет синхронизировать только ветки «своей» точки разделения.

ВНИМАНИЕ! Разделение может быть и без слияния. В этом случае бизнес-процесс будет иметь несколько параллельных ветвей до своего завершения.

Слияние без разделения не допускается, о чем выдается соответствующее сообщение при проверке карты маршрута: Не все линии, вошедшие в точку слияния, вышли из точки разделения.

13.8. Ручное управление

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

13.8.1. Признак завершенности бизнес-процесса

Если установить признак завершенности, то бизнес-процесс будет считаться завершенным, даже несмотря на то, что связанные с ним задачи еще не выполнены. И при выполнении этих задач завершенный бизнес-процесс уже не будет двигаться дальше по маршруту.

Признак завершения можно установить у нестартованного бизнес-процесса. В этом случае его старт в дальнейшем будет невозможен.

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

13.8.2. Признак выполнения задачи

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

Ручная установка признака выполнения может привести к остановке бизнес-процесса ‑ он не будет завершен, но по нему не будет ни одной невыполненной задачи.

Снятие признака выполнения у задачи может привести к появлению параллельного потока в незавершенном бизнес-процессе. Допустим, бизнес-процесс еще не завершен и по нему есть одна выполненная и одна невыполненная задача. Если снять признак выполнения с выполненной задачи, то у данного бизнес-процесса появятся две невыполненные задачи. При выполнении каждой из них бизнес-процесс будет двигаться дальше по карте маршрута от точки, соответствующей выполненной задаче. При этом бизнес-процесс будет считаться завершенным, когда все задачи в обеих параллельных ветвях будут выполнены.

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

13.8.3. Удаление задач

Если удалить невыполненные задачи незавершенного бизнес-процесса, то он может остановиться. Такой бизнес-процесс будет незавершенным, но по нему не будет ни одной активной (невыполненной) задачи.

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

Удаление всех задач для незавершенного бизнес-процесса переводит его в статус нестартованного.

13.8.4. Добавление задач

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

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

Создание новой задачи для уже стартовавашего и незавершенного бизнес-процесса приводит к его распараллеливанию.

13.9. Условный переход

Для условного ветвления бизнес-процесса используется точка условного перехода. Важной особенностью этой точки является обработчик проверки условия, наличие которого обязательно и контролируется при проверке карты маршрута перед сохранением бизнес-процесса. Если обработчик отсутствует, то будет выдано предупреждение: Точка условия не имеет обработчика события “Проверка условия”.

Этот обработчик должен вернуть результат проверки условия, от которого будет зависеть выбор следующей точки маршрута. Если результат Истина, то бизнес-процесс пойдет по ветке Да, в противном случае ‑ по ветке Нет. По умолчанию результат устанавливается равным значению Ложь.

Обработчик проверки условия может, например, иметь такой вид:

Процедура ОграничениеСкидкиПроверкаУсловия(ТочкаМаршрутаБП, Результат)
    Если ПолучитьСкидкуПоСчету() > ПолучитьОбычнуюСкидку() Тогда
        Результат = Истина;
    Иначе
        Результат = Ложь;
    КонецЕсли;
КонецПроцедуры

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

13.10.Выбор варианта

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

Этот обработчик должен установить параметр Результат равным одному из предусмотренных вариантов. Процедура-обработчик может иметь примерно такой вид:

Процедура ВыборВарианта (ТочкаВыбораВарианта, Результат)
    Если ВидОплаты = Перечисления.ВидОплаты.Наличная Тогда
        Результат = ТочкаВыбораВарианта.Варианты.Наличная;
    ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Безналичная Тогда
        Результат = ТочкаВыбораВарианта.Варианты.Безналичная;
    ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Взаимозачет Тогда
        Результат = ТочкаВыбораВарианта.Варианты.Взаимозачет;
    ИначеЕсли ВидОплаты = Перечисления.ВидОплаты.Кредит Тогда
        Результат = ТочкаВыбораВарианта.Варианты.Кредит;
    КонецЕсли;
КонецПроцедуры

В этом обработчике ВидОплаты ‑ реквизит бизнес-процесса.

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

13.11.Формирование задач

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

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

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

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

Сотрудник Роль Подразделение
Иванов Кассир
Петров Кассир

Таким образом, для групповых точек маршрута ролевая маршрутизация применяется только один раз ‑ в момент формирования списка задач.

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

Внутренний механизм Обработчики
на встроенном языке
1 Начало транзакции
2 Вызов обработчика ПередСозданиемЗадач()
3 Формирование списка задач
4 Вызов обработчика ПриСозданииЗадач()
5 Запись всех сформированных задач
6 Вызов обработчика ПередЗаписью() у задачи
7 Запись задачи
8 Вызов обработчика ПриЗаписи() у задачи
9 Завершение транзакции

На втором шаге происходит вызов обработчика ПередСозданиемЗадач(). Этот обработчик вызывается до формирования списка задач самим бизнес-процессом, поэтому ему передается пустой массив формируемых задач с тем, чтобы его можно было сформировать самостоятельно и отказаться от стандартной обработки.

На третьем шаге бизнес-процесс проверяет, вернул ли предыдущий обработчик СтандартнаяОбработка = Истина. Если да, то производится разыменование установленных в точке маршрута реквизитов адресации и формируется одна задача или список задач (для групповой точки) по количеству результатов разыменования (например, количество сотрудников отдела). При этом каждой сформированной задаче устанавливается наименование, ссылка на бизнес-процесс и точку маршрута и соответствующие реквизиты адресации.

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

На пятом шаге проверяется нормальное завершение обработчика ПриСозданииЗадач(). Если обработчик в параметре Отказ вернул значение Истина, то процесс создания задач прерывается и вызывается исключение. В нашем случае это приведет к отмене выполнения метода Старт(). Если же Отказ = Ложь, то производится запись всех задач из сформированного массива с вызовом обработчиков ПередЗаписью() и ПриЗаписи() у каждой отдельной задачи (шаги 6 и 8 соответственно).

При формировании бизнес-процессом массива задач у них автоматически заполняются следующие реквизиты:

● Наименование устанавливается равным наименованию соответствующей точки маршрута, например Выписка счета.

● Ссылка на экземпляр бизнес-процесса, породившего эту задачу.

● Ссылка на точку маршрута бизнес-процесса.

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

13.12.Проверка выполнения

Выполнение задач может осуществляться не только пользователями, но и автоматизированными процедурами. Например, если задача предусматривает проведение документа, то автоматическая процедура слежения за такими задачами может определять, что нужный документ уже проведен, и помечать задачу как выполненную путем вызова у нее метода Выполнить().

Для организации такого рода автоматизированных процедур предназначен метод ПроверкаВыполнения() у задачи и соответствующие ему обработчики у точек маршрута.

Рассмотрим последовательность действий, которая произойдет в результате работы следующего кода на встроенном языке.

Если Задача.ПроверитьВыполнение() Тогда
    Задача.ВыполнитьЗадачу();
КонецЕсли
Внутренний
механизм
Обработчики
на встроенном языке
1 Обработка вызова метода ПроверитьВыполнение()
2 Вызов обработчика ОбработкаПроверкиВыполнения() у задачи. Если Результат равен Ложь, то метод ПроверитьВыполнение() сразу возвращает Ложь
3 Вызов обработки ОбработкаПроверкиВыполнения() у соответствующей точки маршрута
4 Возврат результата вызова обработчика из предыдущего пункта и, если он равен Истина, вызов метода ВыполнитьЗадачу()

Описание одного из способов использования автоматизированного выполнения задач см. здесь.

13.13.Выполнение вложенных процессов

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

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

Внутренний
механизм
Обработчики
на встроенном языке
1 Начало транзакции
2 ПередСозданиемВложенныхБизнесПроцессов()
3 Вызов обработчика ПередСозданиемЗадач() для точки маршрута
4 Если СтандартнаяОбработка, то формируется массив задач
5 ПриСозданииЗадач()
6 Запись массива сформированных задач и создание массива вложенных бизнес-процессов
7 ПриСозданииВложенныхБизнесПроцессов()
8 Запись и старт сформированных бизнес-процессов
9 Завершение транзакции

Рассмотрим подробнее.

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

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

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

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

На седьмом шаге происходит вызов обработчика ПриСозданииВложенныхБизнесПроцессов(). Обработчик этого события может «донастроить» автоматически сформированные бизнес-процессы (их количество равно количеству задач после обработчика ПриСозданииЗадач()) или удалить некоторые из них, а также добавить к ним новые бизнес-процессы. Запись списка бизнес-процессов будет осуществлена после завершения обработчика.

13.14.Завершение бизнес-процесса

Завершение является последним этапом в жизненном цикле бизнес-процесса. Бизнес-процесс автоматически становится завершенным (свойству Завершен устанавливается значение Истина) при достижении точки завершения и при условии отсутствия невыполненных задач по этому бизнес-процессу.

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

При переходе на точку завершения вызывается обработчик ПриЗавершении(). Если он установит Отказ равным Истина, например, если не выполнены все необходимые условия завершения бизнес-процесса, то обработка прерывается. Задача по точке маршрута, выполнение которой привело к переходу на точку завершения, при этом остается невыполненной.

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

13.15.Стандартные реквизиты бизнес-процессов и задач

В таблицах перечислены предопределенные поля бизнес-процессов и задач.

Стандартные реквизиты бизнес-процессов:

Реквизит Тип
ПометкаУдаления Булево
Номер Строка или Число
Дата Дата
Завершен Булево
ВедущаяЗадача ЗадачаСсылка.<Имя задачи>
Ссылка БизнесПроцессСсылка.<Имя бизнес-процесса>

Стандартные реквизиты задач:

Реквизит Тип
ПометкаУдаления Булево
Номер Строка или Число
Дата Дата
Наименование Строка
Выполнена Булево
БизнесПроцесс БизнесПроцессСсылка.<Имя бизнес-процесса>
ТочкаМаршрута БизнесПроцессСсылка.<Имя бизнес-процесса>
Ссылка ЗадачаСсылка.<Имя задачи>

13.16.Бизнес-процессы с несколькими точками старта

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

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

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

● определить интерактивные команды старта для указания корректной точки старта в каждом случае старта бизнес-процесса.

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

Пример:

Процедура ВложенноеСогласованиеПриСозданииВложенныхБП(ТочкаМаршрутаБП, ФормируемыеПроцессы, Отказ)
    Для каждого БизнесПроцесс из ФормируемыеПроцессы Цикл
        БизнесПроцесс.Записать();
        Точки = БизнесПроцессы.СогласованиеДокумента.ТочкиМаршрута;
        БизнесПроцесс.Старт(Точки.УпрощенноеСогласование);
    КонецЦикла
КонецПроцедуры

В остальном использование бизнес-процессов с несколькими точками старта ничем не отличается от обычных бизнес-процессов.

13.17.Обратная связь

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

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

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

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

Для этого последовательно выполним следующие действия:

● Добавим оповещение о проведении в форму документа:

Процедура ПослеЗаписи(Отказ)
    Если БылоПроведение Тогда
        Оповестить("ПроведениеДокумента", , ЭтотОбъект.Ссылка);
    КонецЕсли;
КонецПроцедуры

● Зарегистрируем обработчик оповещения. Это можно сделать в обработчике ПриНачалеРаботыСистемы() модуля управляемого приложения:

ПодключитьОбработчикОповещения("ОбработчикОповещения");

● Из обработчика оповещения вызовем метод серверного общего модуля (например, РаботаСБизнесПроцессами), который выполнит необходимые проверки и задачу:

// Обработчик оповещения в модуле управляемого приложения
Процедура ОбработчикОповещения(ИмяСобытия, Параметр, Источник) Экспорт
    Если ИмяСобытия = "ПроведениеДокумента" Тогда
        РаботаСБизнесПроцессами.ВыполнитьЗадачуПоДокументу(Источник);
    КонецЕсли;
КонецПроцедуры
...
&НаСервере
// Метод серверного общего модуля РаботаСБизнесПроцессами
Процедура ВыполнитьЗадачуПоДокументу(ДокументСсылка) Экспорт
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("Парам", ДокументСсылка);
        Запрос.Текст =
                "ВЫБРАТЬ
                |Ссылка
                |ИЗ
                |Задача.Задача.ЗадачиПоИсполнителю
                |
                |ГДЕ
                |Документ = &Парам";
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
            ТекущаяЗадача = Выборка.Ссылка.ПолучитьОбъект();
            Если ТекущаяЗадача.ПроверитьВыполнение() Тогда
                ТекущаяЗадача.ВыполнитьЗадачу();
            КонецЕсли;
        КонецЦикла;
КонецПроцедуры

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

Рассмотрим специфические особенности конфигурирования объектов бизнес-процессов и задач.

13.18.Карта маршрута

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

Для редактирования карты маршрута на закладке Прочее окна редактирования бизнес-процесса нужно нажать кнопку Карта маршрута (подробнее см. здесь).

13.19.Редактирование бизнес-процесса

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

Конфигуратор позволяет описать структуру бизнес-процесса, создать формы и карту маршрута бизнес-процесса.

Свойства бизнес-процессов редактируются в палитре свойств или окне редактирования объекта (см. здесь).

Наряду с общими свойствами, присущими всем объектам метаданных, бизнес-процессы обладают рядом специфических свойств.

Свойство Задачи определяет ссылку на сконфигурированный ранее объект задачи. Бизнес-процессу обязательно должна быть назначена одна задача из числа уже существующих в конфигурации. Задачи используются бизнес-процессом для формирования заданий по исполнителям или для запуска вложенных бизнес-процессов. Если задача не назначена, то при сохранении конфигурации базы данных будет выдана ошибка: Не выбрана задача бизнес-процесса.

Автонумерация. Установка свойства приводит к тому, что вновь введенному бизнес-процессу номер будет присваиваться автоматически. Автоматически присвоенный номер можно исправить.

Длина номера. Устанавливает максимальную длину номера бизнес-процесса. Конфигуратор позволяет установить длину номера равной 0, если в бизнес-процессе данного вида номер не используется.

Тип номера. Свойство позволяет выбрать тип значения для номера бизнес-процесса ‑ Число или Строка. Это свойство аналогично свойству Тип номера документа.

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

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

Периодичность. Свойство устанавливает пределы контроля уникальности номеров бизнес-процессов и период повторяемости номеров. Если установлено свойство Контроль уникальности, то в свойстве Периодичность указывается, в каких пределах будет осуществляться этот контроль.

При установленном свойстве Автонумерация система «1С:Предприятие» будет присваивать очередной порядковый номер каждому новому бизнес-процессу. После завершения периода, установленного в свойстве Периодичность, нумерация бизнес-процессов начнется с 1.

На закладке Права имеется возможность установки привилегированного режима при создании задач (свойство Привилегированный режим при создании задач):

● Если свойство установлено, то все действия по формированию задач система будет выполнять в привилегированном режиме (при исполнении на стороне сервере и в файловом варианте). Однако привилегированный режим не будет установлен, если формирование задач выполняется в клиент-серверном варианте на стороне толстого клиента.

● При создании новых бизнес-процессов свойство установлено в значение Истина, если в свойствах конфигурации указан основной режим запуска ‑ управляемое приложение, и в значение Ложь, если основным режимом запуска указан обычный.

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

Если объект предметной области, которой соответствует бизнес-процесс, имеет не только такие «простые» свойства, как, например, дату, номер, важность или контрольный срок, но и составные (списочные) свойства, как, например, список документов на согласование, список резолюций, список участников бизнес-процесса, для бизнес-процесса может быть создан набор табличных частей.

13.20.Редактирование задачи

Объекты типа Задачи предназначены для выдачи и исполнения заданий пользователями системы. Задания могут формироваться как самими пользователями, так и конкретными бизнес-процессами.

Задачи могут применяться самостоятельно или использоваться для обеспечения функционирования бизнес-процессов разного вида.

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

Описываемые в конфигурации структура и свойства задачи определяются особенностями автоматизируемой предметной области.

Для каждой задачи может быть создано несколько форм списка, выбора, просмотра и редактирования.

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

Свойства задачи редактируются в палитре свойств или окне редактирования объекта (см. здесь).

Наряду с общими свойствами, присущими всем объектам метаданных, задачи обладают рядом специфических свойств.

Адресация. Задаче может быть назначен непериодический регистр сведений, с измерениями которого можно связать реквизиты адресации задачи. Это связывание позволяет определять значение основного реквизита адресации задачи на основании данных, содержащихся в соответствующем регистре сведений, что делает возможной не только прямую адресацию задач конкретным исполнителям, но и ролевую.

Основной реквизит адресации. Один из реквизитов адресации задачи может быть назначен основным. В этом случае именно в этом реквизите адресации необходимо будет указывать конкретного исполнителя задания. Если исполнитель не будет указан, то значение этого реквизита адресации будет определяться из связанного с задачей регистра сведений (см. свойство Адресация).

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

Автопрефикс номера задачи. Может принимать значения Не использовать и Номер бизнес-процесса. Если это свойство установлено в значение Номер бизнес-процесса, то при создании новой задачи ее номер автоматически дополняется номером соответствующего ей бизнес-процесса.

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

Длина номера. Устанавливает максимальную длину номера задачи.

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

Контроль уникальности. Если это свойство установлено, то при вводе новой задачи ее номер проверяется на уникальность.

Автонумерация. Установка свойства приводит к тому, что вновь введенной задаче номер будет присваиваться автоматически. Автоматически присвоенный номер можно исправить.

Если объект предметной области, которой соответствует задача, имеет не только такие «простые» свойства, как, например, дату, номер, важность или контрольный срок исполнения, но и составные (списочные) свойства, как, например, список документов для согласования, то может быть создан набор табличных частей.

Механизм бизнес-процессов автоматически формирует задачи по точкам маршрута в соответствии с настройками свойств адресации.
Однако в некоторых случаях встает необходимость программно переопределить стандартное создание задач. Для этого предназначены обработчики ПередСозданиемЗадач() и ПриСозданииЗадач().

Под согласованием понимается предварительная оценка проекта документа и/или получение согласия на его утверждение.

Бизнес-процесс согласования состоит из трех точек маршрута:
* определение списка рецензентов;
* cогласование рецензентами;
* обработка результата согласования.

В бизнес-процессе участвуют инициатор согласования и рецензенты.

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

После выполнения этой задачи бизнес-процесс завершается.

Так как исполнителей заранее определить нельзя , то в пояснении точек маршрута вписаны строки «Инициатор» и «Рецензенты» для того, чтобы сделать карту нагляднее. С этой же целью точке маршрута «На согласование» установлено свойство «Групповая», хотя реально оно не используется механикой бизнес-процесса, т.к. все задачи формируются программно.

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

Формирование задач на точках «Определить список рецензентов» и «Обработать результаты» происходит в обработчике ПередФормированиемЗадач() и отличается тем, что в первом случае свойство «Сотрудник» берется из параметра сеанса, а во втором — из свойства «Инициатор» бизнес-процесса:

Код 1C v 8.х

 Процедура ОпределитьСписокРецензентовПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка)

НоваяЗадача = Задачи.Задача.СоздатьЗадачу();
НоваяЗадача.БизнесПроцесс = ЭтотОбъект.Ссылка;
НоваяЗадача.ТочкаМаршрута = БизнесПроцессы.Согласование.ТочкиМаршрута.ОпределитьСписокРецензентов;
НоваяЗадача.Дата = ТекущаяДата();
НоваяЗадача.Наименование = БизнесПроцессы.Согласование.ТочкиМаршрута.ОпределитьСписокРецензентов.Наименован
ие;
НоваяЗадача.Сотрудник = ПараметрыСеанса.ТекущийИсполнитель;

ФормируемыеЗадачи.Добавить(НоваяЗадача);
СтандартнаяОбработка = Ложь;

КонецПроцедуры

На точке «На согласование» задачи формируются в обработчике «ПриСозданииЗадач» путем перебора элементов табличной части «Рецензии»:

Код 1C v 8.х

 Процедура НаСогласованиеПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)

Для Каждого Элемент Из Рецензии Цикл

НоваяЗадача = Задачи.Задача.СоздатьЗадачу();
НоваяЗадача.БизнесПроцесс = ЭтотОбъект.Ссылка;
НоваяЗадача.ТочкаМаршрута = БизнесПроцессы.Согласование.ТочкиМаршрута.НаСогласование;
НоваяЗадача.Дата = ТекущаяДата();
НоваяЗадача.Наименование = БизнесПроцессы.Согласование.ТочкиМаршрута.НаСогласование.Наименование;

НоваяЗадача.Сотрудник = Элемент.Рецензент;
НоваяЗадача.РольИсполнителя = Элемент.РольИсполнителя;
НоваяЗадача.Подразделение = Элемент.Подразделение;

ФормируемыеЗадачи.Добавить(НоваяЗадача);
НоваяЗадача.Записать();
Элемент.Задача = НоваяЗадача.Ссылка;

КонецЦикла;

Записать();

КонецПроцедуры

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