Highload-блоки
Highload-блоки представляют собой отдельные таблицы базы данных с первичным ключом ID и набором пользовательских полей UF_*. Класс сущности генерируется методом HighloadBlockTable::compileEntity(), а обращение к блоку в коде следует производить по строковому имени NAME, а не по динамическому числовому ID.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Когда использовать
-
2
Создание Highload-блока
-
3
API Highload-блоков
Материалы
Официальная документация
-
Работа с записями Новая дока
-
Архитектура и основные объекты Новая дока
-
Связи и справочники на Highload-блоках Новая дока
Материалы BXMax
Проверь себя
На проде код падает с «Highload-блок не найден», хотя на стенде всё работало. Что чаще всего оказывается причиной?
Числовой ID блока в коде. На разных окружениях блоки создавались в разном порядке, и ID не совпали. Ищите блок по NAME через HighloadBlockTable::resolveHighloadblock() или храните сопоставление в миграции.
Заказчик жалуется, что менеджер без прав на блок всё равно меняет записи через вашу форму. Почему?
Динамический класс данных не проверяет права из HighloadBlockRightsTable. Операции hl_element_read, hl_element_write и hl_element_delete нужно проверять в коде приложения до вызова add(), update() или delete().
Чем свойство инфоблока типа «справочник» на Highload-блоке отличается от привязки к элементу, если оба хранят ссылку?
Справочник хранит строку UF_XML_ID записи, а не числовой ID, поэтому переживает перенос между базами и допускает импорт по стабильному коду. Привязка к элементу хранит ID и ломается при переносе с другими ID.
Добавили UF-поле через CUserTypeEntity в том же скрипте, а запрос по нему падает. Что сломалось?
ORM-карта уже скомпилирована в этом хите. Нужен новый запрос либо повторная компиляция compileEntity($hlblock, true) с проверкой hasField(); имя класса и таблицы при этом всё равно не меняются до следующего хита.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить