Bitrix Help
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Главная » API Битрикс » CIBlockElement » CIBlockElement::GetList в Битрикс: полное руководство

CIBlockElement::GetList в Битрикс: полное руководство

Обновлено: 2026 • Раздел: CIBlockElement


Метод CIBlockElement::GetList — один из самых часто используемых инструментов в классическом API 1С-Битрикс. Он предназначен для получения элементов инфоблоков с возможностью фильтрации, сортировки, выборки нужных полей и работы с различными условиями. Несмотря на появление D7 ORM, данный метод по-прежнему широко применяется в проектах, особенно в старом и гибридном коде.

Что такое CIBlockElement::GetList

CIBlockElement::GetList — это метод класса CIBlockElement, который позволяет получать список элементов инфоблока с гибкими параметрами выборки. Он используется для:

Синтаксис CIBlockElement::GetList

Базовый синтаксис выглядит так:
CIBlockElement::GetList(
    array $arOrder,
    array $arFilter,
    bool|array $arGroupBy = false,
    bool|array $arNavStartParams = false,
    array $arSelectFields = []
);

Параметры метода

1. $arOrder — сортировка

Определяет порядок вывода элементов. Пример:
$arOrder = [
    "SORT" => "ASC",
    "ID" => "DESC"
];
Можно использовать:

2. $arFilter — фильтрация

Основной параметр отбора данных. Пример:
$arFilter = [
    "IBLOCK_ID" => 5,
    "ACTIVE" => "Y"
];
Популярные фильтры:

3. $arGroupBy — группировка

Используется редко. Пример:
$arGroupBy = false;
Или группировка по полю:
["ID"]

4. $arNavStartParams — постраничная навигация

Используется для пагинации:
$arNavStartParams = [
    "nPageSize" => 10
];
Дополнительно:

5. $arSelectFields — выбираемые поля

Определяет, какие поля будут получены. Пример:
$arSelectFields = [
    "ID",
    "NAME",
    "IBLOCK_ID",
    "DETAIL_PAGE_URL"
];
Можно также использовать:

Простой пример CIBlockElement::GetList

CModule::IncludeModule("iblock");

$res = CIBlockElement::GetList(
    ["ID" => "DESC"],
    ["IBLOCK_ID" => 5, "ACTIVE" => "Y"],
    false,
    ["nPageSize" => 10],
    ["ID", "NAME", "DETAIL_PAGE_URL"]
);

while ($item = $res->GetNext())
{
    echo $item["NAME"] . "<br>";
}

Получение элемента по ID

$arFilter = [
    "ID" => 123,
    "IBLOCK_ID" => 5
];

$res = CIBlockElement::GetList([], $arFilter);

if ($item = $res->GetNext())
{
    print_r($item);
}

Работа со свойствами

Чтобы получить свойства элемента:
["ID", "NAME", "PROPERTY_PRICE", "PROPERTY_COLOR"]
Пример:
$res = CIBlockElement::GetList(
    [],
    ["IBLOCK_ID" => 5],
    false,
    false,
    ["ID", "NAME", "PROPERTY_PRICE"]
);

Использование пагинации

$res = CIBlockElement::GetList(
    ["ID" => "DESC"],
    ["IBLOCK_ID" => 5],
    false,
    ["nPageSize" => 20],
    ["ID", "NAME"]
);

Частые ошибки CIBlockElement::GetList

1. Не подключен модуль iblock

Ошибка:
Class 'CIBlockElement' not found
Решение:
CModule::IncludeModule("iblock");

2. Пустой результат

Причины:

3. Неправильный выбор полей

Если не указать поле в $arSelectFields — оно не вернется. Ошибка:
["ID", "NAME"] // и нет PROPERTY_PRICE

4. Перегрузка запроса

Плохая практика:

5. Медленная работа

Причины:

Оптимизация CIBlockElement::GetList

Рекомендации:

CIBlockElement::GetList vs D7 ORM

CIBlockElement D7 ORM
Старый API Новый API
Быстрый старт Гибкость
Меньше контроля Больше возможностей
Часто используется Рекомендуется для новых проектов

Пример с фильтром по свойству

$arFilter = [
    "IBLOCK_ID" => 5,
    "ACTIVE" => "Y",
    "PROPERTY_COLOR" => "red"
];

$res = CIBlockElement::GetList(
    ["ID" => "DESC"],
    $arFilter,
    false,
    false,
    ["ID", "NAME"]
);

Заключение

CIBlockElement::GetList — это базовый и мощный инструмент Битрикс для работы с инфоблоками. Он позволяет гибко получать данные, фильтровать элементы, использовать сортировку и пагинацию. Несмотря на появление современных ORM-инструментов, этот метод остается актуальным и часто используется в реальных проектах благодаря своей простоте и надежности.
Услуги


База знаний