Как в Коробке Битрикс24 получить ID начальника c помощью PHP активити

У нас есть задача определить, кто является начальником конкретного пользователя. В нашем примере будем определять Начальника у ответственного по сделке.

  1. Создадим переменную var5 c типом «Привязка к пользователю«

2. Напишем код в активити PHP код

$num = 2; // Определяем уровень в структуре
$userId = substr("{{Ответственный}}", 5); // Вместо переменной {{Ответственный}} подставьте свое значение
$userId = intval($userId);

if ($userId > 0) 
{
    if (CModule::IncludeModule("intranet")) 
    {
        $dbUser = CUser::GetList(
            ($by = "id"), 
            ($order = "asc"), 
            array("ID_EQUAL_EXACT" => $userId), 
            array("SELECT" => array("UF_*"))
        );
        
        if ($arUser = $dbUser->GetNext()) 
        {
            $i = 0;
            while ($i < $num) 
            {
                $i++;
                $arManagers = CIntranetUtils::GetDepartmentManager(
                    $arUser["UF_DEPARTMENT"], 
                    $arUser["ID"], 
                    true
                );
                
                foreach ($arManagers as $key => $value) 
                {
                    $arUser = $value;
                    break;
                }
            }
            
            $rootActivity = $this->GetRootActivity();
            $rootActivity->SetVariable("var5", "user_".$arUser["ID"]);
        }
        else
        {
            // Обработка случая, когда пользователь не найден
            $rootActivity = $this->GetRootActivity();
            $rootActivity->SetVariable("var5", "");
        }
    }
}

3. Из переменной var5 сохраняем значение куда нужно. В нашем случае просто в поле сделки «Начальника»