Бортовой журнал Ктулху

Битрикс: выборка из highload инфоблока

В этой статье я опишу простой способ получения списка элементов из highload инфоблока.

Для примера я выведу все цвета из инфоблока Color Refernce.

В стандартном интернет-магазине на Битриксе есть заполненный справочник цветов.

colors

Этот код выводит все содержимое инфоблока.

CModule::IncludeModule("highloadblock"); // подключить инфоблоки
use Bitrix\Highloadblock as HL;
use Bitrix\Main\Entity;
$hlblock_id = 1;// id инфоблока
$hlblock = HL\HighloadBlockTable::getById($hlblock_id)->fetch();
 
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$entity_data_class = $entity->getDataClass();
$rsData = $entity_data_class::getList(array(
"select" => array("*"),
"order" => array("ID" => "ASC"),
// "filter" => array('UF_XML_ID' => $color)
));
while($arData = $rsData->Fetch())
{
$arResult[] = $arData;
}

Можно сделать выборку одного элемента, в данном примере - с фильтрацией по XML_ID (раскомментировать). Вместо переменной $color подставить значение из поля, например purple.

фиолетовый

Если возникнет ошибка:

Parse error: syntax error, unexpected 'use' (T_USE) in /home/bitrix/www/personal/index.php on line 205

Нельзя помещать use внутри функции. Вынесите use в самое начало страницы, туда же где Вы обычно объявляете глобальные переменные.