Получить значение свойства из Highloadblock

  • Роман Цуканов
    Разработчик
  • Дата публикации
    30.07.2021
  • Категория
    1С-Битрикс
Задача:Написать простую функцию, которая будет возвращать значение необходимого поля highload блока по заданным параметрам.

Для простоты использования напишем вот такую функцию в init.php:

function getHigloadField($tableName, $xmlId, $fieldName=false)
{
    $result = false;

    $hlblock = \Bitrix\Highloadblock\HighloadBlockTable::getList(
        array("filter" => array(
            'TABLE_NAME' => $tableName
        ))
    )->fetch();

    if (isset($hlblock['ID'])) {

        $entity = \Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hlblock);
        $entity_data_class = $entity->getDataClass();
        $res = $entity_data_class::getList( array('filter'=>array( 'UF_XML_ID' => $xmlId,)) );
        if ($item = $res->fetch())
        {
            if(!empty($fieldName)) {
                $result = $item[$fieldName];
            } else {
                $result = $item;
            }
        }
    }
    return $result;
}

В качестве входящих данных функция принимает название таблицы, в которой хранятся данные необходимого нам списка, значение искомого свойства в массиве $arResult[‘PROPERTIES’], а также необязательный параметр — название необходимого вам поля. Если последний параметр отсутствует, то вам будет возвращен весь массив полей искомой записи, конечно только в случае, если запись с указанными параметрами существует.

Еще нет коммментариев. Будь первым!

Оформить заказ в Devstages