173  /  175

Арифметические действия в бизнес-процессе

Просмотров: 4314 (Статистика ведётся с 06.02.2017)

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

Задайте параметры и переменные в шаблоне бизнес-процесса:

  • параметр бизнес-процесса: {=Template:integrator_USD} - стоимость работы программиста в долларах;
  • переменная бизнес процесса {=Variable:kurs_usd} - курс валюты для пересчета.

В действии PHP код используйте следующий код:

// получить текущий бизнес-процесс
$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"
);

Примечание: Если в процессе используются константы, то алгоритм работы будет другой. Запись констант из бизнес-процесса не предусмотрена, поэтому и методов записи нет. Чтобы получить значения константы нужно использовать следующую строку кода:

$rootActivity->GetConstant($fieldName);


10
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии