|
ПриВыполнении у точки маршрута БП типа "Действие" | ☑ | ||
---|---|---|---|---|
0
Dirk Diggler
26.09.23
✎
16:03
|
ПриВыполнении может вызываться на клиенте вообще?
ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса> (BusinessProcessRoutePointRef.<Business process name>) ПриВыполнении (OnExecute) Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Только для точек вида Действие. Вызывается только при выполнении последней задачи, соответствующей данной точке маршрута данного бизнес-процесса. Толстый клиент указан. Однако как не крути, вызывается всегда на сервере, конструкции в инструкциях препроцессора #Если Клиент тогда #КонецЕсли всегда пропускаются. Как сделать, чтобы на клиенте запустилось? Или никак все-таки? |
|||
1
unbred
26.09.23
✎
18:35
|
||||
2
Dirk Diggler
27.09.23
✎
12:40
|
(1) сути это не меняет. Главный вопрос - при каких условиях ПриВыполнении точки маршрута выполняется на клиенте?
|
|||
3
Fedor-1971
27.09.23
✎
13:02
|
(2) так в (0) прямо написано, что на клиенте не получится вызвать
Все события работы БП прописываются в модуле объекта, а он живёт НаСервере Общую картинку задачи опиши, т.к. взаимодействие с БП начинается НаКлиенте (из списка или формы документа, в оных можно что-то мудрить с доступом к БП) |
|||
4
Dirk Diggler
27.09.23
✎
14:44
|
(3) Цель: иметь возможность указывать различные процедуры, вызываемые при пометке задачи как выполненной, которые могли бы взаимодействовать с пользователем. Вводить текст, указывать какие-то документы, открыть формы справочников. А после этого проверять - реально ли пользователь сделал, что задача требует.
Поскольку точек маршрута БП множество разных, а вот объект метаданных "Задачи" один, то возникает проблема - как это сделать. Для каждой точки-то свое выполнение задачи. Какого-то внятного решения я не нашел, думал в обработчике события ПриВыполнении точки маршрута это все размещать, но нет, ничего не вышло. Получается, либо адски раздувать обработчик "ПриВыполнении" в форме задачи, зашивая туда все возможные варианты развития событий, либо вот ща костыль пишу. При создании задач в модуле объекта БП в реквизит задачи пишу текстом имя процедуры - интерактивного обработчика, и в форме задачи в обработчике ПриВыполнении вызываю эту процедуру через Выполнить(). Есть какой-то более правильный путь? |
|||
5
Dirk Diggler
27.09.23
✎
15:02
|
(3) >Все события работы БП прописываются в модуле объекта, а он живёт НаСервере
Вот буквально только что нашел. Коробочная УТ 10.3. Модуль объекта БП СогласованиеЗаказаПокупател. Процедура СформироватьЗадачиТочкиМаршрута(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка) .................. ПараметрыЗадач = РаботаСБизнесПроцессами.СформироватьПараметрыШапкиЗадач(ВыборкаПараметры); Вызывается модуль РаботаСБизнесПроцессами, причем процедура СформироватьПараметрыШапкиЗадач спрятана там в #Если Клиент. Естественно, не пашет. Но это, видимо, значит, что когда-то все работало по-другому? |
|||
6
Fedor-1971
27.09.23
✎
17:38
|
(4) это функционал самой задачи, не бизнес-процесса. Тут всё зависит от логики реализации. Можно генерить разные Задачи при некоторых условиях (состоянии) БП. Тоже не айс, но логика реализуется в замкнутом контуре Задачи
(5) это логика толстого клиента |
|||
7
Dirk Diggler
28.09.23
✎
14:15
|
(6) так у меня толстый клиент.
|
|||
8
Fedor-1971
28.09.23
✎
14:49
|
(7) тогда непонятен смысл работы именно с клиента
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |