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

getList

\Bitrix\Main\ORM\Query\Result public static
\Bitrix\Iblock\IblockTable::getList(
	array $parameters = array()
);

Возвращает выборку записей инфоблоков с фильтрацией, сортировкой и ограничением количества строк. Статический метод. Унаследован от \Bitrix\Main\ORM\Data\DataManager.

Параметры

Параметр Описание
$parameters Массив параметров запроса. По умолчанию пустой массив. Допустимые ключи перечислены ниже

Параметры запроса

Параметр Описание
select Массив выбираемых полей. Поддерживает псевдонимы вида 'IBLOCK_NAME' => 'NAME' и пути связей, например TYPE.ID
['ID', 'NAME', 'CODE', 'ACTIVE']

Если параметр не задан, используется ['*'] — все скалярные поля инфоблока. Поля связей TYPE и PROPERTIES выбирайте явно

filter Массив условий '[оператор]ПОЛЕ' => значение или объект \Bitrix\Main\ORM\Query\Filter\ConditionTree. Пример формата массива:
[
	'=ACTIVE' => 'Y',
	'>=SORT' => 100,
	'@ID' => [7, 12],
]

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

  • = — равенство; != — неравенство.
  • >, >=, <, <= — сравнение значений.
  • @, !@ — вхождение в массив значений или исключение из него.
  • ><, !>< — попадание в диапазон из двух значений или исключение диапазона.
  • %, !% — поиск подстроки или исключение строк с подстрокой.
  • =%, !=% — совпадение или несовпадение с шаблоном SQL LIKE; символы % и _ задаются в значении.
  • ==, !== с null — проверка на SQL NULL или NOT NULL.

Для точного сравнения строк задавайте = явно: без префикса строковое условие использует LIKE. Условия по умолчанию соединяются через AND. Вложенные группы с ключом LOGIC позволяют задать AND или OR. Пустой или отсутствующий фильтр не ограничивает выборку

order Массив поле => направление
['SORT' => 'ASC', 'ID' => 'DESC']
  • ASC — по возрастанию.
  • DESC — по убыванию.

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

group Массив полей группировки
['IBLOCK_TYPE_ID']

Согласуйте select с полями группировки и агрегатными выражениями. Пустой массив не задает явную группировку и не переключает метод в режим возврата количества. Агрегатные поля ORM могут вызвать автоматическую группировку

limit Максимальное количество строк — положительное целое число. По умолчанию ограничение не задано
'limit' => 20
offset Количество пропускаемых строк — неотрицательное целое число. По умолчанию строки не пропускаются. Для постраничного вывода используйте вместе с limit и стабильной сортировкой
'offset' => 40
count_total Логическое значение. При true результат позволяет получить общее количество строк без ограничения страницы через getCount(). По умолчанию отдельный подсчет не включен
runtime Массив дополнительных полей запроса, например вычисляемых полей ExpressionField
[new \Bitrix\Main\ORM\Fields\ExpressionField('CNT', 'COUNT(*)')]

Поле CNT в этом примере содержит количество записей; его нужно включить в select. По умолчанию дополнительных полей нет

cache Параметры кеша
['ttl' => 3600, 'cache_joins' => false]

ttl — срок в секундах, по умолчанию 0 (кеш отключен). cache_joins разрешает кешировать запросы со связями; по умолчанию false

data_doubling При false ORM заменяет условия фильтра по связям «один ко многим» подзапросами, чтобы они не размножали строки. По умолчанию размножение разрешено. Параметр не устраняет дубли от полей связи, явно включенных в select
private_fields Разрешает обращаться к полям, которые ORM пометила приватными. По умолчанию false. Это настройка доступности полей ORM, а не проверка прав пользователя

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

Объект \Bitrix\Main\ORM\Query\Result, в том числе для пустой выборки. Метод fetch() возвращает следующую запись как ассоциативный массив или false, если строки закончились. Метод fetchAll() возвращает массив оставшихся строк.

Сам getList() не возвращает число или false. При count_total = true количество доступно через getCount() объекта результата; группировка не меняет тип результата.

Состав ключей записи зависит от select и заданных псевдонимов. При стандартном select = ['*'] доступны следующие поля. Типы и допустимые значения соответствуют карте ORM; необязательные поля могут содержать null.

