|   |   | 
| 
 | Как такое провернуть в бизнес-процессе? | ☑ | ||
|---|---|---|---|---|
| 0
    
        mikecool 18.06.14✎ 15:12 | 
        Есть линейная цепочка задач, надо иметь возможность выполнить последнюю задачу независимо оттого, существуют ли предыдущие. 
 Как бы сие реализовать попроще? создавать-выполнять промежуточные задачи как то не весело | |||
| 1
    
        ale-sarin 18.06.14✎ 15:15 | 
        Можно ведь, вроде, программно создать задачу с последней (любо й) точкой маршрута. Не?     | |||
| 2
    
        Segate 18.06.14✎ 15:16 | 
        А зачем вам такой бизнесс процесс, в котором есть лишние шаги? Перерисуйте карту маршрута     | |||
| 3
    
        mikecool 18.06.14✎ 15:18 | 
        (2) типа действия суперюзера - утверждает или отклоняет в любое время     | |||
| 4
    
        Hans 18.06.14✎ 15:21 | 
        (0) нарисуй бизнес процесс.     | |||
| 5
    
        vde69 модератор 18.06.14✎ 15:21 | 
        обычный цикл в котором есть одна задача, и одно условие     | |||
| 6
    
        vde69 модератор 18.06.14✎ 15:21 | 
        я рисовал уже на мисте года 3 назад, но рисунок пропал :)     | |||
| 7
    
        mikecool 18.06.14✎ 15:23 | 
        (5) не, хочу деревце, ибо парит кучу условий собирать для проверок     | |||
| 8
    
        mikecool 18.06.14✎ 15:24 | 
        в принципе вижу такой вариант - если при попадании на точку создания задач не создавать ни одной, то точка считается пройденной...     | |||
| 9
    
        Maxus43 18.06.14✎ 15:24 | 
        (3)>>утверждает или отклоняет в любое время
 Разделение от старта до финиша с одной задачей - точка "супер юзера". Другим не помешает. | |||
| 10
    
        mikecool 18.06.14✎ 15:25 | 
        а в принципе - можно взводить признак у БП и проверять этот признак перед каждой точкой задачи - если взведен, то пропускать     | |||
| 11
    
        mikecool 18.06.14✎ 15:25 | 
        (9) тоже вариант     | |||
| 12
    
        mikecool 18.06.14✎ 15:26 | 
        +11 вот только задачи как таковой не должно быть у этого СЮ, он может выполнить чужую     | |||
| 13
    
        mikecool 18.06.14✎ 15:26 | 
        +10 наверное остановлюсь на этом варианте     | |||
| 14
    
        vde69 модератор 18.06.14✎ 15:27 | 
        (9) разделение ждет выполнения всех веток     | |||
| 15
    
        Hans 18.06.14✎ 15:27 | 
        имхо разделение и слияние.При выполнении последней задачи с каждой ветки - гасятся задачи с другой ветки.     | |||
| 16
    
        Maxus43 18.06.14✎ 15:28 | 
        (14) задача про "супер юзера" не имеет общего с задачей (0), тут больше кошерен вариант (8).
 (12) тогда не то (13) я за (8), у нас так | |||
| 17
    
        mikecool 18.06.14✎ 15:28 | 
        (14) точно
 (15) не то, надо - "перепрыгнуть" | |||
| 18
    
        vde69 модератор 18.06.14✎ 15:29 | 
        цикл хорош тем, что можно создать уже пройденую задачу повторно. Пример
 1. исполнитель подписал 2. руководитель отправил на переделку 3. исполнитель подписал новую задачу | |||
| 19
    
        Irbis 18.06.14✎ 15:31 | 
        А "сделать наеборот"? Последнюю задачу генерировать сразу, а первые поочереди. Выполнение последней, тупо гасит все невыполненные.     | |||
| 20
    
        vde69 модератор 18.06.14✎ 15:32 | 
        у меня обкатана такая схема
 в БП есть ТЧ в которой хранится требуемый маршрут и всякие параметры для его генерации, далее условие генерит пакет задач и ждем следующей итерации, если подписал суперюзер все текущие задачи выполняются со спец флагом и условие генерит пакет задач по изменившимся данным... | |||
| 21
    
        PR 18.06.14✎ 15:33 | 
        (3) Что за фигня?
 Нахрена для действия суперюзера задача? | |||
