← К заметкам

Заметки

EntitySelector открылся, но не запрашивает данные провайдера

Провайдер зарегистрирован, диалог BX.UI.EntitySelector.Dialog открывается, а запросов к серверу нет. При этом enableSearch: true уже установлен. Этот параметр включает поле поиска в интерфейсе, но не задаёт динамическую загрузку вашей сущности.

После подключения расширения ui.entity-selector укажите флаги внутри элемента entities. На странице уже должен быть элемент с ID document-selector:

const dialog = new BX.UI.EntitySelector.Dialog({
    targetNode: document.getElementById('document-selector'),
    context: 'PROJECT_DOCUMENTS',
    enableSearch: true,
    entities: [{
        id: 'project-document',
        dynamicLoad: true,
        dynamicSearch: true
    }]
});

dialog.show();

dynamicLoad разрешает загрузку элементов с сервера, dynamicSearch — серверный поиск. Их можно задать глобально в настройках провайдера или переопределить в конкретном диалоге.

Строка project-document должна совпадать с entityId в секции ui.entity-selector файла .settings.php вашего установленного модуля. Там же задаются moduleId и className провайдера.

Если запрос появился, но выдача пустая, следующий участок уже на PHP-стороне: fillDialog наполняет диалог, а doSearch отвечает за результаты поиска. Дублирующее подключение модуля в init.php не заменяет настройку провайдера.

Документация: Провайдеры EntitySelector; Параметры Entity.