Yandex Metrika
sanches.free

Гибкая привязка к объектам сайта через источники данных

Паттерн «универсальной привязки» в проектах

Стандартных типов свойств часто недостатает: контент‑менеджеру нужна связь не только между элементами инфоблока, но и с веб-формой, складом или выпуском рассылки. Классическая альтернатива — свой тип поля или ручные ID в текстовых полях, что дорого поддерживать. Более удобный подход абстрагирует источник списка: отдельный компонент выбора + плагины «источников данных», которые знают, как достать элементы нужной доменной сущности.

Структура источника

На практике источники оформляют так же компактно, как лёгкие компоненты Битрикс: .description.php с именем и при необходимости .parameters.php для настроек, а основную выборку делают в list.php, где собираются пары ключ/название. Пользовательские реализации кладут в /local/php_interface/…, чтобы пережить обновления платформы.

if (\CModule::IncludeModule("subscribe")) {
    $cPosting = new \CPosting;
    $rs = $cPosting->GetList($arSort, $arFilter);
    while ($post = $rs->GetNext()) {
        $arResult["DATA"][$post["ID"]] = ["NAME" => $post["SUBJECT"]];
    }
}

Интерфейс выбора

Для маленьких справочников хватает статического выпадающего списка, для тысяч записей нужен живой поиск или AJAX-догрузка. Одна и та же обвязка UI может использоваться как в свойствах, так и во фронт-фильтрах.

Интеграция типа «табличное свойство + колонка привязки» и кастомные модули — отдельный слой продукта: при чистой разработке сравниваете highload+админские списки, собственное свойство и готовые коммерческие расширения по трудозатратам поддержки.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии