Что такое highload блоки в 1С-Битрикс и когда они нужны?

Что такое highload блоки в 1С-Битрикс и когда они нужны?

Каталог тормозит, в поиске "highload блок" смешивают облачную CRM и CMS, а в legacy-гайдах копируют полный CRUD вместо карты темы. Highload-блоки (HL) в "1С-Битрикс: Управление сайтом" - это плоские справочники в отдельных таблицах MySQL, не замена всего каталога. Ниже - что такое HL, когда выбрать его вместо инфоблока, как вывести записи стандартными компонентами и куда идти за пошаговой админкой или D7-кодом.

Highload-блоки (HL) в 1С-Битрикс: Управление сайтом - модуль для плоских справочников и больших таблиц данных. Каждый HL хранит записи в собственной таблице MySQL с собственными индексами, без иерархии инфоблока. Доступ - через D7 ORM (HighloadBlockTable::compileEntity, затем getDataClass) и компоненты bitrix:highloadblock.list / .view. Сегодня: сравните HL с инфоблоком по таблице ниже, выберите сценарий под задачу и откройте нужный гайд - создание в админке или CRUD в коде.

Речь только о коробочной CMS на вашем сервере. Bitrix24 - CRM и задачи, другой продукт; highload.ru и nginx highload к модулю highloadblock не относятся. Материал актуален на 2026-07-26 по документации dev.1c-bitrix.ru.

Это hub-статья: определение, сравнение, маршрут. Пошаговое создание полей UF_* и полный add/update/delete через ORM вынесены в отдельные материалы, чтобы не дублировать B26 и B78.

Что такое Highload-блок в 1С-Битрикс: Управление сайтом

Схема Highload-блока: отдельная таблица MySQL с полями UF без иерархии инфоблока

Highload-блок (HL) - быстрый плоский справочник без разделов и SEO-полей элемента. Каждый блок получает свою таблицу в базе (префикс b_hlbd_ или заданный TABLE_NAME) и набор пользовательских полей UF_* - как колонки таблицы. D7 ORM - слой PHP-классов для чтения и записи в MySQL без ручного SQL в типовых задачах.

Когда HL уместен: бренды, цвета и размеры для торговых предложений, коды складов, логи событий, таблицы соответствий на десятки тысяч строк. Когда не нужен: новости, статьи, товары с карточкой и иерархией разделов - для этого инфоблок. HL не заменяет весь каталог, а разгружает "тяжёлые" справочники.

Сравните Highload-блок и инфоблок по задаче

Сравнение Highload-блока и инфоблока: иерархия, таблица, объём данных, компоненты вывода

Оба хранят структурированные данные, но архитектура разная. Инфоблок тянет разделы, свойства, детальные URL и шаблоны. HL - одна таблица, одна форма в админке, минимум накладных расходов на выборку.

Критерий Инфоблок Highload-блок
Иерархия Разделы и вложенность Плоский список без разделов
Таблица в БД Общие таблицы ядра + свойства Отдельная таблица на каждый HL
Свойства Много типов, привязки, SEO Поля UF_* (строка, число, файл, справочник)
Типичный объём До нескольких тысяч с комфортом Десятки и сотни тысяч строк
Вывод на сайт news.list, catalog.section и др. bitrix:highloadblock.list / .view
Код CIBlockElement, D7 ElementTable HighloadBlockTable::compileEntity, getDataClass

Сделайте: вынесите в HL фильтруемые справочники от 5-10 тысяч значений и любые плоские логи. Не делайте: не копируйте карточки товаров в HL "ради скорости" - потеряете разделы, ЧПУ и привычную админку каталога.

Выберите сценарии, когда нужен Highload-блок

Чеклист из пяти сценариев использования Highload-блоков в 1С-Битрикс

По официальному описанию модуля HL заточен под произвольные наборы данных под нагрузкой. На практике чаще всего встречаются пять сценариев.

  1. Справочник брендов или цветов для каталога: в свойстве товара хранится UF_XML_ID из HL, а не тысячи значений в списке инфоблока.
  2. Свойства торговых предложений (размер, оттенок): HL как источник значений для SKU без раздувания умного фильтра.
  3. Логи и история (события, статусы заказов, аудит): пишете часто, на сайте почти не показываете.
  4. Большие плоские таблицы (гео, склады, коды поставщиков) свыше 50 000 строк - отдельная таблица и индексы на поля фильтра.
  5. Связь с пользователями через UF-тип "привязка к пользователю" - когда в справочнике нужен ID менеджера или автора записи.

HL сам по себе не ускоряет сайт: сначала найдите узкое место - свойства IB, индексы MySQL или компонент. Иногда хватает кэша без нового блока.

Сделайте: критерий "плоский справочник + большой объём". Не делайте: HL на каждую мелочь.

Выведите highload блок на сайт стандартными компонентами

Для публичной части в курсе "1С-Битрикс: Управление сайтом" (COURSE_ID=41) описаны два штатных компонента. Их хватает контент-менеджеру без кастомного PHP на первом этапе.

Схема вывода:
Страница списка (bitrix:highloadblock.list, BLOCK_ID) → ссылка на деталь → bitrix:highloadblock.view (тот же BLOCK_ID, ELEMENT_ID в URL)

bitrix:highloadblock.list - таблица или список записей. Ключевые параметры: BLOCK_ID (числовой ID из админки), DETAIL_URL (шаблон ссылки на деталь, например /spravochnik/#ELEMENT_ID#/), ROWS_PER_PAGE (пагинация), FILTER_NAME (имя массива $GLOBALS для фильтра). Подробности - в справке по компоненту.

bitrix:highloadblock.view - одна запись по ID из URL. Тот же BLOCK_ID, поля UF_* доступны в шаблоне как arResult. Для чистого справочника без "страницы бренда" деталька часто не нужна - достаточно list в админском режиме или своего шаблона.

Работа с хайлоад блоками битрикс на публичке не требует compileEntity: компоненты сами подключают модуль highloadblock. В коде шаблона проверьте, что модуль установлен и BLOCK_ID совпадает с созданным блоком.

Делайте: вынесите BLOCK_ID в constants.php проекта. Не делайте: не копируйте BLOCK_ID=1 с чужого туториала - на проде ID другой.

Разберите цепочку D7: от HighloadBlockTable до getDataClass

Когда компонентов мало и нужна гибкая выборка, подключают модуль и ORM. Минимальная цепочка без полного CRUD:

  1. Loader::includeModule('highloadblock') - модуль должен быть установлен; иначе классы недоступны.
  2. HighloadBlockTable::getById($hlId) - метаданные блока (NAME, TABLE_NAME), не сами записи справочника.
  3. HighloadBlockTable::compileEntity($hlblock) - ядро собирает DataManager для таблицы HL и подтягивает UF_-поля.
  4. $entity->getDataClass() - имя класса, у которого вызывают getList, add, update, delete для строк справочника.
  5. $dataClass::getList([...]) - выборка с filter, select, order как у обычного D7 ORM.
<?php
use Bitrix\Main\Loader;
use Bitrix\Highloadblock\HighloadBlockTable;

Loader::includeModule('highloadblock');
$hlblock = HighloadBlockTable::getById(MY_HL_ID)->fetch();
if (!$hlblock) { return; }

$entity = HighloadBlockTable::compileEntity($hlblock);
$dataClass = $entity->getDataClass();
$rows = $dataClass::getList([
 'select' => ['ID', 'UF_NAME'],
 'filter' => ['=UF_ACTIVE' => 1],
 'limit' => 20,
])->fetchAll();

Типичная ошибка: вызывать add() на HighloadBlockTable - этот класс описывает блоки в b_highloadblock, а не строки в b_hlbd_*. Записи справочника пишут через getDataClass().

Не вызывайте API highloadblock до обработчика пользовательских свойств: compileEntity() тянет UF_-типы, на раннем init с кастомными UserType возможны сбои.

Полный разбор add/update/delete, кэша entity и ошибок UF_ - в гайде по работе с highload блоками битрикс D7. Здесь только карта, без дубля CRUD-справочника.

Делайте: кэшируйте $dataClass в static или Bitrix\Main\Data\Cache на боевом сайте. Не делайте: не вызывайте compileEntity на каждый HTTP-запрос без необходимости.

Перейдите к практическим гайдам по кластеру highload

Hub заканчивается на маршруте. Два следующих шага закрывают 90% реальных задач.

Создание в админке. Название сущности, TABLE_NAME, поля UF_*, права, импорт CSV - пошагово в материале как создать highload-блок на Битрикс. Там же чек-лист "когда HL вместо инфоблока" с привязкой к каталогу.

CRUD в коде. compileEntity, getList с фильтрами, add/update/delete, инвалидация кэша и типовые ошибки Invalid highloadblock description - в руководстве по D7 ORM для Highload-блоков. Читайте после того, как блок уже создан и ID известен.

Если каталог тормозит после HL, проверьте умный фильтр и индексы на UF_. Аудит справочников - напишите нам.

Автор: Максим Мольков, разработчик 1С-Битрикс.
Источники: api_help Highload-блоки, D7 HighloadBlockTable, курсы COURSE_ID=41 и 43 на dev.1c-bitrix.ru.

Частые вопросы

Highload блоки битрикс - что это?

Это модуль CMS "1С-Битрикс: Управление сайтом" для плоских справочников: каждый блок - своя таблица MySQL с полями UF_* и доступом через D7 ORM. Не путайте с облачной CRM и не с конференцией highload.ru.

Чем Highload-блок отличается от инфоблока?

Инфоблок даёт разделы, SEO и карточки контента. HL - плоская таблица без иерархии, быстрее на больших объёмах. Каталог товаров остаётся инфоблоком; в HL выносят бренды, цвета, логи.

Как вывести highload блок на страницу сайта?

Поставьте компонент bitrix:highloadblock.list с параметром BLOCK_ID на страницу списка. Для детальной записи - bitrix:highloadblock.view с тем же BLOCK_ID и шаблоном DETAIL_URL. Код PHP не обязателен на первом шаге.

Когда Highload-блок нужен для каталога?

Когда справочник значений свойства или ТП разросся до тысяч строк и тормозит умный фильтр. Цвета, размеры, бренды хранят в HL, в товаре - ссылка на UF_XML_ID. Весь каталог в HL не переносят.

Что такое HighloadBlockTable и compileEntity?

HighloadBlockTable - D7-класс метаданных модулей HL (таблица b_highloadblock). Метод compileEntity() по строке блока строит entity и возвращает getDataClass() для CRUD записей справочника. add() на HighloadBlockTable создаёт новый блок, а не строку данных.

Читайте также

Интеграции с 1С и API
1137 6 мин.

Как настроить регистрацию и личный кабинет покупателя на 1С-Битрикс?

Пошаговая настройка регистрации на сайте битрикс: Главный модуль, main.register, system.auth.form и sale.personal.section с историей заказов и 152-ФЗ.
Интеграции с 1С и API
1053 6 мин.

Как настроить скидки и промокоды на 1С-Битрикс: правила корзины и купоны

Пошаговый гайд по скидкам в CMS-магазине: скидка на товар, правило корзины от суммы, купоны с лимитом, приоритеты без конфликтов и тестовый заказ. Не Bitrix24.
Интеграции с 1С и API
881 15 мин.

Что такое компонент в Битриксе и как он работает

Каждый разработчик, впервые столкнувшийся с Битриксом, проходит через своеобразный обряд посвящения. Вначале кажется, что это просто CMS, где можно поправить HTML в визуальном редакторе или дописать пару строк CSS. Но однажды наступает момент, когда нужно изменить логику вывода новостей, отфильтровать товары по хитрому свойству или добавить на страницу нечто совершенно новое. И тут он впервые слышит это слово — «компонент». Для многих этот момент становится стеной. Система, казавшаяся понятной, вдруг превращается в черный ящик, полный непонятных файлов и странных переменных. Но стоит лишь раз заглянуть под капот, как эта стена рассыпается, превращаясь в набор удивительно логичных и мощных строительных блоков. Понимание компонентов — это тот самый щелчок, после которого разработка на Битрикс из мучения превращается в творчество.

Эта статья — ваш проводник в мир компонентов «1С-Битрикс». Мы не будем сыпать сухими терминами из документации. Вместо этого мы совершим путешествие: от философии, заложенной в эту архитектуру, до мельчайших деталей её работы. Мы разберем компонент на атомы — его файлы, логику, шаблон, параметры — и соберем обратно, чтобы вы не просто знали, что это, но и глубоко понимали, почему это работает именно так. Это знание — ключ к эффективной и профессиональной разработке на Битрикс.

Интеграции с 1С и API
795 2 мин.

Установка Composer в 1С-Битрикс

Установка Composer в проекте на 1С-Битрикс требует учета особенностей платформы, чтобы обеспечить корректную работу и интеграцию с системой.