Переменные в Бизнес процессе

Обычные переменные

//в начале объявляем текущий бизнес-процесс
$rootActivity = $this->GetRootActivity(); 

//достаем переменную из бизнес-процесса в php
$varPHP = $rootActivity->GetVariable("var1"); 
//или
$varPHP = '{=Variable:zolkina_printable}';

//и наоборот
//присваиваем переменной в бизнес-процессе из php
$rootActivity->SetVariable("var1", 'переменная1');

Глобальные переменные

/*
Комментарии к изменению глобальных переменных через БП PHP блок

Если указывать из БП глобальную переменную с _ будет ошибка исполнения (просто флоу до конца не дойдет, без каких то ошибок в логи)

Если \Bitrix\Bizproc\Workflow\Type\GlobalVar::getById возвращает пустоту, значит глобальная переменная в недопуступом имени

Если в \Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert отдать что-то недопустимое, будет ошибка без логов

Если создать произвольный массив типа $var['idGlobVar'] = ['Name'=>'Имя глобальной переменной','Description'=>'','Type'=>bool,'Required'=>'','Multiple'=>'','Options'=>'','Default'=>'Y'];

а после скормить этот массив в \Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert то создастся ещё одна глобальная переменная idGlobVar несмотря на то, что она уже будет (да, две переменные будут, с одинаковыми идентификаторами)

Изменение значения происходит через изменение Default параметра
*/

$var = \Bitrix\Bizproc\Workflow\Type\GlobalVar::getById('orderVacancy');
$var['Default'] = 'Y';
if($var)
{
  \Bitrix\Bizproc\Workflow\Type\GlobalVar::upsert('orderVacancy', $var);
}