Инфоблок хранит данные в виде дерева разделов и привязанных к ним элементов. Разберём, как создавать вложенные разделы, перемещать их и правильно привязывать элементы, чтобы каталог оставался управляемым.
Что такое дерево разделов и элементов
Информационный блок в 1С-Битрикс может быть плоским (только элементы) или древовидным. Древовидность включается настройкой инфоблока и даёт двухуровневую логику хранения данных:
- Раздел (секция) — узел дерева. Разделы вкладываются друг в друга и образуют иерархию, аналогичную папкам файловой системы.
- Элемент — конечная запись (товар, новость, статья). Элемент привязывается к разделу, но может лежать и в корне инфоблока.
В таблицах базы данных разделы хранятся в b_iblock_section, элементы — в b_iblock_element, а связь элемента с разделами (при множественной привязке) — в b_iblock_section_element.
Как включить древовидность инфоблока
Возможность создавать разделы задаётся при создании или редактировании инфоблока. Без неё вы сможете добавлять только элементы.
- Откройте Контент → Инфоблоки → Типы инфоблоков и выберите нужный тип.
- Зайдите в настройки инфоблока (значок редактирования) и перейдите на вкладку «Поля» или «Подписи».
- Убедитесь, что заданы подписи для разделов (например, «Разделы» и «Раздел»). Если инфоблок используется как плоский справочник, разделы можно не заводить.
- Сохраните инфоблок.
После этого в списке инфоблока станет доступна кнопка «Добавить раздел» наряду с «Добавить элемент».
Создание разделов и вложенность
Разделы создаются прямо в интерфейсе инфоблока. Чтобы получить подраздел, нужно указать родительский раздел.
- В списке инфоблока нажмите «Добавить раздел».
- Заполните Название и при необходимости Символьный код (используется для ЧПУ-адресов).
- В поле «Родительский раздел» выберите узел, внутри которого создаётся текущий. Для раздела верхнего уровня оставьте «Верхний уровень».
- Задайте Сортировку — чем меньше число, тем выше раздел в списке.
- Сохраните.
Глубина вложенности практически не ограничена, но для производительности и удобства навигации разумно держать дерево в пределах 3–4 уровней. Уровень вложенности хранится в поле DEPTH_LEVEL, а границы поддерева — в полях LEFT_MARGIN и RIGHT_MARGIN (модель вложенных множеств).
Привязка элементов к разделам
Элемент связывается с деревом через поле «Разделы» в форме редактирования. По умолчанию элемент можно положить в один раздел, но инфоблок можно настроить на множественную привязку.
- Откройте элемент на редактирование (или создайте новый через «Добавить элемент»).
- В блоке «Разделы» отметьте один или несколько разделов, к которым он относится.
- Сохраните элемент — он появится в выбранных разделах.
Режим привязки задаётся в настройках инфоблока на вкладке «Поля»: параметр отвечает за то, можно ли выбрать несколько разделов сразу. Один из выбранных разделов считается основным — он используется для формирования ЧПУ и хлебных крошек.
Перемещение, копирование и массовые операции
Дерево редактируется без пересоздания элементов. Массовые действия доступны через выделение строк и панель действий внизу списка.
- Перенос элементов — отметьте элементы галочками, в списке действий выберите нужную операцию и подтвердите. Также можно менять раздел прямо в форме элемента.
- Перемещение раздела — откройте раздел и смените «Родительский раздел». Все вложенные подразделы и элементы переедут вместе с ним, границы поддерева пересчитаются автоматически.
- Сортировка — используйте поле «Сортировка» или перетаскивание, если оно включено в настройках представления списка.
Навигация по дереву в списке: слева выберите раздел, чтобы справа отобразились только его элементы. Кнопка перехода на уровень вверх и «хлебные крошки» помогают ориентироваться в глубоких структурах.
Частые ошибки
Типичные проблемы при работе с деревом инфоблока и их причины:
| Симптом | Причина и решение |
|---|---|
| Нет кнопки «Добавить раздел» | Инфоблок не поддерживает разделы или у пользователя нет прав. Проверьте настройки инфоблока и права доступа. |
| Элемент не виден в разделе | Элемент привязан к другому разделу или неактивен. Проверьте поле «Разделы» и флаг активности. |
| Дублируется путь в ЧПУ | Совпадают символьные коды разделов на одном уровне. Задайте уникальные CODE. |
| Раздел «потерял» вложенные элементы после переноса | Сбились границы поддерева. Выполните пересчёт: настройки инфоблока → действие проверки/восстановления дерева. |
| Каталог тормозит на глубоком дереве | Слишком большая вложенность и отсутствие кэширования выборок. Упростите структуру и включите кэш компонентов. |
Отдельно следите за символьными кодами: пустой или неуникальный код ломает построение адресов и хлебных крошек.
Итог
Дерево инфоблока — это иерархия разделов с привязанными элементами. Ключевые правила работы:
- Включайте древовидность осознанно: плоскому справочнику разделы не нужны.
- Держите вложенность в разумных пределах (3–4 уровня) — это упрощает навигацию и ускоряет выборки.
- Задавайте уникальные символьные коды разделам и элементам для корректных ЧПУ.
- Используйте множественную привязку, если элемент должен присутствовать в нескольких разделах.
- После крупных перемещений проверяйте целостность дерева и обновляйте кэш.
При соблюдении этих принципов структура каталога остаётся управляемой даже на десятках тысяч элементов.