| 22
    
        vde69 модератор 18.06.14✎ 15:33 | 
        Процедура ВыборДействияОбработкаВыбораВарианта(ТочкаВыбораВарианта, Результат)
 перем МассивАдресации, МассивАдресов; Результат = ТочкаВыбораВарианта.Варианты.Исполнение; Если СтатусОтказ Тогда // это закрытие БП отказом Результат = ТочкаВыбораВарианта.Варианты.Отказ; Иначе // проверим таблицу маршрута на незавершенные точки // здесь надо создать список задач типа "Подпись" // не забываем, что создаем группами ПараметрыФильтрации = Неопределено; ТипДокумента = СокрЛП(ДокументСогласования.Метаданные().Имя); СтатусДокумента = Неопределено; Для Каждого СтрокаЗадач из МаршрутПодписания Цикл Если ПараметрыФильтрации = Неопределено Тогда Попытка ПараметрыФильтрации = Документы[ТипДокумента].ПодготовитьДанныеДляМаршрута(ДокументСогласования); Исключение ПараметрыФильтрации = Неопределено; КонецПопытки; КонецЕсли; Если (СтрокаЗадач.Режим = Перечисления.РежимОбновленияПодписи.Расчетный) и (не ЗначениеЗаполнено(СтрокаЗадач.Задача)) Тогда // обновлять динамические подписи можно только если заявка имеет разрешенный статус Если СтатусДокумента = Неопределено Тогда СтатусДокумента = РегистрыСведений.СтатусыДокументов.ПолучитьСтатус(ДокументСогласования); КонецЕсли; Если МассивДинамическихСтатусов.Найти(СтатусДокумента) = Неопределено Тогда Продолжить; КонецЕсли; // нужно проверить для этой подписи играем или нет Если СтрокаЗадач.Фильтр.Пустая() Тогда РезультатПроверкиФильтров = Справочники.ДинамическийФильтрМаршрута.ПроверитьФильтр(СтрокаЗадач.ДополнительныйФильтр, ПараметрыФильтрации); ИначеЕсли СтрокаЗадач.ДополнительныйФильтр.Пустая() Тогда РезультатПроверкиФильтров = Справочники.ДинамическийФильтрМаршрута.ПроверитьФильтр(СтрокаЗадач.Фильтр, ПараметрыФильтрации); Иначе РезультатПроверкиФильтров = Справочники.ДинамическийФильтрМаршрута.ПроверитьФильтр(СтрокаЗадач.Фильтр, ПараметрыФильтрации) И Справочники.ДинамическийФильтрМаршрута.ПроверитьФильтр(СтрокаЗадач.ДополнительныйФильтр, ПараметрыФильтрации); КонецЕсли; Если не РезультатПроверкиФильтров Тогда Продолжить; КонецЕсли; КонецЕсли; Если не ЗначениеЗаполнено(СтрокаЗадач.Задача) Тогда Результат = ТочкаВыбораВарианта.Варианты.Подпись; Прервать; ИначеЕсли не СтрокаЗадач.Задача.Выполнена Тогда Результат = ТочкаВыбораВарианта.Варианты.Подпись; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры | |||
| 23
    
        mikecool 18.06.14✎ 15:34 | 
        (16) мне (10) больше нравится, добавится только несколько условий в дерево
 (19) задача на СЮ придет последней в списке или не придет вообще, это тоже есть в условиях (21) если ты не понимаешь смысла, то это не значит, что его нет (20) много буков ))) | |||
| 24
    
        PR 18.06.14✎ 15:35 | 
        +(21) Залез в 1С директор и принудительно утвердил заявку на покупку пачки чая в офис.
 Нахрена ему спрашивается задача для того, чтобы это сделать? | |||
| 25
    
        mikecool 18.06.14✎ 15:36 | 
        (24) да я уже понял, что ты так можешь )     | |||
| 26
    
        Hans 18.06.14✎ 15:37 | 
        Имхо в (19) интересное решение.     | |||
| 27
    
        mikecool 18.06.14✎ 15:37 | 
        СЮ в БП может получить "последнюю" задачу (это зависит от условий), а может и не получить и весь БП пройдет мимо
 а также СЮ в любой момент, как говорит уважаемый Роман, (24) | |||
| 28
    
        mikecool 18.06.14✎ 15:37 | 
        (26) СЮ тогда увидит у себя на раб. столе миллиард задач, оно ему надо?     | |||
| 29
    
        UIV 18.06.14✎ 15:37 | 
        (24) Роман делится воспоминаниями о своих обязанностях и достижениях на посту директора?     | |||
| 30
    
        mikecool 18.06.14✎ 15:38 | 
        (29) та не, он просто чай в офис подтверждал )))     | |||
