Перейти к содержимому

Универсальный список не открывается или пуст - разбор причин

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

С чего начать

Смотрим настройки модуля списков:

\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']); }
// у нового списка нет ничего, кроме названия: остальные поля заводят вручную
// тип свойства определяет и форму ввода, и способ фильтрации записей списка

Причины

  1. Модулю не задан тип инфоблока для списков примерно 30% случаев

    ПризнакРаздел списков открывается пустым, и создать новый список в нём нельзя.

    ПроверкаСмотрим настройки модуля списков и то значение типа инфоблока, которое задано в них.

    Что делатьЗаводим отдельный тип инфоблока под списки и указываем именно его в настройках модуля.

  2. Список не опубликован комплексным компонентом примерно 25% случаев

    ПризнакВ административной части список есть, а на витрине страница пустая или отдаёт ошибку.

    ПроверкаОткрываем физическую страницу раздела и смотрим, стоит ли на ней комплексный компонент списков.

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

  3. У группы нет прав на список примерно 20% случаев

    ПризнакАдминистратор видит список целиком, а менеджер получает пустую страницу.

    ПроверкаПечатаем уровни доступа групп на инфоблок списка и права текущего пользователя отдельно.

    Что делатьВыдаём группе уровень чтения или изменения прямо на вкладке доступа самого списка.

  4. Редакция продукта без модуля списков примерно 15% случаев

    ПризнакПункта меню с универсальными списками нет вовсе, и модуль не устанавливается.

    ПроверкаСмотрим список установленных модулей и редакцию самого продукта в настройках системы сайта.

    Что делатьПереходим на старшую редакцию либо переносим решение на обычные инфоблоки или свою таблицу.

  5. У списка заведено только поле названия примерно 10% случаев

    ПризнакСписок открывается, но в таблице одна колонка и записи выглядят пустыми.

    ПроверкаПечатаем свойства инфоблока списка и сверяем их с ожидаемым набором рабочих полей.

    Что делатьДобавляем нужные поля вручную, подбирая тип каждого поля под характер хранимых данных.

Частые вопросы

Где задаётся тип инфоблока для списков?

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

Почему список виден в админке и не виден на сайте?

Публичная часть требует физической страницы с комплексным компонентом списков. Прямой вывод из административного раздела на витрину не переносится.

Менеджер видит пустой список. Что проверить?

Уровень доступа его группы на инфоблок списка: чтение, изменение, добавление или документооборот. Права правят на вкладке доступа списка либо в правах инфоблока.

Почему у нового списка нет полей?

Так и должно быть: у списка есть только название, остальные поля добавляют вручную. Набор настроек поля зависит от выбранного типа и перезагружается при его смене.

Что делать в младшей редакции?

Модуля там нет, и списки не появятся. Задачу решают обычным инфоблоком или своей таблицей, если переход на старшую редакцию не планируется.

Смежное

Первоисточник