Битрикс24
Для новых клиентов -30%
На все годовые тарифы облачной версии Битрикс24 до 31 июля 2026 года!
Назад

Как упростить работу с инфоблоками в Битрикс: от хаоса к порядку

Как упростить работу с инфоблоками в Битрикс: от хаоса к порядку
Как упростить работу с инфоблоками в Битрикс: от хаоса к порядку

Инфоблоки — основа большинства сайтов на 1С-Битрикс. Здесь хранятся новости, услуги, статьи, акции, вакансии и справочники. Но чем сложнее проект, тем больше свойств, разделов и связей появляется в инфоблоках. Админка обрастает десятками полей, разработка замедляется, редакторы путаются в настройках.

В этой статье разберем главную проблему инфоблоков — множественные однотипные данные — и покажем решение без лишнего кода.

Проблема: когда одно свойство — не одно свойство

Стандартные свойства инфоблока работают по простому принципу: одно поле — одно значение. Для большинства задач этого достаточно. Но что делать, когда у одного элемента десятки связанных данных?

Типичный пример: этапы работы над заказом

На странице услуги «Ремонт квартир» нужно вывести пошаговый процесс:

  1. Заявка — консультация — выезд замерщика — смета — подписание договора — закупка материалов — черновые работы — чистовая отделка — сдача объекта.

У каждого этапа — название, описание, срок выполнения, иконка, ответственный.

Количество этапов фиксированное — 9. Но здесь есть нюанс: этапы уникальны для каждой услуги.

У услуги «Ремонт квартир» — одни этапы. У услуги «Дизайн-проект» — совсем другие. У услуги «Бюджетный ремонт» — этапов меньше, и они другие.

Создавать отдельный инфоблок «Этапы» и привязывать его к услуге? Можно. Но:

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

  • Для каждой услуги — свой набор этапов. Их нельзя переиспользовать.

  • Нужно сортировать этапы в определенном порядке. В стандартной привязке сортировка хранится отдельно.

  • Если этапов 10 и у каждой услуги они свои — получается сотни элементов в инфоблоке «Этапы», большинство из которых используются ровно один раз.

Другой пример: пакеты услуг

Услуга «Ремонт квартир» имеет пакеты:


Пакет Цена Срок Включено
Эконом 10 000 ₽/м² 30 дней Черновая отделка, электрика, сантехника
Стандарт 15 000 ₽/м² 45 дней + Дизайн-проект, выравнивание стен
Комфорт 22 000 ₽/м² 60 дней + Звукоизоляция, теплый пол, натяжные потолки
VIP 35 000 ₽/м² 75 дней + Авторский надзор, премиум-материалы

Пакетов всегда ровно 4. У каждого пакета — цена, срок, список работ. Это идеальный случай для множественных данных: структура известна, количество записей фиксировано, но каждая запись содержит 3–4 поля.

Создавать отдельный инфоблок «Пакеты»? Это избыточно: пакеты существуют только в контексте конкретной услуги, их нельзя переиспользовать, и их всегда ровно 4.

Альтернатива — создать 4 набора свойств:

ПАКЕТ_1_ЦЕНА, ПАКЕТ_1_СРОК, ПАКЕТ_1_СПИСОК

ПАКЕТ_2_ЦЕНА, ПАКЕТ_2_СРОК, ПАКЕТ_2_СПИСОК

ПАКЕТ_3_ЦЕНА, ПАКЕТ_3_СРОК, ПАКЕТ_3_СПИСОК

ПАКЕТ_4_ЦЕНА, ПАКЕТ_4_СРОК, ПАКЕТ_4_СПИСОК

Итого: 12 свойств вместо одного. А если появится пятый пакет? Придется создавать еще 3 свойства.

Корень проблемы: множественные однотипные данные

Проблема множественных данных возникает не тогда, когда данные можно вынести в отдельный инфоблок. А тогда, когда:

  1. Данные существуют только в контексте родительского элемента и не переиспользуются (пакеты услуг, этапы работы).

  2. Количество записей фиксировано или меняется редко, но каждая запись содержит несколько полей (пакеты, характеристики).

  3. Вынесение в отдельный инфоблок создает избыточную сложность — редактору нужно работать в двух местах, а разработчику — писать лишний код для выборки и сортировки.

Комбинированное множественное свойство решает эти случаи элегантно: одна структура, одно поле, удобный интерфейс, минимум кода.

Какие есть способы решения?

Способ 1: Отдельный инфоблок и привязка

Создаем отдельный инфоблок, например, «Занятия». В элементе «Фитнес-клуб» добавляем множественную привязку к занятиям.

Плюсы:

  • Чистая структура.

  • Данными можно управлять централизованно.

Минусы:

  • Редактору нужно переключаться между инфоблоками.

  • Нельзя добавить занятие прямо на странице «Фитнес-клуб».

  • Теряется контекст: редактор видит список занятий без связи с конкретным клубом.

  • Сложно выводить данные, если нужны поля, зависящие от контекста.

Способ 2: Множественные свойства

Создаем свойство типа «Строка» с множественным значением для названий занятий. Отдельно — множественное свойство для времени, отдельно — для инструкторов.

Плюсы:

  • Просто технически.

Минусы:

  • Данные не группируются: непонятно, какой инструктор к какому занятию относится.

  • Нельзя добавить к каждому занятию уникальные поля.

Способ 3: Десятки отдельных свойств

Создаем свойства для каждого занятия по отдельности.

Плюсы:

  • Все данные структурированы.

Минусы:

  • Админка превращается в простыню.

  • Нельзя динамически добавлять новые занятия.

  • Сложная выборка и вывод на сайте.

Оптимальное решение: комбинированные множественные свойства

Стандартный Битрикс не умеет группировать множественные данные в одном поле. Чтобы решить эту задачу, мы разработали модуль «Универсальное комбинированное свойство» для 1С-Битрикс.

Модуль добавляет новый тип свойства, который объединяет возможности множественности и составной структуры. Внутри одного поля создается структура из подполей любого типа, а множественность позволяет добавлять неограниченное количество записей.

Как это выглядит на практике

Пример 1. Пакеты услуг

У услуги «Ремонт квартир» есть четыре пакета: «Эконом», «Стандарт», «Комфорт», «VIP». У каждого пакета — цена, срок выполнения и список работ. Количество пакетов фиксированное, но набор полей у каждого одинаковый.

В одном свойстве «Пакеты» настраиваются подполя:

  • Название пакета (строка)

  • Цена (число)

  • Срок выполнения (число)

  • Список работ (текст)

Редактор видит это как таблицу из четырех строк. В каждой строке — свой пакет со всеми полями. Одно свойство вместо 12 отдельных полей.

Добавился новый пакет «Премиум»? Редактор просто добавляет строку. Не нужно создавать новые свойства в инфоблоке.

Пример 2. Этапы работы

У каждой услуги свой набор этапов. У «Ремонта квартир» — 9 этапов, у «Дизайн-проекта» — 5, у «Бюджетного ремонта» — 6. У каждого этапа — название, описание, иконка, срок.

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

В одном свойстве «Этапы работы» настраиваются подполя:

  • Название этапа (строка)

  • Описание (текст)

  • Иконка (файл)

  • Срок выполнения (число)

Редактор видит список этапов. У каждой услуги — свой список, своя последовательность. Менять порядок можно перетаскиванием строк. Одно свойство вместо 4×9 = 36 полей.

А если у услуги «Дизайн-проект» этапов не 9, а 5 — редактор просто не добавляет лишние строки. Инфоблок при этом общий, свойства не дублируются.


Общий принцип. В одном свойстве вы настраиваете структуру из подполей. Редактор видит это как таблицу или список. Добавляет столько записей, сколько нужно. Все данные хранятся в формате JSON.

Что дает модуль

  • Одно свойство вместо десятков. Вместо 36 полей для этапов работы — одно поле. Вместо 12 полей для пакетов — одно поле.

  • Редактору не нужно переключаться. Все данные редактируются прямо на странице элемента. Добавление и удаление записей — как строки в таблице.

  • Гибкость. Количество записей не ограничено. Добавился новый пакет или этап? Редактор просто добавляет строку. Меняются этапы для конкретной услуги? Редактор редактирует только её строки.

  • Производительность. Одно свойство вместо десятков. Меньше запросов к базе — быстрее работает сайт.

  • Готовый вывод на сайте. Модуль отдает данные в структурированном виде — вы проходите по массиву записей в цикле.

