Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Исключение повторного согласования у одного лица (Документооборот)

Исключение повторного согласования у одного лица (Документооборот)
Я
   ГлызинаЮИ
 
27.08.20 - 07:15
Процесс согласования кое-какого документа состоит из 8 шагов (все по ролям), при этом автор документа может быть одним из согласовантов. Либо, например, 2 и 6 согласовант это одно и тоже лицо.
Как научить систему пропускать такой шаг, если ранее в процессе уже было получено согласование у этого пользователя?

Так же, в одно из шагов есть некоторая роль, которая будет согласовываться, только если документ из филиала, так вот если документ с головного офиса, то шаг пропускается. Как системе подсказать, что не надо ожидать какого-о согласованта из головного, пропустить шаг и идти дальше?
   yurikmellon2
 
1 - 27.08.20 - 08:11
(0) всё это настраивается у Условиях маршрутизации. Там можно как конструктором условия накидать, так и кодом написать.
Например, проверка на то, что документ пришел из филиала делается конструктором, это надо у Ответственного проверить реквизит Подразделение. Потом в шаблонах процесса надо нажать кнопку "Использовать условия", указать нужное условие и, в зависимости от него, настроить куда дальше пойдет процесс.
   ГлызинаЮИ
 
2 - 27.08.20 - 09:17
(1) Юрий, поясните подробнее, пожалуйста.
И я сейчас накидаю подробнее:
мой 4ый шаг это согласование у ответственного по От, в процессе у меня роль "Директор по ОТ" и напротив стоит отбор "А из филиала ли?"
Код ниже. Получается если да, то согласовывает он.

Если Предмет.ДополнительныеРеквизиты[0].Значение = Справочники.СтруктураПредприятия.НайтиПоНаименованию("Абакан")
Тогда
Результат = Истина;
Иначе Результат = Ложь;
КонецЕсли;  

Так вот а если нет (если заявка из головного), то не должно быть ответственного, шаг пропускается и идем сразу к 5ому шагу.
Вот где и как указать это "а если нет"?
   dka80
 
3 - 27.08.20 - 09:19
(2) А если нет, то шаг 4 шаг выполнен не будет и система перейдет к шагу 5
   ГлызинаЮИ
 
4 - 27.08.20 - 09:22
(3) система сама знает что надо пропустить если не нашла никого? то есть не надо явно указывать, что нужно перейти к следующему шагу?
   dka80
 
5 - 27.08.20 - 09:25
(4) Не совсем так. Ты используешь "Условную маршрутизацию", т.е. в данный шаг программа зайдет, если условие выполняется
Например, мы идем гуляем под ручку, а тебе говорю "хочешь пива" (а блин, здесь же антиалкогольный сайт), тогда так "хочешь лимонад?", если ты отвечаешь "да", мы сворачиваем в проулок, а если нет, то как шли прямо так и идем))
   ГлызинаЮИ
 
6 - 27.08.20 - 09:28
(5)  Принято, надо оттестить и посмотреть этот шаг. Спасибо за ответ и лимонад.

И все же к вопросу об исключении двойного согласования.
я понимаю что должно быть так:

Если Предмет.ТЕКУШИЙСОГЛАСОВАНТ = Предмет.ПРЕЖНИЙСОГЛАСОВАНТ
Тогда
Результат = Истина;
Иначе Результат = Ложь;
КонецЕсли;  


так вот, как верно в системе вызвать реквизиты ТЕКУШИЙСОГЛАСОВАНТи ПРЕЖНИЙСОГЛАСОВАНТ?
есть реквизиты УстановилГриф,АвторУтверждения,Утвердил,Ответственный...ху из ху?)
   dka80
 
7 - 27.08.20 - 09:34
(6) если исходить из (0), где написано, что автор документа может быть согласантом, то самый простой вариант тебе необходимо создать условие маршрутизации Ответственный Не в списке и указать перечень ФИО
Вариант посложнее, это создать условие на встроенном языке, там найти роль ответственного и если она не совпадает с ролью для данного шага, то вернуть истину
   ГлызинаЮИ
 
8 - 27.08.20 - 09:39
(7) ответственный это тот на ком сейчас процесс, или тот кто создавал документ?
   dka80
 
9 - 27.08.20 - 09:44
(8) создавал. Ты читала документацию?
https://its.1c.ru/db/doccorp21
   dka80
 
10 - 27.08.20 - 09:44
точнее не создавал, кто создавал это Автор, а Ответственный - назначенный ответственный
   dka80
 
11 - 27.08.20 - 09:45
+10 в общем случае они совпадают, но можно и поменять вручную
   ГлызинаЮИ
 
12 - 27.08.20 - 10:06
не зарегистрирован продукт, документация не доступна,а я неделю ДО только занимаюсь, поэтому задаю такие глупые вопросы
Скажите как называется тогда челочек на котором сейчас процесс, я это пытаюсь спросить с 7 сообщения в ветке. то есть я не знаю как обратиться к этому текущему чтобы его проверить
   dka80
 
13 - 27.08.20 - 10:20
Система работает не совсем так. Если задача уже на ком-то, то и проверять нечего, т.к. исполнитель уже назначен.
Система выполняет очередной шаг процесса и назначает ответственного, если условие маршрутизации выполняется. Т.е. проверили условие, назначили ответственного, а не наоборот.
   ГлызинаЮИ
 
14 - 27.08.20 - 11:11
я благодарна за разъяснения, поэтому давайте заново)

вот приходит к 8 шагу согласование (но этот человек мог согласовать на 2 шаге), поэтому в условие маршрутизации я запихиваю условие и пишу на встр.языке
если предмет.ТЕКУЩИЙСОГЛАСОВАНТ <> ПРЕДМЕТ.БЫВШИЙСОГЛАСОВАНТ

тогда результат истина....
...



так как мне вызвать текущего и бывшего?
   dka80
 
15 - 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
а теперь усложнение процесса, он согласовал на втором пункте, потому что оказался непосредственным руководителем инициатора.

как мне исключить его?
   dka80
 
18 - 27.08.20 - 11:46
Не равно Подготовил.Подразделение.Руководитель

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.