Работа с Highload-блоками в 1С‑Битрикс

Работа с Highload-блоками в 1С‑Битрикс
18 октября 2025
2 мин.
326
18 октября 2025

Highload-блоки — это инструмент, который позволяет хранить и обрабатывать большие объёмы данных без использования инфоблоков. Они оптимизированы для высокой производительности, гибкости и интеграции с ORM‑системой D7. В этой статье мы подробно разберём, как создавать, настраивать и использовать highload-блоки на практике: от интерфейса админки до программной работы с ними в коде.

Что такое Highload-блоки

Highload-блок — представляет собой таблицу в базе данных с собственной ORM‑моделью. Они используются для хранения структурированных данных, которые не требуют типовых возможностей инфоблоков (свойств, версий, событий), но при этом должны быстро обрабатываться и масштабироваться.

Примеры, когда удобно использовать highload-блоки:

  • Каталоги справочников (цвета, бренды, города, курьеры).
  • История действий пользователя (логирование, просмотры, заказы).
  • Хранилище отзывов, комментариев или лайков.
  • Сложные связки между сущностями (user → preferences, order → delivery_steps).

Создание Highload-блока через административную панель

Создать highload-блок можно без кода, через интерфейс админки. Это удобно для начальной настройки и тестовых данных.

Шаг 1. Переходим в раздел

Административная панель → Настройки → Highload-блоки → Добавить Highload-блок.

Шаг 2. Заполняем основные параметры

  • Название: Человекопонятное имя (например, «Цвета»).
  • Таблица базы данных: Указывается латиницей, например, colors (в БД создастся таблица b_hlbd_colors).

Шаг 3. Добавляем пользовательские поля

После создания блока переходим в «Поля» и добавляем нужные колонки. Например:

  • UF_NAME — строка (название цвета)
  • UF_CODE — символьный код (например, red, blue)
  • UF_HEX — строка (HEX-код цвета, например #FF0000)

Шаг 4. Настраиваем доступ

Далее настраиваем права доступа - кто может читать, добавлять, редактировать или удалять записи. Это особенно важно, если highload-блок будет использоваться через публичные формы.

Работа с Highload-блоками через код (D7 ORM)

После создания блока мы можем обращаться к нему через ORM‑модель. Для этого нужно получить класс‑обёртку, который описывает структуру таблицы.

Подключение модуля highloadblock

use Bitrix\Main\Loader;
use Bitrix\Highloadblock as HL;
use Bitrix\Main\Entity;


Loader::includeModule('highloadblock');

Получение ORM‑класса для блока

Чтобы работать с данными, нужно получить ORM‑класс для конкретного highload‑блока. Для этого используется метод HL\HighloadBlockTable::compileEntity().

$hlblock = HL\HighloadBlockTable::getById(1)->fetch();
$entity = HL\HighloadBlockTable::compileEntity($hlblock);
$entityClass = $entity->getDataClass();

Теперь в $entityClass хранится имя ORM‑класса, через который можно выполнять все CRUD‑операции (create, read, update, delete).

Создание записи

$result = $entityClass::add([
'UF_NAME' => 'Красный',
'UF_CODE' => 'red',
'UF_HEX' => '#FF0000'
]);


if ($result->isSuccess()) {
echo 'Добавлено с ID ' . $result->getId();
} else {
echo 'Ошибка: ' . implode(', ', $result->getErrorMessages());
}

Чтение данных

$result = $entityClass::getList([
'select' => ['*'],
'filter' => ['UF_CODE' => 'red']
]);


while ($row = $result->fetch()) {
echo $row['UF_NAME'];
}

Обновление записи

$entityClass::update(1, [
'UF_HEX' => '#DD0000'
]);

Если вы хотите масштабировать проект на 1С‑Битрикс, без highload‑блоков не обойтись: они дают идеальный баланс между скоростью, гибкостью и управляемостью данных.