Для определения наличия у определенного раздела вложенных подразделов можно, при использовании CIBlockSection::GetList, всего лишь проверить, что выражение RIGHT_MARGIN - LEFT_MARGIN больше единицы.
Пример:
$sect = CIBlockSection::GetList(Array(), $arFilterElem, false, $arSelectElem, Array("nPageSize"=>10)); if($arSect = $sect->Fetch()) { // есть ли подразделы if($arSect['RIGHT_MARGIN'] - $arSect['LEFT_MARGIN']) > 1) echo 'Подразделы есть'; else echo 'Подразделов нет'; // определение кол-ва подразделов $sectCnt = ceil(($arSect['RIGHT_MARGIN'] - $arSect['LEFT_MARGIN']) / 2) - 1; echo 'Количество подразделов: '.$sectCnt; }
Стоит отметить, что в данном случае учитываются и неактивные подразделы.