В 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 инфоблока. Выбор подходящего способа зависит от требований конкретного проекта и уровня знаний разработчика.