| 31
    
        PR 18.06.14✎ 15:38 | 
        (23) Дружище, я уже лет несколько назад как разработал мощную систему согласования документов на бизнес-процессах с настраиваемым маршрутом согласования плюс понастраивал клиенту штук двадцать маршрутов.
 Так что я прекрасно понимаю, что для того, чтобы кто-то мог в любой момент залезть в БП и принудительно его завершить со статусом согласовано или не согасовано, никакой задачи не нужно. | |||
| 32
    
        Irbis 18.06.14✎ 15:38 | 
        (27) Не, в моем предложении он её имеет всегда, но может делать сразу или дожидаться цепочки. Если сразу то вся цепочка предыдущая закрывается.     | |||
| 33
    
        Hans 18.06.14✎ 15:39 | 
        (27) а как СЮ узнает что идет какой то процесс с условием того что он может отменить это процесс в любой момент.     | |||
| 34
    
        PR 18.06.14✎ 15:39 | 
        (26) В 19 хрень полная.
 Все БП всегда должны дожидаться, пока суперюзер скажет "Я не против"? | |||
| 35
    
        PR 18.06.14✎ 15:40 | 
        (27) И я про то. Не нужна ему задача.
 Просто СЮ в любой момент может зафиналить все задачи и завершить БП. | |||
| 36
    
        PR 18.06.14✎ 15:41 | 
        (29) На посту программиста.     | |||
| 37
    
        mikecool 18.06.14✎ 15:41 | 
        (35) зафиналить все не надо, надо пройти все этапы согласования, далее процесс пойдет дальше     | |||
| 38
    
        PR 18.06.14✎ 15:42 | 
        (32) Так он же СЮ, а не обязательный участник согласования.     | |||
| 39
    
        PR 18.06.14✎ 15:42 | 
        (33) Откроет список согласований и увидит.     | |||
| 40
    
        Irbis 18.06.14✎ 15:43 | 
        (38) Я теперь думаю он какой-то промежуточный СЮ, есть более сильные альфа-самцы     | |||
| 41
    
        PR 18.06.14✎ 15:44 | 
        (37) Ну пусть так. В любом случае задачи не нужно и нужно программно финалить какие-то задачи.     | |||
| 42
    
        PR 18.06.14✎ 15:44 | 
        (40) На всякого СЮ найдется более сильный альфа-самец :))     | |||
| 43
    
        mikecool 18.06.14✎ 15:46 | 
        в общем - мой вариант в (10) мне же кажется наиболее оптимальным + автоматическое завершение уже созданных и не выполненных задач     | |||
| 44
    
        Irbis 18.06.14✎ 15:46 | 
        В качестве отсутпления, циклы в процессе согласования это круги ада. Процесс может ветвиться но не должен замыкаться, иначе решение тупо может быть не принято в гарантированный срок.     | |||
| 45
    
        mikecool 18.06.14✎ 15:47 | 
        (44) да, как то по желаниям реализовал цикл - народ такую бюрократию развел, что в итоге перешли к дереву     | |||
| 46
    
        vde69 модератор 18.06.14✎ 15:47 | 
        у меня вообще еще проще сабж реализован
 у меня адресация это группаПользователей, группы в иерархии. у пользователя есть 2 параметра сеанса 1. ПрямаяАдресация - в котором массив групп куда входит юзер 2. ПолнаяАлресация - в котором массив групп куда входит юзер и всех подчиненных групп в списке ставим фильтр "адресация в &ПрямаяАдресация" и юзер видит только свои, но когда ему нужно смотреть/делать за подчиненных - меняем в фильтре параметр и вуаля :) | |||
| 47
    
        UIV 18.06.14✎ 15:49 | 
        (44) Для 90% менеджеров среднего звена циклический маршрут согласования идеален. И они намертво стоят именно на этой схеме. И еще шоб доп.согласование на произвольного пользователя. И чтоб бесконечное количество раз. А срок на согласования после каждого доп.согласования обнулять. Мечта...     | |||
| 48
    
        Irbis 18.06.14✎ 15:49 | 
        (45) У меня такое предыдущий руководитель проделал. За пару лет привыкли, по 11 кругов ходят по кварталу две метёлки на АЗС согласовывают, по 80 Мб фоток пересылают. Мата не осталось, когда последий раз их дурость им показывал.     | |||
| 49
    
        PR 18.06.14✎ 15:51 | 
        (43) Установка этого признака и есть то самое действие СЮ, да.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |