| 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С").
 |