Обычные переменные
//в начале объявляем текущий бизнес-процесс
$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);
}