|
Исключение повторного согласования у одного лица (Документооборот) | ☑ | ||
---|---|---|---|---|
0
ГлызинаЮИ
27.08.20
✎
07:15
|
Процесс согласования кое-какого документа состоит из 8 шагов (все по ролям), при этом автор документа может быть одним из согласовантов. Либо, например, 2 и 6 согласовант это одно и тоже лицо.
Как научить систему пропускать такой шаг, если ранее в процессе уже было получено согласование у этого пользователя? Так же, в одно из шагов есть некоторая роль, которая будет согласовываться, только если документ из филиала, так вот если документ с головного офиса, то шаг пропускается. Как системе подсказать, что не надо ожидать какого-о согласованта из головного, пропустить шаг и идти дальше? |
|||
1
yurikmellon2
27.08.20
✎
08:11
|
(0) всё это настраивается у Условиях маршрутизации. Там можно как конструктором условия накидать, так и кодом написать.
Например, проверка на то, что документ пришел из филиала делается конструктором, это надо у Ответственного проверить реквизит Подразделение. Потом в шаблонах процесса надо нажать кнопку "Использовать условия", указать нужное условие и, в зависимости от него, настроить куда дальше пойдет процесс. |
|||
2
ГлызинаЮИ
27.08.20
✎
09:17
|
(1) Юрий, поясните подробнее, пожалуйста.
И я сейчас накидаю подробнее: мой 4ый шаг это согласование у ответственного по От, в процессе у меня роль "Директор по ОТ" и напротив стоит отбор "А из филиала ли?" Код ниже. Получается если да, то согласовывает он. Если Предмет.ДополнительныеРеквизиты[0].Значение = Справочники.СтруктураПредприятия.НайтиПоНаименованию("Абакан") Тогда Результат = Истина; Иначе Результат = Ложь; КонецЕсли; Так вот а если нет (если заявка из головного), то не должно быть ответственного, шаг пропускается и идем сразу к 5ому шагу. Вот где и как указать это "а если нет"? |
|||
3
dka80
27.08.20
✎
09:19
|
(2) А если нет, то шаг 4 шаг выполнен не будет и система перейдет к шагу 5
|
|||
4
ГлызинаЮИ
27.08.20
✎
09:22
|
(3) система сама знает что надо пропустить если не нашла никого? то есть не надо явно указывать, что нужно перейти к следующему шагу?
|
|||
5
dka80
27.08.20
✎
09:25
|
(4) Не совсем так. Ты используешь "Условную маршрутизацию", т.е. в данный шаг программа зайдет, если условие выполняется
Например, мы идем гуляем под ручку, а тебе говорю "хочешь пива" (а блин, здесь же антиалкогольный сайт), тогда так "хочешь лимонад?", если ты отвечаешь "да", мы сворачиваем в проулок, а если нет, то как шли прямо так и идем)) |
|||
6
ГлызинаЮИ
27.08.20
✎
09:28
|
(5) Принято, надо оттестить и посмотреть этот шаг. Спасибо за ответ и лимонад.
И все же к вопросу об исключении двойного согласования. я понимаю что должно быть так: Если Предмет.ТЕКУШИЙСОГЛАСОВАНТ = Предмет.ПРЕЖНИЙСОГЛАСОВАНТ Тогда Результат = Истина; Иначе Результат = Ложь; КонецЕсли; так вот, как верно в системе вызвать реквизиты ТЕКУШИЙСОГЛАСОВАНТи ПРЕЖНИЙСОГЛАСОВАНТ? есть реквизиты УстановилГриф,АвторУтверждения,Утвердил,Ответственный...ху из ху?) |
|||
7
dka80
27.08.20
✎
09:34
|
(6) если исходить из (0), где написано, что автор документа может быть согласантом, то самый простой вариант тебе необходимо создать условие маршрутизации Ответственный Не в списке и указать перечень ФИО
Вариант посложнее, это создать условие на встроенном языке, там найти роль ответственного и если она не совпадает с ролью для данного шага, то вернуть истину |
|||
8
ГлызинаЮИ
27.08.20
✎
09:39
|
(7) ответственный это тот на ком сейчас процесс, или тот кто создавал документ?
|
|||
9
dka80
27.08.20
✎
09:44
|
(8) создавал. Ты читала документацию?
https://its.1c.ru/db/doccorp21 |
|||
10
dka80
27.08.20
✎
09:44
|
точнее не создавал, кто создавал это Автор, а Ответственный - назначенный ответственный
|
|||
11
dka80
27.08.20
✎
09:45
|
+10 в общем случае они совпадают, но можно и поменять вручную
|
|||
12
ГлызинаЮИ
27.08.20
✎
10:06
|
не зарегистрирован продукт, документация не доступна,а я неделю ДО только занимаюсь, поэтому задаю такие глупые вопросы
Скажите как называется тогда челочек на котором сейчас процесс, я это пытаюсь спросить с 7 сообщения в ветке. то есть я не знаю как обратиться к этому текущему чтобы его проверить |
|||
13
dka80
27.08.20
✎
10:20
|
Система работает не совсем так. Если задача уже на ком-то, то и проверять нечего, т.к. исполнитель уже назначен.
Система выполняет очередной шаг процесса и назначает ответственного, если условие маршрутизации выполняется. Т.е. проверили условие, назначили ответственного, а не наоборот. |
|||
14
ГлызинаЮИ
27.08.20
✎
11:11
|
я благодарна за разъяснения, поэтому давайте заново)
вот приходит к 8 шагу согласование (но этот человек мог согласовать на 2 шаге), поэтому в условие маршрутизации я запихиваю условие и пишу на встр.языке если предмет.ТЕКУЩИЙСОГЛАСОВАНТ <> ПРЕДМЕТ.БЫВШИЙСОГЛАСОВАНТ тогда результат истина.... ... так как мне вызвать текущего и бывшего? |
|||
15
dka80
27.08.20
✎
11:23
|
(14) еще раз: нет текущего согласованта на момент проверки. Максимум, что ты можешь сделать, это путем построения на встроенном языке, узнать, кто уже согласовывал. Хотя, если особо извратиться, то можно и вычислить кто сейчас должен согласовывать, но это уже за гранью.
Вот простой пример: 1. Согласовать руководителем инициатора 2. Согласовать директором Вариант 1: документ запускает на согласование Иванов, подчиненный Петрову. Тогда схема будет такая: 1. Согласовать Петров 2. Согласовать директором Вариант 2: Документ запускает Петров 1. Согласовать Петров 2. Согласовать директором В этом случае, конечно, не логично, что согласовывает Петров, т.к. он и запускал документ. Для того, чтобы это исключить на первом шаге делаем условие маршрутизации: Ответственный <> Петров. Тогда схема согласования будет 1. Согласовать директором В твоем варианте на втором шаге согласовал Петров. Почему он согласовал? Было какое-то условие? Если да, то включи это условие в 8 шаг, только с префиксом НЕ |
|||
16
ГлызинаЮИ
27.08.20
✎
11:35
|
"Было какое-то условие? Если да, то включи это условие в 8 шаг, только с префиксом НЕ"
наконец то пришло озарение, как же это было легко! Спасибо вам, святой человек! |
|||
17
ГлызинаЮИ
27.08.20
✎
11:39
|
а теперь усложнение процесса, он согласовал на втором пункте, потому что оказался непосредственным руководителем инициатора.
как мне исключить его? |
|||
18
dka80
27.08.20
✎
11:46
|
Не равно Подготовил.Подразделение.Руководитель
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |