D7 ORMОбновлено: 23.10.2026 11:25:07

ORM D7 в 1С-Битрикс: getList, filter, select и limit

Практический запрос через DataManager::getList: подключение модуля, select, filter, order, limit, постраничная выборка и обработка исключений.

Время чтения: 12 мин.Уровень: Средний

Системные требования

Нужны тестовая копия проекта, доступ разработчика или администратора и резервная копия перед изменением рабочего кода.

Смотреть системные требования

1. Подключите модуль

Перед обращением к API подключите модуль через Loader:

use Bitrix\Main\Loader;

if (!Loader::includeModule("iblock")) {
  throw new RuntimeException("Модуль iblock не установлен");
}

Не подключайте файлы класса вручную из каталога ядра.

DataManager::getList

Официальные параметры select, filter, group, order, limit, offset и runtime.

Скачать

2. Соберите getList запрос

Метод getList() принимает параметры запроса:

$result = IblockTable::getList([
  "select" => ["ID", "NAME", "CODE"],
  "filter" => ["=ACTIVE" => "Y"],
  "order" => ["SORT" => "ASC", "ID" => "ASC"],
  "limit" => 20,
]);

Для постраничной выборки добавьте offset и стабильную сортировку.

Совет

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

3. Используйте операторы фильтра

Префикс = означает точное равенство, != — не равно, >= и <= — сравнение, @ — вхождение в массив, % — поиск подстроки.

Тип значения должен соответствовать карте ORM. Не собирайте имя поля или оператор напрямую из пользовательского запроса.

4. Обработайте результат и ошибки

Метод возвращает объект результата. Читайте строки через fetch() или fetchAll():

while ($row = $result->fetch()) {
  // используем $row["ID"], $row["NAME"]
}

Обрабатывайте ArgumentException, ObjectPropertyException и SystemException на границе приложения.

5. Контролируйте производительность

Не добавляйте связи и runtime-поля без необходимости: JOIN может размножать строки и усложнять план запроса. Для часто повторяемой безопасной выборки используйте параметр кеша ORM с подходящим TTL.

Медленные запросы анализируйте в Мониторе производительности, а не заменяйте сразу прямым SQL.

Была ли эта статья полезной?

Спасибо за ваш отзыв!