Гибкая привязка к объектам сайта через источники данных
Паттерн «универсальной привязки» в проектах
Стандартных типов свойств часто недостатает: контент‑менеджеру нужна связь не только между элементами инфоблока, но и с веб-формой, складом или выпуском рассылки. Классическая альтернатива — свой тип поля или ручные 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 дней гарантии