Просмотров: 9872
Дата последнего изменения: 13.03.2017
Дата последнего изменения: 13.03.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. Будет работать быстрее.