Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Считаем или как организовать сложение, вычитание, умножение, деление в бизнес-процессе
Необходимость сложить две переменные бизнес-процесса в ходе выполнения его контекста может быть востребована когда вы анализируете расходы/доходы или прогнозируете вложения в новый Проект.
В данном посте описано как можно организовать подсчет каких либо параметров или переменных бизнес-процесса. Вы так же узнаете как можно из PHP повлиять на эти переменные. Вопрос сохранения переменной в поле документа решается стандартным блоком "Изменение полей документа".
Изначально предположим что у нас есть:
параметр бизнес-процесса {=Template:integrator_USD} - стоимость работы программиста в USD
переменная бизнес процесса {=Variable:kurs_usd} - курс валюты для пересчета
Нам нужно пересчитать стоимость работы программиста ))
Для организации вычислений нам потребуется стандартный блок "PHP код"
В начале о методике внесения кода:
код будет выполняться в своем пространстве, т.е. если нужно вызвать стандартное API Битрикса - нужно учитывать что модули заранее не подключались
символы <??> вносить не нужно
внимательно следите за типами переменных - приведение типа переменных организуйте в обязательном порядке (в примере это пропущено для упрощения восприятия)
пока документации по бизнес-процессам нет, Вам придется в случае необходимости искать в исходных кодах модуля
хитрый финт ушами {=(Variable:kurs_usd*Template:integrator_USD)} пока не проходит (надеюсь разработчики введут что-то подобное)
Теперь синтаксис:
// получить текущий бизнес-процесс
$rootActivity = $this->GetRootActivity();
// получить значение переменной бизнес-процесса {=Variable:kurs_usd}
$kursUSD = $rootActivity->GetVariable("kurs_usd");
// получить значение параметра бизнес-процесса {=Template:integrator_USD}
$integrator = $rootActivity->integrator_USD;
// пересчет валюты
$integrator = $integrator*$kursUSD;
// установка значения параметра бизнес-процесса {=Template:integrator_USD}
$rootActivity->integrator_USD = $integrator;
// установка значения переменной бизнес-процесса {=Template:ttl}
// Вы можете не только считать, но и делать что хотите с переменными и параметрами бизнес-процесса
$rootActivity->SetVariable("ttl",
'Минимально возможная цена:'.number_format($min_ttl,0,',',' ')." руб\n".
'Прибыль от минимальной цены:'.number_format($min_ttl_plus,0,',',' ')." руб\n".
'Налог:'.number_format($min_ttl*$nalog,0,',',' ')." руб\n\n".
'Средняя цена:'.number_format($ttl,0,',',' ')." руб\n".
'Прибыль от средней цены:'.number_format($ttl_plus,0,',',' ')." руб\n".
'Налог:'.number_format($ttl*$nalog,0,',',' ')." руб\n"
);
Отображение результатов можно организовать через стандартные блоки управления из группы "Уведомления", на пример "Сообщение соц. сети"