Как сделать работу с Highloadblock bitrix более сносной? Решение есть, описание сущности таблицы в ORM, данный способ позволит нам с легкостью обращаться к полям справочника как к любой другой таблице описанной в ORM, те доступны все методы Add, Update, GetList и т.д.
Только существует один ньюанс при обращении к полю множественного типа оно возращается строкой для которой надо применить unseriallize().
Подключить данный код можно в php_interface/init.php
Рекомендация — для каждой таблицы создавать отдельный файл с описанием сущности справочника
<?php namespace Gw\Tables; use Bitrix\Main\Entity\DataManager, Bitrix\Highloadblock as HL, Bitrix\Main\Entity\IntegerField, Bitrix\Main\Entity\TextField, Bitrix\Main\Entity\FloatField, Bitrix\Main\Loader, Bitrix\Highloadblock\HighloadBlockTable; Loader::includeModule('highloadblock'); /** * Class HlCityTable * @package Gw\Tables */ class HlStatusTable extends DataManager { private static $id = 1; public static function getTableName() { return 'hl_order_status'; } public static function getMap() { return array( 'ID' => new IntegerField('ID', array( 'primary' => true, 'title' => "ID" )), 'UF_ID' => new TextField('UF_ID', array( 'title' => "UF_ID" )), 'UF_COLOR' => new TextField('UF_COLOR', array( 'title' => "UF_COLOR" )), ); } }