|
Поведение бизнес-процесса | ☑ | ||
---|---|---|---|---|
0
svchernova
12.09.13
✎
18:11
|
Здравствуйте,
Проблема такая. Есть групповая точка маршрута бизнес-процесса, и соответственно всем сотрудникам (в моём случае первый руководитель и фин. директор) назначаются задачи. Эти люди взаимозаменяемы, и нужно сделать так, чтобы при выполнении задачи одним человеком выполнялась параллельная задача. Пытаюсь найти задачу и выполнить её в процедуре "ПриВыполнении" на точке маршрута. Не взлетает. как это можно сделать? Процедура УтверждениеПриВыполнении(ТочкаМаршрутаБизнесПроцесса, Задача, Отказ) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗадачаСогласованиеЗаявок.Ссылка, | ЗадачаСогласованиеЗаявок.Сотрудник |ИЗ | Задача.ЗадачаСогласованиеЗаявок КАК ЗадачаСогласованиеЗаявок |ГДЕ | ЗадачаСогласованиеЗаявок.БизнесПроцесс = &БизнесПроцесс | И ЗадачаСогласованиеЗаявок.ТочкаМаршрута = &ТочкаМаршрута "; Запрос.УстановитьПараметр("БизнесПроцесс",ЭтотОбъект.Ссылка); Запрос.УстановитьПараметр("ТочкаМаршрута",ТочкаМаршрутаБизнесПроцесса); ВыборкаЗапроса = Запрос.Выполнить().Выбрать(); Пока ВыборкаЗапроса.Следующий() Цикл Если ВыборкаЗапроса.Ссылка <> Задача Тогда ЗадачаОбъект = ВыборкаЗапроса.Ссылка.ПолучитьОбъект(); Если Задача.Отклонить Тогда ЗадачаОбъект.Отклонить = Истина; КонецЕсли; ЗадачаОбъект.ВыполнитьЗадачу(); КонецЕсли; КонецЦикла; |
|||
1
Asmody
12.09.13
✎
18:16
|
там обязательно две задачи или можно адресацией обойтись?
|
|||
2
Armando
12.09.13
✎
18:16
|
Групповые точки не для этого предназначены.
Тут с адресацией мутить надо. Группы делать. Например, будет группа, куда входят рук. и финдир. Задача уходит на группу, а члены группы видят эту задачу. И любой может ее выполнить. |
|||
3
svchernova
12.09.13
✎
18:17
|
там как раз и не нужно две задачи. а как сделать группу в адресации?
|
|||
4
svchernova
12.09.13
✎
18:18
|
там нужна только одна задача
|
|||
5
Asmody
12.09.13
✎
18:19
|
(3) долго объяснять. посмотри пример БП на ИТС, там хорошо показано.
|
|||
6
svchernova
12.09.13
✎
18:20
|
(5) смотрела видео Чистова, читала статьи, но групп там не увидела.
|
|||
7
svchernova
12.09.13
✎
18:21
|
блин у нас уже полдевятого скоро, а задачу до завтра надо сделать
|
|||
8
Asmody
12.09.13
✎
18:23
|
надо делать справочник для групп (или приспособить готовый), мутить регистр сведений для связи групп и пользователей, потом все это прописывать в соотв.свойствах БП.
|
|||
9
svchernova
12.09.13
✎
18:25
|
(8) мдя.. до завтра не получится.. Спасибо всем.
буду "мутить" завтра |
|||
10
ВикторП
12.09.13
✎
18:31
|
Задачу адресуете Роли, а в регистре адресации вводите нужных вам пользователей для этой роли -это все решение
|
|||
11
svchernova
12.09.13
✎
18:35
|
(10) Я ИМЕННО ТАК и делаю.
|
|||
12
svchernova
12.09.13
✎
18:37
|
(10) на Роли "Руководитель" у меня два человека - первый руководитель и финдир. назначаются две задачи. мне нужно, чтобы при выполнении одной задачи выполнилась параллельная тоже.
|
|||
13
Вуглускр1991
12.09.13
✎
18:52
|
(12) Назначение двух задач ошибочно.
Задача адресуется для роли Руководитель и возникает в блокнотах у обоих. Далее надо лишь следить за тем, чтобы кто-то из них её взял, то есть у задачи появляется статус. Если в блокнотах она не появляется - копать регистры адресации, связи, метаданные задачи. Появиться обязана. |
|||
14
Михаил Козлов
12.09.13
✎
18:54
|
(12) Странно. У нас аналогично адресация роли (исполнителей несколько). При выполнении задачи БП сдвигается дальше по карте. Правда, в обработчике интерактивной активации в соответствующей т. маршрута открывается нужная форма самого БП (в реквизит которой передается задача), и при нажатии нужной кнопки задача выполняется, а форма закрывается.
Примерно так: - в модуле БП: Процедура ОткрытьФормуОформленияПакетаДокументов(видПакета, Задача) ЕСЛИ видПакета="Остальные" ТОГДА ф=ЭтотОбъект.ПолучитьФорму("ФормаОформленияНакладной") ИНАЧЕ ф=ЭтотОбъект.ПолучитьФорму("ФормаОформленияПакетаДокументов"); ф.ВидПакетаДокументов=видПакета; ф.ТекущаяЗадача = Задача; КОНЕЦЕСЛИ; ф.Открыть(); КонецПроцедуры Процедура ОформлениеСамововывозаОбработкаИнтерактивнойАктивации(ТочкаМаршрутаБизнесПроцесса, Задача, СтандартнаяОбработка) ОткрытьФормуОформленияПакетаДокументов("Самовывоз", Задача) КонецПроцедуры В модуле соответствующе формы: ПРОЦЕДУРА ЗавершитьЗадачу() Если НЕ ЗначениеНеЗаполнено(ТекущаяЗадача) Тогда ЗадачаОб = ТекущаяЗадача.ПолучитьОбъект(); ЗадачаОб.ВыполнитьЗадачу(); КонецЕсли; КОНЕЦПРОЦЕДУРЫ ПРОЦЕДУРА КнопкаПечатиНалНажатие(Элемент) ЕСЛИ ДокументыНалГотовы()ТОГДА Печать2РН(); ЗавершитьЗадачу(); ЭтаФорма.Закрыть(); КОНЕЦЕСЛИ КОНЕЦПРОЦЕДУРЫ |
|||
15
svchernova
12.09.13
✎
19:02
|
(12) и (13)я поработала, задача теперь появляется только одна.
Если не получится дальше, подниму ветку завтра, а сейчас пока закрою тему. всем спасибо большое! |
|||
16
ВикторП
13.09.13
✎
10:30
|
Да, задача должна быть одна. То что раньше было две задачи- это что то неправильно - программно- у вас было сделано
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |