Как выяснить пользователя, которому было делегировано задание в рамках бизнес-процесса во время его выполнения?
Для определения пользователя, который в данный момент выполняет задание в рамках бизнес-процесса можно воспользоваться системой управления бизнес-процессами (BPMS) или любым другим программным обеспечением для автоматизации бизнес-процессов. В этих системах обычно предусмотрены инструменты для мониторинга выполнения заданий, отслеживания текущего статуса задач и ответственных исполнителей. Для выяснения пользователя, которому было делегировано задание в рамках бизнес-процесса во время его выполнения также можно воспользоваться BPMS или другим программным обеспечением для управления бизнес-процессами. Система хранит информацию о том, кому было поручено задание и какой именно пользователь в данный момент его выполняет. Таким образом, можно легко идентифицировать ответственного исполнителя в процессе выполнения задачи.
Вопрос решился. Если кому интересно, параллельно с заданием ставим цикл, который будет раз в N минут запускать активити "PHP код", внутрь которого вставляем следующее:
$rootActivity = $this->GetRootActivity(); \CModule::IncludeModule('bizproc'); $taskId = {=A62_95001_86084_86022:TaskId}; // укажи id задания бизнес-процесса $dbTask = \CBPTaskService::GetList( array(), array('ID' => $taskId), false, false, array('ID', 'USER_ID') ); $arTask = $dbTask->Fetch(); $this->SetVariable("user_id", $arTask['USER_ID']); // Записываем ID текущего исполнителя в переменную бизнес-процесса user_id. Можно заменить на любую подходящую переменную
На выходе получим ID исполнителя, которое будет записано в указанную переменную бизнес-процесса. Если полученный ID не равен ID исполнителя в задании, задание делегировано.
Как будет работать в случае, когда в задании несколько исполнителей, не проверял.