Здравствуйте! Нуждаюсь в помощи по двум вопросам.

Вопрос №1

Делаю в БП страницу редактирования Договора. Мне надо чтобы элемент был выполнен только если на детали Продукты есть хотя-бы одна запись. Пробовал сделать через агрегирующий фильтр:

агрегирующий фильтр

После чего я вижу:

ошибка

Пробовал на другие детали, работает как-то выборочно. Например на визу работает, а на активности нет. Поставил зависимости от пакетов:
ContracInOrder, Order, CoreContract, и другие

Пробовал на разных сайтах. Ошибка идентичная.

Данную задачу можно выполнить с помощью элемента "Чтение данных", но интересно почему не работают фильтры и как с ними работать?

Вопрос №2

в БП нужно создать визу в договоре на Контакта у которого
контрагент = Наша компания,
филиал = Контакт текущего пользователя.Филиал
должность = Фин.директор
И когда виза будет подтверждена продолжать БП. Подскажите как это лучше реализовать. Заранее спасибо.

версия 7.5

Нравится

3 комментария

Добрый вечер!

Вопрос №1.

Ничего не указывайте в поле "Считать элемент выполненым, если объект соответствует условиям".
После завершения задачи, используйте элемент "Чтение данных". Считайте количество записей в объекте "Продукт в заказе", где Заказ = Id Вашего заказа.
Используйте условные потоки:

  • Если количество = 0, тогда возвращаемся к редактированию заказа
  • Иначе - идем по процессу дальше

Вопрос №2.

1) Используйте элемент "Чтение данных" по объекту "Контакт", с фильтром Контакт = Контакт текущего пользователя
2) Используйте элемент "Чтение данных" по объекту "Контакт", с фильтром Филиал = Чтение данных1.Первый элемент результирующей коллекции.Филиал и Контрагент = Наша компания и Должность = Фин.директор
3) Используйте элемент "Добавить данные" в объекте "Виза договора". Установите визирующим контакта, прочитанного на втором шаге.
4) Используйте "Промежуточный обрабатыващий сигнал" по объекту "Виза договора", событие - изменение записи по Id созданной на предыдущем шаге записи с фильтром Состояние = "Положительная", чтобы отследить изменение состояния в поле "Состояние".

Только учтите, что состояние визы еще может быть "Отрицательным".

1. Я через чтение данных и сделал. Интересовало как работать с агрегирующими фильтрами и работают ли они ?
2. А если будет несколько контактов в должности фин.директор ?
Я пробую записать в объект Виза договора результат выборки по контакту. Но я столкнулся с тем, что колонка визирующий смотрит в объект "Объект администрирования"

Добрый день!

1. Как видно из предоставленных Вами скриншотов, фильтры работают некорректно - было предложено альтернативное решение.
2. Полностью с Вами согласен - виза проставляется либо роли, либо пользователю, поэтому объект действительно "Объект администрирования".
Перед элементом "Добавить данные" используйте еще одно чтение данных по объекту "Объект администрирования" с фильтром Контакт = Id контакта с должностью фин. директор.

В случае, если в системе несколько фин. директоров у одного филиала, тогда система выберет первого по указанной Вами сортировке.

Показать все комментарии