Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Highload-блоки в 1С-Битрикс: создание, поля, работа через API

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Highload-блоки в 1С-Битрикс: создание, поля, работа через API

Highload-блоки (они же HL-блоки) - штука удобная, когда нужно хранить справочные данные: бренды, цвета, города, валюты, курсы и прочую мелкую, но важную информацию. HL-блоки не создают таблицы для свойств, а хранят все данные в одной таблице напрямую. Это быстрее, проще и удобнее для небольших справочников.
Пример создания HL-блока в самописном модуле. Нужно, при установке модуля, после создания HL - добавить ему поля.
В install.php
Код
$hlBlockId = $result->getId();
            $userTypeEntity = new CUserTypeEntity();
            $userTypeBank = array(
                'ENTITY_ID' => 'HLBLOCK_' . $hlBlockId,
                'FIELD_NAME' => 'UF_BANK',
                'USER_TYPE_ID' => 'string',
                'XML_ID' => 'XML_BANK_NAME',
                'SORT' => 500,
                'MULTIPLE' => 'N',
                'MANDATORY' => 'Y',
                'SHOW_FILTER' => 'N',
                'SHOW_IN_LIST' => '',
                'EDIT_IN_LIST' => '',
                'IS_SEARCHABLE' => 'N',
                'SETTINGS' => array(
                    'DEFAULT_VALUE' => 'Название банка',
                    'SIZE' => '20',
                    'ROWS' => '1',
                    'MIN_LENGTH' => '0',
                    'MAX_LENGTH' => '0',
                    'REGEXP' => '',
                ),
                'EDIT_FORM_LABEL' => array(
                    'ru' => 'Банк',
                    'en' => 'Bank',
                ),
                'LIST_COLUMN_LABEL' => array(
                    'ru' => 'Банк',
                    'en' => 'Bank',
                ),
                'LIST_FILTER_LABEL' => array(
                    'ru' => 'Банк',
                    'en' => 'Bank',
                ),
                'ERROR_MESSAGE' => array(
                    'ru' => 'Ошибочка вышла',
                    'en' => 'Error',
                ),
                'HELP_MESSAGE' => array(
                    'ru' => '',
                    'en' => '',
                ),
            );
            $userTypeMoney = array(
                'ENTITY_ID' => 'HLBLOCK_' . $hlBlockId,
                'FIELD_NAME' => 'UF_MONEY',
                'USER_TYPE_ID' => 'integer',
                'XML_ID' => 'XML_MONEY_NAME',
                'SORT' => 500,
                'MULTIPLE' => 'N',
                'MANDATORY' => 'Y',
                'SHOW_FILTER' => 'N',
                'SHOW_IN_LIST' => '',
                'EDIT_IN_LIST' => '',
                'IS_SEARCHABLE' => 'N',
                'SETTINGS' => array(
                    'DEFAULT_VALUE' => 'Деньги',
                    'SIZE' => '20',
                    'ROWS' => '1',
                    'MIN_LENGTH' => '0',
                    'MAX_LENGTH' => '0',
                    'REGEXP' => '',
                ),
                'EDIT_FORM_LABEL' => array(
                    'ru' => 'Деньги',
                    'en' => 'Money',
                ),
                'LIST_COLUMN_LABEL' => array(
                    'ru' => 'Деньги',
                    'en' => 'Money',
                ),
                'LIST_FILTER_LABEL' => array(
                    'ru' => 'Деньги',
                    'en' => 'Money',
                ),
                'ERROR_MESSAGE' => array(
                    'ru' => 'Ошибочка вышла',
                    'en' => 'Error',
                ),
                'HELP_MESSAGE' => array(
                    'ru' => '',
                    'en' => '',
                ),
            );
            $userTypeId = $userTypeEntity->Add($userTypeBank);
            $userTypeId = $userTypeEntity->Add($userTypeMoney);
            return $hlBlockId;
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Загрузить файлы
 

Блог-note Заметки по 1С-Битрикс