![]() |
|
ДокОборот 1.4 повтороное согласование отправлять тем кто не согласовал. | ☑ | ||
---|---|---|---|---|
0
Alexperumov
18.02.16
✎
10:34
|
Мож кто сталкивался: Нужно при повторном согласовании не отправлять на согласование тем кто уже согласовал.
Если убрать уже согласовавших тупо из списка тогда в лист согласования и историю не попадают. Если не формировать для них задачу вовсе, тогда не могу найти где правильно добавить в историю. |
|||
1
Лефмихалыч
18.02.16
✎
10:38
|
Единственный толковый вариант - робота нацарапать, который будет автоматически закрывать задачи на тех, кто ранее согласовал.
Но даже в этом случае придется лист согласования допиливать, чтобы он дату согласования выводил первую, а не последнюю |
|||
2
Alexperumov
18.02.16
✎
10:47
|
Процедура СогласоватьПередСозданиемЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; МассивСтрок = Новый Массив; Если ВариантСогласования = Перечисления.ВариантыМаршрутизацииЗадач.Параллельно Тогда Для Каждого Строка Из Исполнители Цикл МассивСтрок.Добавить(Строка); КонецЦикла; ИначеЕсли ВариантСогласования = Перечисления.ВариантыМаршрутизацииЗадач.Последовательно Тогда Для Каждого Строка Из Исполнители Цикл Если Строка.Пройден Тогда Продолжить; КонецЕсли; МассивСтрок.Добавить(Строка); Прервать; КонецЦикла; ИначеЕсли ВариантСогласования = Перечисления.ВариантыМаршрутизацииЗадач.Смешанно Тогда Строки = Исполнители.НайтиСтроки(Новый Структура("Пройден", Ложь)); Если Строки.Количество() > 0 Тогда МассивСтрок.Добавить(Строки[0]); КонецЕсли; Для Инд = 1 По Строки.ВГраница() Цикл Если Строки[Инд].ПорядокСогласования = Перечисления.ПорядокВыполненияЗадач.ВместеСПредыдущим Тогда МассивСтрок.Добавить(Строки[Инд]); Иначе Прервать; КонецЕсли; КонецЦикла; КонецЕсли; Для Каждого Строка Из МассивСтрок Цикл Задача = Задачи.ЗадачаИсполнителя.СоздатьЗадачу(); ЗаполнитьЗадачуСогласовать(Задача, Строка); ЗадачаСсылка = Задачи.ЗадачаИсполнителя.ПолучитьСсылку(); Задача.УстановитьСсылкуНового(ЗадачаСсылка); ФормируемыеЗадачи.Добавить(Задача); Строка.ЗадачаИсполнителя = ЗадачаСсылка; НоваяСтрока = РезультатыСогласования.Добавить(); НоваяСтрока.НомерИтерации = НомерИтерации; НоваяСтрока.ЗадачаИсполнителя = ЗадачаСсылка; КонецЦикла; ДополнительныеСвойства.Вставить("ДатаНачалаИтерации", ФормируемыеЗадачи[0].Дата); УстановитьПривилегированныйРежим(Истина); Записать(); КонецПроцедуры Я тут отлавливал кто уже согласовал и создавал закрытую задачу, но что-то после такого задача к следующим не идет( |
|||
3
Лефмихалыч
18.02.16
✎
10:51
|
>но что-то после такого задача к следующим не идет
это потому, что создавать сразу закрытую задачу - плохая идея |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |