174  /  175

Вычисление ID начальника

Просмотров: 2964 (Статистика ведётся с 06.02.2017)

Чтобы вычислить начальника автора документа с помощью действия PHP-код (т.е. без использования действия выбора пользователя), можно использовать приведенный ниже код.

В этом коде переменная $num отвечает за уровень начальника (1 - непосредственный начальник, 2 - начальник начальника,...). ID начальника в формате БП (т.е. вида user_X) записывается в переменную с именем var5. Эта переменная должна быть создана в параметрах БП и должна иметь тип привязки к пользователю.

$num = 1;
$userId = substr("{=Document:CREATED_BY}", 5);
$userId = intval($userId);
if ($userId > 0)
{
 CModule::IncludeModule("intranet");
 $dbUser = CUser::GetList(($by="id"), ($order="asc"), array("ID_EQUAL_EXACT"=>$userId), array("SELECT" => array("UF_*")));
 $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"]);
}

Примечание: в $arUser = $dbUser->GetNext(); можно использовать вместо метода GetNext метод Fetch. Будет работать быстрее.


10
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии