1С-Битрикс: Работа с highload блоками на D7

19.11.2020
Рассмотрим как работать с Highload блоками через API. Сам highload блок вы создаете в админке, задаете ему поля, которые настраиваются в пользовательских полях для объекта HBLOCK_ид. Рассмотрим создание записей, изменение записей, фильтрацию и поиск по записям. 
use Bitrix\Highloadblock as HL; 
use Bitrix\Main\Entity;
use Bitrix\Main\Loader; 

Loader::includeModule("highloadblock"); 

$hbID = 11; 
$hlblock = HL\HighloadBlockTable::getById($hbID)->fetch(); 

$entity = HL\HighloadBlockTable::compileEntity($hlblock); 
$entity_data_class = $entity->getDataClass(); 


//Или если ID не известен или меняется при миграции на боевой портал

$hlblock = HighloadBlockTable::getList([
    'filter' => ['=NAME' => 'код HB']
])->fetch();

if($hlblock){
$hlClassName = (HighloadBlockTable::compileEntity($hlblock))->getDataClass();
} // Добавление элемента $data = array( "UF_NAME"=>'Название', ); $result = $entity_data_class::add($data); //изменение элемента $data = array( "UF_NAME"=>'другое Название, ); $elementID=2; $result = $entity_data_class::update($elementID, $data); //Получение по фильтру: $rsData = $entity_data_class::getList(array( "select" => array("*"), "filter" => array("UF_POLE_ID"=>"1") )); while($arData = $rsData->Fetch()){ var_dump($arData); }

Возврат к списку


Материалы по теме: