-
Роман ЦукановРазработчик
-
Дата публикации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’], а также необязательный параметр — название необходимого вам поля. Если последний параметр отсутствует, то вам будет возвращен весь массив полей искомой записи, конечно только в случае, если запись с указанными параметрами существует.