Доступные типы подполей

Для элементов инфоблока доступны 10 типов подполей:




Тип Назначение
Строка Короткий текст
Число Числовые значения
Текст Многострочный текст
Файл Загрузка файла или изображения
Дата Дата с календарем
Привязка к элементу Связь с элементом другого инфоблока
Привязка к разделу Связь с разделом инфоблока
Список Выпадающий список с настраиваемыми вариантами
Цвет Выбор цвета
Яндекс.Карта Координаты и адрес на карте

Внутри одного свойства можно хранить текст, числа, файлы, даты, ссылки на другие элементы, цвета и географические координаты.

Работа с разделами инфоблока

Проблема множественных данных касается не только элементов, но и разделов. Стандартно у разделов инфоблока есть только базовые поля: название, код, описание, картинка. Но часто нужно хранить дополнительную информацию.

Модуль поддерживает создание комбинированных полей для разделов через стандартный механизм пользовательских полей (UF). В интерфейсе появляется новый тип UF — «Комбинированное свойство (для разделов)».

Для разделов доступны 8 типов подполей (все, кроме файла и Яндекс.Карты): строка, число, текст, дата, привязка к элементу, привязка к разделу, список, цвет.

Пример: каталог услуг с разделами. Для каждого раздела нужно добавить контакты менеджера, баннер, дополнительный текст. Вместо нескольких UF-полей — одно комбинированное.

Другие способы упростить инфоблоки

1. Инфоблоки 2.0

Технология позволяет хранить все значения свойств одного элемента в одной строке таблицы. Это ускоряет выборку и уменьшает количество запросов к базе.

Включение: в настройках инфоблока на вкладке «Дополнительно» установите флажок «Инфоблоки 2.0» (в новых версиях включено по умолчанию).

2. Правильная настройка привязок

Свойства-привязки — мощный инструмент, но они создают нагрузку. Если требуется просто сослаться на другой элемент, храните его символьный код в строковом свойстве. Это быстрее и проще, особенно при больших объемах данных.

3. Оптимальное количество инфоблоков

Если элементы имеют одинаковый набор свойств — храните их в одном инфоблоке. Разделяйте только тогда, когда наборы полей принципиально разные или количество записей превышает десятки тысяч.

4. Настройка прав доступа

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

Резюме

Главная боль при работе с инфоблоками — множественные однотипные данные. Стандартные свойства не умеют их группировать, что приводит к созданию десятков полей, путанице в админке и снижению производительности.

Модуль «Универсальное комбинированное свойство» для 1С-Битрикс решает эту проблему. Он добавляет тип свойства, которого нет в стандартной поставке:

  • Одно свойство вместо десятков. Чистая структура инфоблока и админки.

  • Удобный интерфейс для редакторов. Все данные на одной странице, добавление и удаление записей — как строки в таблице.

  • Гибкость. Количество записей не ограничено, структуру можно менять без пересоздания свойств.

  • Производительность. Меньше свойств — меньше запросов к базе.

  • Поддержка всех нужных типов данных: строка, число, текст, файл, дата, привязки, список, цвет, Яндекс.Карта.

  • Работа как с элементами, так и с разделами инфоблока.

Где применяется:

  • Пакеты услуг и тарифы

  • Этапы работ

  • Часто задаваемые вопросы (FAQ)

  • Документы для скачивания

  • Акции и спецпредложения

  • Филиалы и контакты

Установите модуль через Маркетплейс, создайте свойство типа «Универсальное комбинированное свойство», настройте структуру подполей — и ваш инфоблок станет чище, а работа с контентом — быстрее и удобнее.

Получите план улучшений для вашего сайта — бесплатно
Оставьте заявку и получите аудит сайта по ключевым параметрам, включая скорость, безопасность и SEO-ошибки, которые мешают сайту привлекать клиентов.
Заказать аудит
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи
Содержание