Бизнес-процессы
Бизнес-процессы для разработчика
Произвольный PHP код в бизнес-процессе
Вычисление ID начальника
Вычисление ID начальника
Урок
247
из
251
Автор:
Марина Павлова
Сложность урока:
2 из 5
2 уровень - несложные понятия и действия, но не расслабляйтесь.
Просмотров:
30413
Дата изменения:
13.08.2024
Недоступно в лицензиях:
Старт, Стандарт, Малый бизнес
Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).
Определяем начальника |
Чтобы вычислить начальника автора документа с помощью действия 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. Будет работать быстрее.Мы стараемся сделать документацию понятнее и доступнее,
и Ваше мнение важно для нас
и Ваше мнение важно для нас
Курсы разработаны в компании «1С-Битрикс»