Книга знаний

1С:Предприятие / v8 / Объекты конфигурации

v8: Связь задач и бизнес-процессов (часть 1, 2)

Часто задачи расценивают как вспомогательный объект бизнес-процессов. Однако это вполне самостоятельный объект, наделенный многими свойствами. При правильном подходе задачи могут стать мощным механизмом планирования и управления временем. Данная статья призвана показать пример связи задач и бизнес-процессов, для назначения конкретным исполнителям бизнес-процессов автоматически формируемых задач.Автор статьи: GROOVY | Редакторы: Волшебник, Добрый,
Последняя редакция №9 от 02.06.06 | История
URL: http://kb.mista.ru/article.php?id=244

Ключевые слова: задачи, адресация, бизнес-процесс, точка действия, групповая адресация


Книга знаний: v8: Бизнес-процессы и задачи

Исходная ситуация.


Как говорилось в описанной ранее статье (Книга знаний: v8: Адресация задач.) для объекта "Задача" очень важны свойства адресации. В этой статье я постараюсь на простом примере показать как правила адресации могут применяться в контексте задач создаваемых точками маршрута бизнес процессов.

Исходная структура метаданных такая:
Справочники: Исполнители, Отделы. Оба без дополнительных настроек, без иерархии и без предопределенных элементов.

Перечисление Роли с двумя значениями: Руководитель и РядовойСотрудник.

Параметр сеанса "ТекущийИсполнитель", тип: СправочникСсылка.Исполнители.

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

Задача "ЗадачиБП" с тремя реквизитами адресации:  Исполнитель (основной реквизит адресации, тип: СправочникСсылка.Исполнители), Отдел (тип значения: СправочникСсылка.Отделы) и Роль (тип значения: ПеречислениеСсылка.Роли).  В свойстве "Адресация" указан регистр сведений "ПравилаАдресации", "Основной реквизит адресации" - "Исполнитель", "ТекущийИсполнитель" – ссылка не параметр сеанса "ТекущийИсполнитель".

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

Несколько слов о свойствах бизнес-процессов


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

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

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

Обычно точки маршрута, которые создают задачи, обладают возможностью описания событий интерактивной работы пользователя. Точки маршрута не создающие задачи такими событиями не обладают (!).
Одним из свойств бизнес-процесса (БП) является связь с объектом "Задача" в котором создаются задачи точек маршрута этого БП.

С одним объектом "Задача" может быть связано несколько БП.

А что на практике


Создадим простой БП . Ну например БП внутреннего аудита компании.

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

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

Но нас сейчас интересуют в первую очередь  точки действия и те задачи, которые они создают.

Рассмотрим свойства каждой из точек действия подробно.

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

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

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


Вопрос: Почему цикл? Разве задача не одна формируется? А вот этого никто не знает. Точка действия может формировать сколь угодно задач.

Кстати, если в событии "ПриСозданииЗадач" установить свойство "Выполнена" в Истина, то задача будет выполнена, но ход бизнес-процесса дальше не сдвинется.

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

Конец первой части.


Часть вторая.
2.    Подготовить отчетную документацию. В свойствах адресации этой точки действия установим значение "Роль" – Руководитель. И флаг "Групповая".

<IMG SRC="files/groovy_2_3.gif">

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

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

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

Но давайте посмотрим, как ведет себя стандартный механизм.

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

Процедура УстановитьПС(Кнопка)
    Исполнитель = ЭлементыФормы.СправочникСписок.ТекущиеДанные.Ссылка;
    ПараметрыСеанса.ТекущийИсполнитель = Исполнитель;
    Предупреждение("В параметр сеанса установлен исполнитель " + Исполнитель,60); 
КонецПроцедуры


В справочнике "Исполнители" уже в режиме 1С:Предприятие введу нескольких пользователей.

<IMG SRC="files/groovy_2_4.gif">

И регистр сведений "Правила адресации" заполним следующим образом:

<IMG SRC="files/groovy_2_5.gif">
Что-то многовато у меня руководителей получилось :)

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

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

Итак, БП стартовал, первая задача должна была создаться с исполнителем указанным в БП.

<IMG SRC="files/groovy_2_6.gif">

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

<IMG SRC="files/groovy_2_7.gif">

То есть независимо от того, в каком отделе числится руководитель, для него создается задача. Так действуют правила адресации на задачи с флагом "Групповая".

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

Конец второй части.


Павел Чистов aka GROOVY
Институт технологий сопровождения.
1С:Центр сертифицированного обучения, Санкт-Петербург.
www.its-spb.ru
its(at)its-spb.ru

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика