🧱 Суть

В основе инфоблоков лежат три основных понятия:

  • элементы – конкретные записи с данными;
  • разделы – структура для группировки элементов;
  • свойства – дополнительные поля элементов.

Вместе они позволяют описывать практически любую контентную сущность:

Инфоблок "Каталог товаров"

Разделы:
├── Смартфоны
├── Ноутбуки

Элементы:
├── iPhone 15
├── MacBook Air

Свойства:
├── Цена
├── Цвет
├── Производитель

📦 Проблема

При разработке сайта необходимо хранить разные типы данных:

  • товары с характеристиками;
  • новости с категориями;
  • статьи с авторами;
  • проекты с изображениями.

Если для каждой сущности создавать отдельную структуру вручную, потребуется:

  • проектировать таблицы;
  • писать административные формы;
  • делать обработку данных.

✅ Решение

Битрикс предоставляет готовую структуру инфоблоков:

  • элементы хранят данные;
  • разделы организуют структуру;
  • свойства расширяют стандартные поля.

Разработчик получает готовый механизм хранения и управления через административную часть.

💻 Код

Элементы инфоблоков

Что такое элемент

Элемент инфоблока – это отдельная запись внутри инфоблока.

Например:

Инфоблок:

Новости

Элементы:

- Открытие нового офиса
- Выход новой версии продукта
- Итоги конференции

Или:

Инфоблок:

Каталог товаров

Элементы:

- iPhone 15
- MacBook Pro
- Samsung Galaxy

Стандартные поля элемента

Каждый элемент имеет встроенные поля:

ПолеНазначение
IDидентификатор элемента
NAMEназвание
CODEсимвольный код
ACTIVEактивность элемента
DATE_CREATEдата создания
PREVIEW_TEXTкраткое описание
DETAIL_TEXTдетальное описание
PREVIEW_PICTUREкартинка анонса
DETAIL_PICTUREдетальная картинка
Например:
$arItem["NAME"];

получает название элемента.

Получение элементов

Чаще всего элементы получают через компоненты:

$APPLICATION->IncludeComponent(
    "bitrix:news.list",
    "",
    [
        "IBLOCK_ID" => 5
    ]
);

Компонент получает данные и передаёт их в:

$arResult

Разделы инфоблока

Что такое раздел

Раздел – это группа элементов внутри инфоблока.
Используется для создания иерархии.

Например:

Каталог товаров

├── Смартфоны
│   ├── Apple
│   └── Samsung
│
├── Ноутбуки
│   ├── Lenovo
│   └── Asus

Зачем нужны разделы

Разделы позволяют:

  • организовать контент;
  • создавать категории;
  • строить меню;
  • фильтровать элементы;
  • формировать URL.

Свойства разделов

Разделы также могут иметь свои свойства.

Например:

Раздел:
Смартфоны

Свойства:
- Баннер категории
- SEO-текст
- Иконка

Это удобно для каталогов.

Свойства инфоблока

Что такое свойство

Свойство – это дополнительное поле элемента.
Стандартных полей часто недостаточно, поэтому разработчик добавляет свои.

Например:

Товар:

Название:
iPhone 15

Свойства:

Цвет:
Чёрный

Память:
256 GB

Производитель:
Apple

Типы свойств

Строка. Для обычного текста:

Артикул:
ABC-123

Число. Для числовых значений:

Вес:
250

Список. Для выбора из вариантов:

Цвет:

○ Чёрный
○ Белый
○ Серый

Файл. Для документов и изображений:

Инструкция.pdf

Привязка к элементу

Связь одного элемента с другим:

Товар

Производитель:
→ Apple

Например:

Товар → Бренд

Привязка к разделу

Связь с категорией:

Товар

Категория:
→ Смартфоны

Как получить свойства элемента

Свойства обычно находятся внутри:

$arResult["ITEMS"][0]["PROPERTIES"]

Например:

$arItem["PROPERTIES"]["COLOR"]["VALUE"];

Получение:

Черный

Пример структуры товара

Инфоблок:

Каталог товаров

Разделы:

├── Телефоны
├── Ноутбуки

Элемент:

iPhone 15

Стандартные поля:

NAME:
iPhone 15

DETAIL_TEXT:
Описание товара

Свойства:

COLOR:
Black

MEMORY:
256 GB

PRICE:
999

Частые ошибки

Хранить всё в свойствах

Плохо:

Свойства:
- название
- описание
- дата создания
- активность

Эти данные уже существуют как стандартные поля элемента.

Делать слишком много разделов

Плохо:

Каталог

├── Apple
│   └── iPhone
│       └── 15

Если такая структура не нужна для бизнеса, она только усложняет работу.

Использовать свойства вместо связей

Плохо:

Производитель:
"Apple"

Лучше:

Производитель:
→ элемент инфоблока "Бренды"

Так можно хранить дополнительные данные о производителе.

Хранить сложную бизнес-логику в свойствах

Инфоблоки хорошо подходят для контента, но не всегда подходят для сложных процессов.

Для сложной логики лучше использовать:

  • ORM D7;
  • собственные таблицы;
  • сервисные классы.

🎯 Вывод

  • Элемент – конкретная запись в инфоблоке
  • Раздел – группа элементов и структура каталога
  • Свойство – дополнительное поле элемента
  • Стандартные поля уже встроены в Битрикс
  • Свойства расширяют структуру данных
  • Разделы помогают организовать и фильтровать контент
  • Грамотная структура инфоблока сильно влияет на удобство поддержки проекта

🔗 Связано