+7 495 008 8452
  • Загрузка
Выберите ваш цвет
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.


Считаем или как организовать сложение, вычитание, умножение, деление в бизнес-процессе


Источник: studionicka.by

Необходимость сложить две переменные бизнес-процесса в ходе выполнения его контекста может быть востребована когда вы анализируете расходы/доходы или прогнозируете вложения в новый Проект.

В данном посте описано как можно организовать подсчет каких либо параметров или переменных бизнес-процесса. Вы так же узнаете как можно из 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"
);


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

 

 

Источник: https://dev.1c-bitrix.ru/community/webdev/user/30522/blog/2238/

Назад в раздел

Подписаться на новые материалы раздела:
Загрузка...