У нас есть задача определить, кто является начальником конкретного пользователя. В нашем примере будем определять Начальника у ответственного по сделке.
- Создадим переменную 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 сохраняем значение куда нужно. В нашем случае просто в поле сделки «Начальника»
