Т.к. подразделения - это инфоблоки, то получить ИДшники всех подразделений внутри искомого можно так:
Код |
---|
CModule::IncludeModule('iblock'); $parentDepartmentId = '126'; //ИД подразделения, внутри которого ищем $IBLOCK_ID = '5'; //ИД инфоблока подразделений $arParenFilter = Array('IBLOCK_ID'=>$IBLOCK_ID, 'GLOBAL_ACTIVE'=>'Y', 'ID' => $parentDepartmentId); $arParentSelect = Array('ID', 'IBLOCK_ID', 'LEFT_MARGIN', 'RIGHT_MARGIN', 'NAME'); $arChildSelect = Array('ID', 'IBLOCK_ID', 'LEFT_MARGIN', 'RIGHT_MARGIN', 'NAME'); $parentSection = CIBlockSection::GetList(Array($by=>$order), $arParenFilter, false, $arParentSelect); if($arParentSection = $parentSection->GetNext()){ $arChildFilter = array('IBLOCK_ID' => $arParentSection['IBLOCK_ID'],'>LEFT_MARGIN' => $arParentSection['LEFT_MARGIN'],'<RIGHT_MARGIN' => $arParentSection['RIGHT_MARGIN'],'>DEPTH_LEVEL' => $arParentSection['DEPTH_LEVEL']); // выберет потомков без учета активности $childSection = CIBlockSection::GetList(array('left_margin' => 'asc'), $arChildFilter, false, $arChildSelect); while ($arChildSection = $childSection->GetNext()) { $arChildIDs[] = $arChildSection['ID']; } } |