Универсальный список не открывается или пуст - разбор причин
Раздел универсальных списков не открывается, страница на витрине пуста или в списке не видно ни одного элемента. Разбираем причины по убыванию частоты, начиная с настроек самого модуля универсальных списков.
С чего начать
Смотрим настройки модуля списков:
\Bitrix\Main\Loader::includeModule('lists');print_r(\Bitrix\Main\Config\Option::getForModule('lists'));// среди настроек есть тип инфоблока, в котором живут списки проекта// пустое значение означает, что раздел списков не к чему привязатьТип инфоблока задают до создания первого списка. Без него раздел не находит своё хранилище, и администратор видит пустую страницу вместо перечня рабочих списков.
Смотрим сами списки как инфоблоки нужного типа:
$res = CIBlock::GetList([], ['TYPE' => $listsIblockType, 'CHECK_PERMISSIONS' => 'N'], false);while ($row = $res->Fetch()) { printf("%d %s\n", $row['ID'], $row['NAME']); }// проверка прав отключена: так видно списки, скрытые правами от текущего пользователяПустой перечень при заполненной настройке означает, что списки лежат в другом типе инфоблока. Совпадение типа проверяют глазами: тип из настроек модуля и тип самого инфоблока обязаны быть одинаковыми.
Проверяем права групп на инфоблок списка:
print_r(CIBlock::GetGroupPermissions($iblockId)); // уровни доступа по группамprintf("текущий пользователь: %s\n", CIBlock::GetPermission($iblockId));// пустая буква уровня означает отсутствие доступа даже на чтение записейСмотрим поля списка:
$res = CIBlockProperty::GetList([], ['IBLOCK_ID' => $iblockId]);while ($prop = $res->Fetch()) { printf("%s (%s)\n", $prop['NAME'], $prop['PROPERTY_TYPE']); }// у нового списка нет ничего, кроме названия: остальные поля заводят вручную// тип свойства определяет и форму ввода, и способ фильтрации записей спискаПричины
-
Модулю не задан тип инфоблока для списков примерно 30% случаев
ПризнакРаздел списков открывается пустым, и создать новый список в нём нельзя.
ПроверкаСмотрим настройки модуля списков и то значение типа инфоблока, которое задано в них.
Что делатьЗаводим отдельный тип инфоблока под списки и указываем именно его в настройках модуля.
-
Список не опубликован комплексным компонентом примерно 25% случаев
ПризнакВ административной части список есть, а на витрине страница пустая или отдаёт ошибку.
ПроверкаОткрываем физическую страницу раздела и смотрим, стоит ли на ней комплексный компонент списков.
Что делатьСтавим комплексный компонент универсальных списков на физическую страницу того раздела, где нужен список.
-
У группы нет прав на список примерно 20% случаев
ПризнакАдминистратор видит список целиком, а менеджер получает пустую страницу.
ПроверкаПечатаем уровни доступа групп на инфоблок списка и права текущего пользователя отдельно.
Что делатьВыдаём группе уровень чтения или изменения прямо на вкладке доступа самого списка.
-
Редакция продукта без модуля списков примерно 15% случаев
ПризнакПункта меню с универсальными списками нет вовсе, и модуль не устанавливается.
ПроверкаСмотрим список установленных модулей и редакцию самого продукта в настройках системы сайта.
Что делатьПереходим на старшую редакцию либо переносим решение на обычные инфоблоки или свою таблицу.
-
У списка заведено только поле названия примерно 10% случаев
ПризнакСписок открывается, но в таблице одна колонка и записи выглядят пустыми.
ПроверкаПечатаем свойства инфоблока списка и сверяем их с ожидаемым набором рабочих полей.
Что делатьДобавляем нужные поля вручную, подбирая тип каждого поля под характер хранимых данных.
Частые вопросы
Где задаётся тип инфоблока для списков?
В настройках модуля универсальных списков, отдельным полем. Тип создают заранее в разделе типов инфоблоков и держат отдельным от каталога и новостей.
Почему список виден в админке и не виден на сайте?
Публичная часть требует физической страницы с комплексным компонентом списков. Прямой вывод из административного раздела на витрину не переносится.
Менеджер видит пустой список. Что проверить?
Уровень доступа его группы на инфоблок списка: чтение, изменение, добавление или документооборот. Права правят на вкладке доступа списка либо в правах инфоблока.
Почему у нового списка нет полей?
Так и должно быть: у списка есть только название, остальные поля добавляют вручную. Набор настроек поля зависит от выбранного типа и перезагружается при его смене.
Что делать в младшей редакции?
Модуля там нет, и списки не появятся. Задачу решают обычным инфоблоком или своей таблицей, если переход на старшую редакцию не планируется.
Смежное
- Универсальные списки - оглавление подтемы
- Универсальный список: настройка, права и вывод элементов - правильный порядок настройки
- Список как справочник: поля, права, вывод и наполнение - выбор хранилища под справочник
- Перенос универсального списка между стендами: структура, права, данные - перенос структуры и прав
- Бизнес-процесс над элементом списка: поля, раздел, PHP-код - процессы над записями списка
- Права на инфоблок и заказы: выдача из интерфейса и кодом - уровни доступа к инфоблокам
- Редакция продукта: ограничения, переход на старшую, ключ - какие модули есть в редакции
- Модули и решения - устройство модулей платформы
- Универсальный список изнутри: инфоблок, поля, права - устройство прав и полей за этими причинами