Как организовать вывод в битрикс только подкатегорий?

В 1C-Bitrix есть несколько способов организовать вывод только подкатегорий на сайте.

1. Использование компонента "Каталог" (catalog.section) с ограничением на вывод подкатегорий.

Компонент "Каталог" позволяет выводить список разделов каталога или товаров из выбранного раздела. Для ограничения вывода только подкатегорий, необходимо задать параметр FILTER в вызове компонента. Пример использования:

<?
    $arFilter = array(
        'IBLOCK_ID' => 1,
        'SECTION_ID' => 1,
        'DEPTH_LEVEL' => 2,
    );
    $APPLICATION->IncludeComponent(
        'bitrix:catalog.section',
        '',
        array(
            'IBLOCK_TYPE' => 'catalog',
            'IBLOCK_ID' => $arFilter['IBLOCK_ID'],
            'SECTION_ID' => $arFilter['SECTION_ID'],
            'SECTION_URL' => '/catalog/#SECTION_CODE#/',
            'DEPTH_LEVEL' => $arFilter['DEPTH_LEVEL'],
        )
    );
?>

В данном примере параметр IBLOCK_ID указывает на ID инфоблока, в котором находятся категории. Параметр SECTION_ID определяет ID родительской категории, для которой вы хотите вывести подкатегории. Параметр DEPTH_LEVEL задает глубину вывода подкатегорий (в данном случае 2, что означает только подкатегории). SECTION_URL указывает на страницу подкатегории.

2. Использование методов API инфоблока.

Инфоблоки в 1C-Bitrix имеют API, позволяющее работать с разделами и элементами. Для вывода только подкатегорий можно воспользоваться методом GetList класса CIBlockSection, передав в качестве параметра фильтр, который ограничит вывод подкатегорий. Пример использования:

<?
    $arFilter = array(
        'IBLOCK_ID' => 1,
        'SECTION_ID' => 1,
        '>DEPTH_LEVEL' => 1,
        '<=DEPTH_LEVEL' => 2,
    );
    $arSelect = array(
        'ID',
        'NAME',
        'SECTION_PAGE_URL',
    );

    $res = CIBlockSection::GetList(
        array(),
        $arFilter,
        false,
        $arSelect
    );
    while ($arItem = $res->GetNext()) {
        echo '<a href="' . $arItem['SECTION_PAGE_URL'] . '">' . $arItem['NAME'] . '</a><br>';
    }
?>

В данном примере также используется фильтр по ID инфоблока (IBLOCK_ID) и ID родительской категории (SECTION_ID). Ограничение глубины вывода подкатегорий осуществляется с помощью фильтра по полю DEPTH_LEVEL. В качестве выводимых полей заданы ID, NAME и SECTION_PAGE_URL. Результат выводится в цикле while.

Оба способа позволяют организовать вывод только подкатегорий в 1C-Bitrix. Разница между ними заключается в использовании компонента или API инфоблока. Выбор подходящего способа зависит от требований конкретного проекта и уровня знаний разработчика.