v8: Работа с картой маршрута бизнес-процессов.Карта маршрута является очень наглядным интерактивным инструментом для работы с бизнес-процессами. При использовании в прикладных задачах для взаимодействия системы с пользователями карт бизнес-процессов облегчается воспринимаемость информации. | | Автор статьи: GROOVY | Редакторы: Волшебник Последняя редакция №4 от 12.07.06 | История URL: http://kb.mista.ru/article.php?id=282 | |
Ключевые слова: карта маршрута, бизнес-процесс
Книга знаний: v8: Бизнес-процессы и задачи
Приведем простой пример универсальной карты маршрута, отображающей ход бизнес-процесса и возможностью интерактивного открытия задачи по точке маршрута.
Так как реализовывать я собираюсь универсальную обработку то логично сразу делать ее внешней. Единственным реквизитом моей обработки будет Бизнес-Процесс (БП) с типом БизнесПроцессСсылка.
Карта маршрута это ничто иное, как графическая схема, соответственно в форму обработки кроме поля БП необходимо вставить поле графической схемы. Я это поле назову КартаМаршрута. В итоге получится что то вроде этого:
Далее в модуле формы опишем получение карты маршрута выбранного пользователем БП.
Процедура ОбновитьКарту()
БПОбъект = БизнесПроцесс.ПолучитьОбъект();
ЭлементыФормы.КартаМаршрута.УстановитьСхему(БПОбъект.ПолучитьКартуМаршрута());
КонецПроцедуры
Процедура связана с кнопкой на верхней панели действий.
Теперь для активных точек маршрута (чьи задачи созданы, но не завершены) система будет подсвечивать точку красной пунктирной линией.
Далее необходимо описать интерактивное открытие формы задачи по двойному щелчку по точке маршрута. Для реализации этого опишем событие поля графической схемы "Выбор". Будем искать с помощью запроса созданные задачи выбранного БП по этой точке маршрута. Помните что по точке маршрута может быть создано несколько задач!
Сам запрос для получения списка задач вынесем в модуль обработки:
Функция ПолучитьСписокЗадач(ТочкаМаршрута) Экспорт
Запрос = Новый Запрос;
НазваниеЗадачи = БизнесПроцесс.Метаданные().Задача.Имя;
Запрос.Текст = "ВЫБРАТЬ
| Задачи.Ссылка КАК Задача
|ИЗ
| Задача."+НазваниеЗадачи+" КАК Задачи
|ГДЕ
| Задачи.БизнесПроцесс = &БизнесПроцесс
| И Задачи.ТочкаМаршрута = &ТочкаМаршрута";
Запрос.УстановитьПараметр("БизнесПроцесс", БизнесПроцесс);
Запрос.УстановитьПараметр("ТочкаМаршрута", Точкамаршрута);
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса;
КонецФункции
В форме по событию "Выбор" опишем получение списка задач. Если задача одна то откроем ее форму (вызовем событие "АктивизироватьИнтерактивно", при этом может открыться и не форма задачи, а например форма БП). В том случае если задач запрос вернет несколько предложим пользователю выбрать необходимую из списка.
Процедура КартаМаршрутаВыбор(Элемент)
ТочкаМаршрута = ЭлементыФормы.КартаМаршрута.ТекущийЭлемент.Значение;
Если ТочкаМаршрута.Вид <> ВидТочкиМаршрутаБизнесПроцесса.ВложенныйБизнесПроцесс И
ТочкаМаршрута.Вид <> ВидТочкиМаршрутаБизнесПроцесса.Действие Тогда
Возврат; //Если по точке маршрута не создаются задачи, то искать их бессмысленно.
КонецЕсли;
СписокЗадач = ПолучитьСписокЗадач(ТочкаМаршрута).Выгрузить();
Если СписокЗадач.Количество() = 0 Тогда
Возврат; //Нет задач
ИначеЕсли СписокЗадач.Количество() = 1 Тогда
Задача = СписокЗадач[0].Задача.ПолучитьОбъект();
//Задача одна
Иначе
ВыбЗадача = СписокЗадач.ВыбратьСтроку("Выверите задачу");
Если ВыбЗадача = Неопределено Тогда
Возврат; //Пользователь не выбрал задачу
КонецЕсли;
Задача = ВыбЗадача.ПолучитьОбъект();
КонецЕсли;
Задача.АктивироватьИнтерактивно();
КонецПроцедуры
Естественно, в конкретных случаях можно наделить работу с картой маршрута какими-нибудь специфическими возможностями для работы с БП.
Обработка:
http://www.kb.mista.ru/files/282/MapBP.epf
Павел Чистов aka GROOVY
Институт технологий сопровождения.
1С:Центр сертифицированного обучения, Санкт-Петербург.
www.its-spb.ru
its(at)its-spb.ru
|