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

Для вывода определенного раздела в комплексном компоненте 1C-Bitrix требуется выполнить несколько шагов. Рассмотрим подробнее каждый из них.

1. Создание шаблона комплексного компонента:
Вам нужно создать новый файл шаблона для вашего компонента. Допустим, вы создали файл template.php в папке вашего компонента.

2. Подготовка компонента для вывода раздела:
Откройте файл компонента в папке компонента, обычно это файл component.php. В этом файле вам нужно определить параметры раздела, который вы хотите вывести в шаблон. Параметры могут включать идентификатор раздела, символьный код или любой другой идентификатор, который позволяет идентифицировать нужный раздел.

3. Получение данных о разделе:
В файле component.php вам необходимо получить данные о разделе, используя функции 1C-Bitrix. Например, вы можете использовать функцию CIBlockSection::GetByID() для получения данных раздела по его идентификатору или символьному коду. Полученные данные сохраняются в переменной $arResult, которая будет доступна в шаблоне компонента.

4. Передача данных в шаблон компонента:
После получения данных о нужном разделе их необходимо передать в шаблон для вывода. Это делается через глобальную переменную $arResult. Например, вы можете присвоить полученные данные переменной $arResult['SECTION'], чтобы передать их в шаблон компонента.

5. Вывод раздела в шаблоне компонента:
Теперь вы можете использовать полученные данные в файле шаблона template.php для вывода нужного раздела. Например, вы можете использовать цикл foreach для перебора элементов раздела и вывода их на экран.

Приведу пример кода, который позволяет реализовать описанный выше функционал:

Файл component.php:

<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die();

$sectionId = 123; // Идентификатор нужного раздела

$arFilter = array(
    'ID' => $sectionId,
    'IBLOCK_ID' => $arParams['IBLOCK_ID'],
);
$dbSections = CIBlockSection::GetList(array(), $arFilter);
if ($arSection = $dbSections->Fetch()) {
    $arResult['SECTION'] = $arSection;
}

$this->IncludeComponentTemplate();
?>

Файл template.php:

<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED!==true) die();

if (!empty($arResult['SECTION'])) {
    // Выводим заголовок раздела
    echo '<h1>'.$arResult['SECTION']['NAME'].'</h1>';

    // Выводим описание раздела
    echo '<p>'.$arResult['SECTION']['DESCRIPTION'].'</p>';

    // Выводим элементы раздела
    if (!empty($arResult['SECTION']['ELEMENTS'])) {
        echo '<ul>';
        foreach ($arResult['SECTION']['ELEMENTS'] as $arElement) {
            echo '<li>'.$arElement['NAME'].'</li>';
        }
        echo '</ul>';
    }
}
?>

В этом примере мы получаем данные о разделе по его идентификатору, сохраняем их в переменной $arResult['SECTION'] и выводим эти данные в шаблоне компонента. Вы можете адаптировать этот пример под свои нужды, добавлять или изменять выводимую информацию о разделе.