![]() |
![]() |
![]() |
|
Поможите по бизнес-процессу... | ☑ | ||
---|---|---|---|---|
0
mikecool
19.03.13
✎
12:34
|
Есть БП, в первой точке стартует задача
В задаче три реквизита адресации: исполнитель, группа пользователей, подразделение Адресация указана в регистр сведений с измерениями: исполнитель, группа пользователей, подразделение В РС три записи: Вася Группа1 Подразделение1 Петя Группа1 Подразделение1 Иван Группа1 Подразделение1 У точки, в которой стартует задача, стоит признак "Групповая" в процедуре ПриСозданииЗадач пишу: Для Каждого Задача Из ФормируемыеЗадачи Цикл Задача.ГруппаПользователей = Группа1; Задача.Подразделение = Подразделение1; КонецЦикла; однако в ФормируемыеЗадачи - всего одна задача. Почему она только одна? Может стоит обратить внимание на событие ПередСозданиемЗадач? но там тоже есть массив ФормируемыеЗадачи, что немного смущает... |
|||
1
mikecool
19.03.13
✎
12:38
|
а в ПередСозданиемЗадач массив еще пуст (
|
|||
2
mikecool
19.03.13
✎
12:39
|
"Почему она только одна? " - может ли это быть оттого, что у ТочкаМаршрутаБизнесПроцесса не заполнены соответствующие реквизиты?
|
|||
3
vvp91
19.03.13
✎
12:39
|
>>> (0) Может стоит обратить внимание на событие ПередСозданиемЗадач?
Да, стоит обратить внимание: в обработчике ПередСозданиемЗадач сказать СтандартнаяОбработка = Ложь; |
|||
4
mikecool
19.03.13
✎
12:41
|
(3) не, мне как раз не хочется отказываться от стандартной обработки
|
|||
5
mikecool
19.03.13
✎
12:42
|
щас попробую достучаться до бизнес процесса в ПередСозданиемЗадач и установить параметры точке
|
|||
6
vvp91
19.03.13
✎
12:46
|
>>>(4) не, мне как раз не хочется отказываться от стандартной обработки
Процитирую 2 издание профразработки (Радченко): "Если в точке маршрута установлен признак Групповая, бизнес-процесс отбирает в регистре сведений, ответственном за адресацию, все записи, соответствующие установленным в данной точке реквизитам адресации, и для каждой из них формирует свою задачу. ... Если при создании собственного массива задач в параметр процедуры Стандартная обработка не записать значение Ложь, то созданный массив очистится и заполнится задачами, исходя из поведения системы по умолчанию (так, как если бы этот обработчик определен не был)." Таким образом стандартное поведение определяет только одну точку адресации и генерирует только одну задачу. Хочешь много задач? Генерируй по своему и ставь Ложь в СтандартнаяОбработка или же разбирайся, почему определяется только одна точка адресации. |
|||
7
mikecool
19.03.13
✎
12:48
|
(6) ага, понятненько...
щас проверю единственный момент - укажу в перед созданием задач параметры точки маршрута и таки посмотрю на стандартное поведение )) интересно |
|||
8
mikecool
19.03.13
✎
13:03
|
(6) "Если в точке маршрута установлен признак Групповая, бизнес-процесс отбирает в регистре сведений, ответственном за адресацию, все записи, соответствующие установленным в данной точке реквизитам адресации, и для каждой из них формирует свою задачу. " - у меня получается так, что у точки маршрута не заполнены реквизиты адресации
вот как они должны заполняться - я чета хз (( |
|||
9
mikecool
19.03.13
✎
13:13
|
по ссылке http://chistov.spb.ru/publ/5-1-0-6
данные для задач из регистра адресации берутся в случае, если указана адресация у точки в конфигураторе а мне надоть указать ее динамиськи, как это сделать? |
|||
10
mikecool
19.03.13
✎
13:26
|
почитал, что эти свойства фик установить для точки
но также вычитал, что в передсозданиемзадач уже должен быть список формируемых задач, а у меня он пуст ( чяднт? |
|||
11
vvp91
19.03.13
✎
13:32
|
(8) вот как они должны заполняться - я чета хз ((
"При отметке свойства Групповая в данной точке будет создаваться столько задач, сколько записей в регистре сведений, ответственном за адресацию, будет найдено с установленными значениями реквизитов адресации." Нужно: * или в конфигураторе явно задать реквизит адресации, по которому система найдет записи в регистре адресации; * или в обработчике ПередСозданиемЗадач генерировать задачи в массив ФормируемыеЗадачи с указание исполнителя и отключить стандартную обработку. (9) а мне надоть указать ее динамиськи, как это сделать? Генерируй задачи самостоятельно, отключай стандартную обработку. (10) чяднт? Ты ожидаешь, что групповая точка действия, у которой не настроены реквизиты адресации, создаст автоматом множество задач. Нет, система выстрелит обработчиками точки действия, но не создаст ни одной задачи. |
|||
12
mikecool
19.03.13
✎
13:34
|
(11) "Ты ожидаешь, что групповая точка действия, у которой не настроены реквизиты адресации, создаст автоматом множество задач." я просто не понимаю, почему я не могу установить реквизиты адресации динамически и далее передать управление системе для автоматического формирования задач ((
|
|||
13
mikecool
19.03.13
✎
13:34
|
+12 свойства есть, но указать их можно только на этапе конфигурирования, имхо - как то это неправильно
|
|||
14
vvp91
19.03.13
✎
13:40
|
>>>(12) ...почему я не могу установить реквизиты адресации динамически...
Ну не можешь ты исполнением кода установить значение свойства адресации на точку действия бизнес-процесса, поскольку точки действия конфигурируются при разработке. По-крайне мере, мне таких возможностей не известно. Ты можешь создать задачу в данной точке действия, для которой задать исполнителя (адресацию) динамически. Создание задач делать в обработчике ПередСозданиемЗадач. |
|||
15
mikecool
19.03.13
✎
13:47
|
(14) спасибо. я смирился и рисую задачи программно на основании регистра адресации 0
|
|||
16
mikecool
19.03.13
✎
15:47
|
продолжу тему
в ПередСозданиемЗадач точки-действие создал задачу, привязал к БП, указал задаче точку маршрута, сохранил но БП не останавливается и ждет выполнение, а идет на слетующую точку я что-то забыл указать? создаю так: Процедура ПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; НоваяЗадача = Задачи.МояЗадача.СоздатьЗадачу(); НоваяЗадача.Наименование = ТочкаМаршрутаБизнесПроцесса.НаименованиеЗадачи; НоваяЗадача.Дата = ТекущаяДата(); НоваяЗадача.Подразделение = Ссылка.Подразделение; НоваяЗадача.ГруппаПользователей = Нужнач группа; НоваяЗадача.БизнесПроцесс = Ссылка; НоваяЗадача.Комментарий = "Утверждение."; НоваяЗадача.СсылкаНаДокумент = Ссылка.Документ; НоваяЗадача.ТочкаМаршрута = ТочкаМаршрутаБизнесПроцесса; НоваяЗадача.Записать(); КонецПроцедуры |
|||
17
vvp91
19.03.13
✎
15:55
|
>>>(16) я что-то забыл указать?
ФормируемыеЗадачи.Добавить(НоваяЗадача); |
|||
18
vvp91
19.03.13
✎
15:57
|
>>> (16) НоваяЗадача.Записать();
И, кстати, записывать здесь задачу НЕ нужно. Ее нужно просто добавить в массив формируемых задач. |
|||
19
mikecool
19.03.13
✎
15:58
|
(18) вот жеж ) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |