Для определения наличия у определенного раздела вложенных подразделов можно, при использовании 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;
}
Стоит отметить, что в данном случае учитываются и неактивные подразделы.