1с-Битрикс управление сайтом

Продление лицензий 1С-Битрикс: Управление сайтом
У нас вы можете приобрести продукты и продления лицензий 1С-Битрикс без наценок и бюрократии.

Битрикс24

Продление лицензий Битрикс24
У нас вы можете приобрести продукты и продления лицензий Битрикс24 без наценок и бюрократии.
Назад

Как вывести список элементов и разделов инфоблока в Битрикс

Как
Главная
Блог
Как вывести список элементов и разделов инфоблока в Битрикс

В 1С-Битрикс часто возникает необходимость вывести список элементов или разделов конкретного инфоблока. Для этого используются методы:

  • CIBlockElement::GetList – для элементов

  • CIBlockSection::GetList – для разделов

Рассмотрим оба варианта с примерами кода и рекомендациями по оптимизации.

Как вывести список элементов инфоблока

Создадим тестовую страницу test.php в корне сайта:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Список элементов инфоблока");
?>

<?
if (CModule::IncludeModule("iblock")) {
    $iblock_id = 14; // ID вашего инфоблока
    
    $my_elements = CIBlockElement::GetList(
        ["ID" => "ASC"], // Сортировка
        ["IBLOCK_ID" => $iblock_id], // Фильтр
        false, // Группировка
        false, // Постраничная навигация
        ['ID', 'NAME', 'DETAIL_PAGE_URL'] // Выбираемые поля
    );

    while($ar_fields = $my_elements->GetNext()) {
        echo urldecode($ar_fields['DETAIL_PAGE_URL']) . "<br>";
    }
}
?>

<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

Разбор кода:

  1. Подключаем модуль iblock – обязательно для работы с инфоблоками

  2. Указываем ID нужного инфоблока

  3. CIBlockElement::GetList принимает параметры:

    • Сортировка (["ID" => "ASC"])

    • Фильтр (["IBLOCK_ID" => $iblock_id])

    • Выбираемые поля (только необходимые для снижения нагрузки)

  4. Выводим результаты в цикле

Важно: Всегда указывайте конкретные поля в выборке, чтобы избежать избыточной нагрузки на сервер.

Как вывести свойства элементов

Для вывода свойств добавьте их в массив выборки с префиксом PROPERTY_:

$my_elements = CIBlockElement::GetList(
    ["ID" => "ASC"],
    ["IBLOCK_ID" => $iblock_id],
    false,
    false,
    ['ID', 'NAME', 'DETAIL_PAGE_URL', 'PROPERTY_TITLE']
);

while($ar_fields = $my_elements->GetNext()) {
    echo $ar_fields['PROPERTY_TITLE_VALUE'] . "<br>";
}

Как вывести список разделов инфоблока

Для разделов используйте CIBlockSection::GetList:

$my_sections = CIBlockSection::GetList(
    ["ID" => "ASC"], // Сортировка
    ["IBLOCK_ID" => 14, "ACTIVE" => "Y"], // Фильтр
    false, // Подсчет количества элементов
    ['ID', 'NAME', 'CODE'] // Выбираемые поля
);

while($ar_fields = $my_sections->GetNext()) {
    echo urldecode($ar_fields['CODE']) . "<br>";
}

Ключевые отличия:

  • Четвертый параметр (false) – отвечает за подсчет элементов

  • Фильтр может включать "ACTIVE" => "Y" для только активных разделов

Оптимизация запросов

  1. Ограничивайте выборку – используйте "nTopCount" => N для получения N записей

  2. Выбирайте только нужные поля – избегайте false в параметре выборки

  3. Кэшируйте результаты – особенно для часто используемых данных

Эти методы помогут вам эффективно работать с инфоблоками в Битрикс без лишней нагрузки на сервер.

Получите план улучшений для вашего сайта — бесплатно
Оставьте заявку и получите аудит сайта по ключевым параметрам, включая скорость, безопасность и SEO-ошибки, которые мешают сайту привлекать клиентов.
Заказать аудит
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи