Найти в Дзене

1с Битрикс - получаем дерево разделов

Что бы получить и вывести дерево разделов в 1c Bitrix, можно использовать следующее решение: $arFilter = array( 'ACTIVE' => 'Y', 'IBLOCK_ID' => ИД ИНФОБЛОКА, 'GLOBAL_ACTIVE' => 'Y', ); $arSelect = array('IBLOCK_ID', 'ID', 'NAME', 'DEPTH_LEVEL', 'IBLOCK_SECTION_ID'); $arOrder = array('DEPTH_LEVEL' => 'ASC', 'SORT' => 'ASC'); $rsSections = CIBlockSection::GetList($arOrder, $arFilter, false, $arSelect); $sectionLinc = array(); $arResult['ROOT'] = array(); $sectionLinc[0] = &$arResult['ROOT']; while ($arSection = $rsSections->GetNext()) { $sectionLinc[(int)$arSection['IBLOCK_SECTION_ID']]['CHILD'][$arSection['ID']] = $arSection; $sectionLinc[$arSection['ID']] = &$sectionLinc[(int)$arSection['IBLOCK_SECTION_ID']]['CHILD'][$arSection['ID']]; } unset( $sectionLinc ); $arResult['ROOT'] = $arResult['ROOT']['CHILD'];

Что бы получить и вывести дерево разделов в 1c Bitrix, можно использовать следующее решение:

$arFilter = array(

'ACTIVE' => 'Y',

'IBLOCK_ID' => ИД ИНФОБЛОКА,

'GLOBAL_ACTIVE' => 'Y',

);

$arSelect = array('IBLOCK_ID', 'ID', 'NAME', 'DEPTH_LEVEL', 'IBLOCK_SECTION_ID');

$arOrder = array('DEPTH_LEVEL' => 'ASC', 'SORT' => 'ASC');

$rsSections = CIBlockSection::GetList($arOrder, $arFilter, false, $arSelect);

$sectionLinc = array();

$arResult['ROOT'] = array();

$sectionLinc[0] = &$arResult['ROOT'];

while ($arSection = $rsSections->GetNext()) {

$sectionLinc[(int)$arSection['IBLOCK_SECTION_ID']]['CHILD'][$arSection['ID']] = $arSection;

$sectionLinc[$arSection['ID']] = &$sectionLinc[(int)$arSection['IBLOCK_SECTION_ID']]['CHILD'][$arSection['ID']];

}

unset( $sectionLinc );

$arResult['ROOT'] = $arResult['ROOT']['CHILD'];