Документация для разработчиков
Темная тема

getList

\Bitrix\Catalog\Model\Entity public static
\Bitrix\Catalog\Model\Entity::getList(
	array $parameters
);

Метод создает ORM-выборку для таблицы дочерней модели и возвращает объект модели для чтения строк через fetch(). Статический метод.

Метод вызывают через конкретную модель. Доступные поля запроса определяет ORM-таблица этой модели.

Параметры

ПараметрОписание
$parametersПараметры ORM-запроса: select, filter, order, group, limit, offset, runtime, cache и другие параметры, которые поддерживает ORM

Ключи массива $parameters

КлючОписание
select Массив полей, которые нужно вернуть.
[
	"ID",
	"FIELD_NAME",
	"ALIAS" => "RELATED_ENTITY.FIELD_NAME"
]
Если ключ не передан, ORM выбирает все доступные скалярные и вычисляемые поля. Если список не содержит * и ключ group не задан, модель временно добавляет кешируемые поля
filter Массив условий отбора или объект \Bitrix\Main\ORM\Query\Filter\ConditionTree.
[
	"=FIELD_NAME" => "value",
	">NUMERIC_FIELD" => 0,
	"@ID" => [1, 2, 3]
]

Основные операторы:

  • без оператора или = — равно,
  • ! или != — не равно,
  • >, <, >=, <= — сравнение значений,
  • >< и !>< — входит или не входит в диапазон,
  • % и !% — содержит или не содержит подстроку,
  • @ и !@ — входит или не входит в массив.
Пустой фильтр не ограничивает выборку
group Массив полей группировки.
[
	"FIELD_NAME"
]
Если ключ не передан или массив пуст, ORM не группирует строки. При наличии ключа модель не добавляет кешируемые поля в select
order Массив полей и направлений сортировки.
[
	"FIELD_NAME" => "ASC",
	"ID" => "DESC"
]
Допустимы направления ASC и DESC. ORM применяет поля последовательно в порядке элементов массива. Если ключ не передан, результат не имеет заданной сортировки
limitМаксимальное количество строк. Если ключ не передан, количество строк не ограничено
offsetКоличество строк, которые нужно пропустить от начала выборки. Если ключ не передан, выборка начинается с первой строки
count_totalЗначение true включает подсчет общего количества строк без учета limit и offset
runtimeМассив полей, которые ORM создает только для текущего запроса
data_doublingЛогическое значение, которое управляет обработкой дублирования данных при фильтрации по связям
private_fieldsЛогическое значение, которое разрешает или запрещает использовать приватные поля ORM-объекта
cache Настройки кеширования ORM-запроса.
[
	"ttl" => 3600,
	"cache_joins" => true
]
Ключ ttl задает время хранения результата в секундах. Ключ cache_joins разрешает кешировать запросы с объединениями таблиц

Возвращаемое значение

Метод возвращает общий объект \Bitrix\Catalog\Model\Entity. Фактический класс результата совпадает с классом вызова. Строки результата получают методом fetch().

Состав строки зависит от ORM-таблицы дочерней модели и ключа select. Поля товара описаны на странице Product::getList(), поля цены — на странице Price::getList().

Как работает метод

Метод получает объект модели через getEntity(), подготавливает select для заполнения внутреннего кеша и передает параметры методу getList() ORM-таблицы.

Если select задан без * и без group, модель добавляет недостающие кешируемые поля во внутренний запрос. Метод fetch() использует их для кеша и удаляет из массива результата, если разработчик не запрашивал эти поля.

Исключения

  • \Bitrix\Main\ArgumentException — параметры ORM-запроса содержат некорректное значение,
  • \Bitrix\Main\ObjectNotFoundException — модель не смогла получить объект ORM-таблицы,
  • \Bitrix\Main\ObjectPropertyException — ORM не смогла получить свойство объекта,
  • \Bitrix\Main\SystemException — ORM не смогла построить или выполнить запрос.

Пример

<?php

use Bitrix\Catalog\Model\Product;
use Bitrix\Main\Loader;

if (!Loader::includeModule('catalog'))
{
	throw new RuntimeException('Не удалось подключить модуль catalog');
}

$products = Product::getList([
	'select' => ['ID', 'TYPE'],
	'order' => ['ID' => 'ASC'],
	'limit' => 10,
]);

while ($product = $products->fetch())
{
	print_r($product);
}


Была ли эта страница полезна?

Пользовательские комментарии

Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2026, «1С-Битрикс», 2026
Наверх