Добрый день!

Разобрались с добавлением продукта к заказу, но есть одно НО. Не получается подтянуть цену продукта, нужно указывать вручную (в API запросе). Вопрос:

Как при добавлении продукта к заказу через API можно автоматически подтягивать цену из прайс листа? Пробовали указывать PriceListId, но это не помогает. Так же пробовали указывать разные CurrencyId, но это так же не помогает.



Используем oData для работы с API.



Пример запроса:

 

-header 'Accept: application/json' \
--header 'Content-Type: application/json; charset=utf-8; IEEE754Compatible=true' \
--header 'ForceUseSession: true' \
--header 'BPMCSRF: UX.Xa1Suc01arS7jMhppkO' \
--data-raw '{
"ProductId": "e85b3371-79e5-4606-9e1c-70976a09c040",
"OrderId": "102b0d66-3744-44de-95b9-fb5ee806bc04",
"Name": "Yeremenko Test",
"BaseQuantity": "1",
"Quantity": "1",
"UnitId": "917f764e-62e6-df11-971b-001d60e938c6",
"CurrencyId": "915e8a55-98d6-df11-9b2a-001d60e938c6",
"PriceListId": "fa689c95-c63c-4908-8fd2-19a95e0425bd",
"CurrencyRate": "1",
"TaxId": "c7ec6b33-a9d6-df11-9b2a-001d60e938c6"
}

 

Нравится

1 комментарий

Добрый день! Не совсем понимаю что вы хотите сделать. Разве вы уже не указали id продукта, у которого уже посчитана цена. 

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

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

Вопрос №1

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

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

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

ошибка

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

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

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

Вопрос №2

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

версия 7.5

Нравится

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

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

Вопрос №1.

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

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

Вопрос №2.

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

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

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

Добрый день!

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

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

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