Универсальные списки на практике - настройка и вывод
Универсальные списки - подтема на 8 вопросов из собранных. Здесь собраны решения по настройке списков и выводу их элементов.
Что общего у этих задач
Список - это инфоблок с другим интерфейсом. Данные лежат в тех же таблицах, поля - это свойства инфоблока, а разделы - его разделы. Отсюда главное следствие: всё, что умеет API инфоблоков, работает и со списками.
Интерфейс списка рассчитан на сотрудника, а не на разработчика. Он позволяет завести справочник или реестр документов без единой строки кода, но настраивается только через свои экраны, и часть возможностей инфоблока в них не вынесена.
Права на список свои. Они выдаются на уровне модуля списков и не совпадают с правами на инфоблоки. Поэтому «элементы видит только администратор» решается в настройках списка, а не в правах инфоблока.
Структура списка живёт в базе, а не в файлах проекта. Значит, выкладка кода её не переносит, и на боевой сайт она уезжает отдельной миграцией вместе с правами групп.
С чего начать
Начинают с вопроса, кто будет вести эти данные. Если поля меняет заказчик, а записи ведёт менеджер, список подходит лучше своей таблицы. Если данные служебные и меняются только кодом, дешевле обойтись хранилищем без интерфейса.
Дальше описывают поля и сразу задают им понятные коды. Именно коды переживают перенос между стендами и попадают в шаблоны, а числовые идентификаторы на боевом сайте будут другими.
Последний шаг - права. Решают, какая группа видит записи, какая правит и кто отвечает за структуру списка после сдачи проекта.
Решения подтемы
- Универсальный список: настройка, права и вывод элементов - создание списка, поля, права, вывод в публичной части.
- Список как справочник: поля, права, вывод и наполнение - выбор хранилища, права и наполнение.
- Перенос универсального списка между стендами: структура, права, данные - миграция структуры, коды полей, права групп, заливка записей.
- Универсальный список не открывается или пуст: разбор причин - тип инфоблока модуля, публикация, права, редакция.
- Универсальный список изнутри: инфоблок, поля, права - инфоблок под капотом, коды полей, сортировка, права и процессы.
- Поля универсального списка: типы, обязательность и сортировка - двенадцать типов, параметры формы поля, порядок и дозаполнение записей.
Частые вопросы
Чем список отличается от инфоблока?
Интерфейсом, а не хранением. Данные списка лежат в инфоблоке, и то же самое API читает их обычной выборкой.
Почему список видит только администратор?
Не выданы права на уровне модуля списков. Права инфоблока их не заменяют: у списка своя настройка доступа.
Как вывести элементы списка на сайте?
Обычной выборкой по инфоблоку списка либо штатным компонентом. Списки не предполагают своего публичного вывода: он делается средствами инфоблоков.
Годятся ли списки для больших справочников?
Для сотен и тысяч записей - да. Для десятков тысяч интерфейс становится неудобным, и справочник выносят в highload-блок.
Связанные темы
- Универсальные списки - устройство модуля целиком
- Инфоблоки - где на самом деле лежат данные
- Highload-блоки - куда выносить большие справочники
- Раздел Модули и решения