Ключ Описание
ID Целочисленный первичный ключ с автоинкрементом — идентификатор инфоблока
TIMESTAMP_X Дата и время изменения — объект \Bitrix\Main\Type\DateTime
IBLOCK_TYPE_ID Строка — идентификатор типа инфоблока
LID Строка — идентификатор сайта
CODE Строка — символьный код инфоблока
API_CODE Строка — символьный код API
REST_ON Логическое поле — доступ через REST. Значения N, Y
NAME Строка — название инфоблока
ACTIVE Логическое поле — активность инфоблока. Значения N, Y
SORT Целое число — индекс сортировки
LIST_PAGE_URL, DETAIL_PAGE_URL, SECTION_PAGE_URL, CANONICAL_PAGE_URL Строки — шаблоны URL списка, элемента, раздела и канонического адреса
PICTURE Целое число — идентификатор изображения инфоблока
DESCRIPTION Строка — описание инфоблока
DESCRIPTION_TYPE Тип описания: text или html
XML_ID Строка — внешний идентификатор инфоблока
TMP_ID Служебная строка
INDEX_ELEMENT, INDEX_SECTION Логические поля — индексация элементов и разделов для поиска. Значения N, Y
WORKFLOW, BIZPROC Логические поля — использование документооборота и бизнес-процессов. Значения N, Y
SECTION_CHOOSER Способ выбора разделов: L — список, D — выпадающие списки, P — путь
LIST_MODE Режим списка: C — совместный просмотр разделов и элементов, S — раздельный
RIGHTS_MODE Режим прав: S — простой, E — расширенный
SECTION_PROPERTY Логическое поле — привязка свойств к разделам. Значения N, Y
PROPERTY_INDEX Состояние индекса свойств: N — отключен, Y — включен, I — недействителен
VERSION Хранение свойств: 1 — общая таблица, 2 — отдельные таблицы инфоблока
LAST_CONV_ELEMENT, SOCNET_GROUP_ID Служебные целочисленные поля — последний преобразованный элемент и идентификатор социальной группы
EDIT_FILE_BEFORE, EDIT_FILE_AFTER Строки — файлы формы редактирования до и после полей
FULLTEXT_INDEX Логическое поле — полнотекстовый индекс. Значения N, Y

Особенности

Метод получает настройки инфоблоков, а не их элементы. Фильтр по активности и проверка прав пользователя автоматически не добавляются. Условие LID относится к столбцу инфоблока; полные привязки к сайтам хранятся отдельно в IblockSiteTable.

Неизвестный ключ массива $parameters или неверное направление сортировки вызывает \Bitrix\Main\ArgumentException. Ошибки полей, связей и выполнения SQL также могут привести к исключению.

Пример

Пример выполняется с подключенным ядром Bitrix. Он выводит первые 20 активных инфоблоков и их общее количество. При выводе в браузере для переноса строк используйте подходящую HTML-разметку.

<?php

use Bitrix\Iblock\IblockTable;
use Bitrix\Main\Loader;

try
{
	if (!Loader::includeModule('iblock'))
	{
		echo 'Не удалось подключить модуль iblock';
		return;
	}

	$result = IblockTable::getList([
		'select' => ['ID', 'NAME', 'CODE', 'IBLOCK_TYPE_ID', 'ACTIVE', 'SORT'],
		'filter' => ['=ACTIVE' => 'Y'],
		'order' => ['SORT' => 'ASC', 'ID' => 'ASC'],
		'limit' => 20,
		'offset' => 0,
		'count_total' => true,
	]);

	echo 'Всего активных инфоблоков: ' . $result->getCount() . PHP_EOL;
	$hasRows = false;
	while ($iblock = $result->fetch())
	{
		$hasRows = true;
		echo (int)$iblock['ID'] . ': ';
		echo htmlspecialchars($iblock['NAME'], ENT_QUOTES, 'UTF-8') . PHP_EOL;
	}
	if (!$hasRows)
	{
		echo 'Инфоблоки не найдены';
	}
}
catch (\Throwable $exception)
{
	echo 'Ошибка: ' . htmlspecialchars($exception->getMessage(), ENT_QUOTES, 'UTF-8');
}

Продолжить изучение



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

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

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

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