Свойства типа «Список» и «Справочник» позволяют выбирать значение из заранее заданного набора вместо ручного ввода. Внешне они похожи, но хранятся и настраиваются по-разному — от этого зависит производительность, фильтры и SEO.
Что такое свойство «Список» и «Справочник»
Оба типа свойств хранят не произвольный текст, а значение из фиксированного набора. Пользователь при заполнении элемента выбирает вариант из выпадающего списка, флажков или переключателей, а не вводит текст руками. Это исключает опечатки и дубли вроде «Красный», «красный» и «КРАСНЫЙ».
- «Список» — простой встроенный тип. Варианты значений хранятся прямо в настройках свойства, в служебных таблицах модуля инфоблоков.
- «Справочник» — это привязка свойства к внешнему HighLoad-блоку. Значения хранятся в отдельной таблице справочника и могут иметь собственные поля: картинку, сортировку, описание, символьный код.
Технически «Справочник» реализован как свойство типа Привязка к элементам highload-блока (directory), поэтому в интерфейсе создания свойства он может называться «Справочник» или «Привязка к элементам HL-блока».
Когда выбирать «Список», а когда «Справочник»
Ориентируйтесь на объём значений и на то, нужны ли им дополнительные атрибуты.
| Критерий | Список | Справочник (HL-блок) |
|---|---|---|
| Где хранятся значения | В настройках свойства | В отдельном HighLoad-блоке |
| Доп. поля у значения (картинка, код, сортировка) | Нет | Да |
| Переиспользование в разных инфоблоках | Нет, набор привязан к свойству | Да, один справочник для многих свойств |
| Массовое ведение (сотни значений) | Неудобно | Удобно, есть свой грид |
| Умный фильтр и агрегация | Работает | Работает, с картинками в фильтре |
| Простота настройки | Максимальная | Требует создать HL-блок |
Правило: если это короткий стабильный набор (Да/Нет, статусы, размеры), берите «Список». Если это бренды, цвета, страны, характеристики с картинками и своими полями — берите «Справочник».
Настройка свойства типа «Список»
Свойства добавляются в карточке инфоблока на вкладке «Свойства».
- Откройте Контент → Инфоблоки → Типы инфоблоков, выберите тип и нужный инфоблок.
- Перейдите на вкладку «Свойства».
- В пустой строке заполните Название и Код (латиницей, например
COLOR). - В колонке «Тип» выберите «Список».
- В блоке настроек справа укажите вид отображения: выпадающий список или флажки/переключатели.
- Заполните значения списка: в каждой строке — «Значение по умолчанию» (флажок), «XML_ID», «Значение» и «Сорт.». XML_ID нужен для импорта/экспорта, задавайте его вручную осмысленным.
- Сохраните инфоблок.
Признак «Множественное» в строке свойства разрешает выбрать сразу несколько значений. Для одиночного выбора оставьте его выключенным.
Настройка свойства типа «Справочник» (HighLoad-блок)
Справочник сначала создают как HighLoad-блок, затем привязывают к свойству.
- Откройте Контент → Highload-блоки и нажмите «Добавить highload-блок».
- Задайте Название и Название таблицы в БД (латиницей, например
brands). - На вкладке «Поля» при необходимости добавьте пользовательские поля:
UF_NAME,UF_XML_ID,UF_FILE,UF_SORT. ПоляUF_NAMEиUF_XML_IDобязательны, чтобы блок работал как справочник. - Наполните справочник значениями на вкладке «Элементы».
- Вернитесь в карточку инфоблока на вкладку «Свойства» и создайте новое свойство с типом «Справочник» (или «Привязка к элементам HL-блока»).
- В настройках свойства выберите нужный HighLoad-блок и вид отображения (список, флажки, выпадающий).
- Сохраните инфоблок.
Одно и то же значение справочника теперь можно использовать в свойствах разных инфоблоков — данные не дублируются.
Вывод значений на сайте и в умном фильтре
В шаблоне компонента значение свойства-списка доступно в массиве свойств элемента. Для «Списка» готовое текстовое значение лежит в поле VALUE, а для отметки выбранного варианта используется VALUE_ENUM_ID.
- Свойство типа «Список» отдаёт значение как строку — выводить можно напрямую.
- Свойство типа «Справочник» хранит
UF_XML_IDвыбранного элемента; чтобы получить название и картинку, значение сопоставляют с таблицей HL-блока (в стандартных компонентах каталога это делается автоматически).
Оба типа корректно участвуют в компоненте «Умный фильтр» (bitrix:catalog.smart.filter). Преимущество справочника — в фильтре можно показывать цвет или логотип бренда, потому что у значения есть поле-картинка.
Чтобы свойство появилось в умном фильтре, включите его на вкладке «Свойства для умного фильтра» в настройках инфоблока (доступно в редакции с торговым каталогом).
Частые ошибки
Типовые проблемы при работе со списками и справочниками.
- Пустой XML_ID у значений списка. При экспорте/импорте или обновлении такие значения теряют привязку и дублируются. Задавайте XML_ID вручную и осмысленно.
- Справочник без обязательных полей. Если в HL-блоке нет
UF_NAMEилиUF_XML_ID, он не выбирается в настройках свойства «Справочник». Добавьте эти поля. - Смена типа свойства на живом инфоблоке. Перевод свойства со «Списка» на «Справочник» (и наоборот) не переносит уже сохранённые значения — их придётся заполнить заново.
- Свойство не в фильтре. Забыли включить его на вкладке «Свойства для умного фильтра» — тогда оно есть в карточке, но не участвует в фильтрации.
- Ожидание доп. полей от «Списка». У встроенного списка нет картинок и сортируемых атрибутов. Если они нужны — это признак того, что изначально нужен был «Справочник».
- Кэш. После правки набора значений старые данные могут держаться в кэше компонентов. Сбросьте кэш инфоблока.
Итог
«Список» — быстрый способ дать свойству фиксированный набор значений без внешних сущностей. Подходит для коротких стабильных наборов.
«Справочник» — это HighLoad-блок, привязанный к свойству. Его стоит выбирать, когда значений много, они переиспользуются в разных инфоблоках или им нужны собственные поля (картинка, код, сортировка). Правильно заполненный XML_ID и продуманная структура справочника избавят от дублей и упростят импорт, фильтрацию и SEO.