Бизнес-процесс "Запись скидки по товарам в пользовательское поле"
Заказчику захотел видеть в отчетах сумму скидки по каждой сделке. Используемый для выгрузки информации о продажах конструктор отчетов Битрикс24 информацию о скидках не выдавал. Поэтому решено было создать поле "Сумма скидки", которое будет автоматически заполняться при успешном завершении сделки и уходить в отчеты.
Сначала создаем два пользовательских поля. Первое - Сумма скидки с типом Число. Второе - Запись значений скидки (служебное) - тип Число, Множественное. Данное поле скрываем от посторонних глаз.
Первым блоком Изменение документа очищаем созданные нами поля "Сумма скидки" и "Запись значений скидки (служебное)" от возможных присутствующих в нем значений.
Второй блок - Итератор. Источник для него - Поля документа: Товарные позиции. Цель использования данного Итератора - передать нам скидку на каждый товар, присутствующий в сделке.
Третий блок - Получить информацию о товарной позиции. В ID товарной позиции мы должны указать значение из Итератора.
Запишем полученную информацию в наше служебное поле с помощью блока Изменить элемент. Дополнить множественные поля вместо перезаписи отмечаем "Да".
Значение для него найдем в Дополнительные результаты: Получить информацию о товарной позиции: Сумма скидки и умножим на Количество
Добавим еще один Итератор. Источник для него - наше служебное поле, куда записалась информация о всех скидках на каждый товар из сделки. Этот итератор поможет нам вычислить сумму всех скидок.
Внутрь итератора добавляем блок Изменение переменных. Предварительно добавляем в бизнес-процесс переменную "Сумма скидки" (Variable2). В переменной будет храниться общая сумма скидки.
Формула ={Переменная}+{Значение Итератора подсчета суммы}
И последний блок Изменение документа. Используем его чтобы записать получившееся значение суммы скидки из переменной в созданное нами поле Сумма скидки.
Весь бизнес-процесс выглядит так: