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