Привязка к другим инфоблокам — это способ связать импортируемый товар со справочными данными: брендом, производителем, коллекцией или сопутствующими позициями. Разберём, как настроить свойство-связь и как передать значение в CSV, чтобы импорт не создавал дубли и не рвал ссылки.
Что такое привязка к элементам и разделам
В 1С-Битрикс товар редко существует сам по себе: у него есть бренд, производитель, сезонная коллекция, список аксессуаров. Хранить эти сущности прямо в свойствах товара — плохая идея: справочник разрастается, а редактирование одного бренда требует правки сотен карточек. Правильный подход — вынести справочник в отдельный инфоблок и связать товар с его элементами.
За связь отвечают два типа свойств инфоблока:
- Привязка к элементам инфоблоков (тип
E) — товар ссылается на конкретный элемент другого инфоблока, например на элемент справочника «Бренды». - Привязка к разделам инфоблоков (тип
G) — товар ссылается на раздел (категорию) другого инфоблока.
Отдельно стоит пользовательский тип Привязка к элементам инфоблока по внешнему коду (XML_ID) — он хранит связь не по внутреннему ID, а по символьному внешнему коду, что критично для повторяемого импорта и обмена с 1С.
Подготовка справочного инфоблока и свойства
Сначала должен существовать целевой инфоблок-справочник и его элементы. Порядок работ такой:
- Создать инфоблок «Бренды» (или «Производители», «Коллекции») в разделе
Контент → Информационные блокии заполнить его — хотя бы импортировать список названий с внешними кодами. - В инфоблоке товаров открыть вкладку Свойства и добавить свойство с типом Привязка к элементам инфоблоков.
- В настройках свойства выбрать целевой инфоблок, при необходимости включить Множественное и задать вид отображения (выпадающий список, флажки, диалог).
Без заранее заполненного справочника импорт либо не найдёт цель, либо создаст пустые связи — поэтому справочник импортируют первым.
Чем ссылаться в CSV: ID, название или XML_ID
Главный вопрос импорта со связью — что положить в колонку CSV, чтобы Битрикс понял, на какой элемент ссылаться. Есть три ключа, и они не равнозначны:
| Ключ в CSV | Когда надёжен | Риски |
|---|---|---|
| ID элемента | Справочник уже импортирован, ID известны и стабильны | ID меняются при пересоздании инфоблока — связь рвётся |
| Название | Названия уникальны и точно совпадают | Пробелы, регистр, дубли названий ломают сопоставление |
| XML_ID (внешний код) | Есть общий код из учётной системы или 1С | Требует свойства-привязки по XML_ID или предварительного сопоставления |
Практический вывод: XML_ID — самый устойчивый ключ. Он не зависит от внутренних ID Битрикса, переживает пересоздание инфоблока и совпадает с кодом из 1С. Для множественной привязки значения в ячейке разделяют выбранным символом (например , или ;), который затем указывают в мастере импорта.
Пошаговый импорт и сопоставление колонок
Штатный импорт CSV запускается со страницы элементов инфоблока: Контент → Информационные блоки → [ваш инфоблок] → Импорт CSV. Мастер проходит несколько шагов:
- Загрузка файла и параметры разбора — кодировка (обычно
windows-1251илиUTF-8), разделитель полей и ограничитель строк. - Сопоставление колонок — каждой колонке CSV назначается поле или свойство. Здесь колонку с брендом привязывают к свойству типа «Привязка к элементам инфоблоков».
- Правила поиска элемента — по какому полю искать существующий товар, чтобы обновлять, а не дублировать.
- Запуск — по шагам, порциями, чтобы не упереться в лимит времени выполнения PHP.
Множественные связи и привязка к разделам
Один товар часто ссылается сразу на несколько элементов: список совместимых аксессуаров, набор тегов, несколько коллекций. Для этого свойство должно быть помечено как Множественное, а в CSV значения перечисляются в одной ячейке через разделитель.
- Для аксессуаров и «с этим товаром покупают» удобно ссылаться на элементы того же инфоблока товаров — привязка не обязана вести в другой инфоблок.
- Для категоризации по внешнему справочнику берут привязку к разделам (тип
G): в CSV передают код или ID раздела целевого инфоблока. - Если справочник строится деревом (модельный ряд, серии), связь к разделу компактнее, чем перечисление всех элементов.
При обновлении множественного свойства учитывайте режим: импорт может заменять весь набор значений или дополнять его. Перед боевым прогоном проверьте это на тестовом товаре, чтобы не затереть ранее выставленные связи.
Повторный импорт и автоматизация
Разовый импорт — половина задачи. Каталог обновляется, и связь должна переживать регулярные прогоны без ручной правки. Здесь снова выручает XML_ID: он служит и ключом поиска самого товара, и ключом привязки к справочнику.
- Сохраните настройки мастера как профиль импорта, чтобы не собирать сопоставление колонок заново.
- Для регулярности повесьте запуск на агент или cron, передавая файл в согласованной структуре.
- Если данные приходят из 1С, оцените штатный обмен CommerceML: там связи каталога и справочников передаются по внешним кодам «из коробки», без CSV-костылей.
Типовые ошибки и как их избежать
Большинство проблем с привязкой сводится к нескольким повторяющимся сценариям:
| Симптом | Причина | Решение |
|---|---|---|
| Связь пустая после импорта | Справочник импортирован позже товаров или значение не совпало | Импортировать справочник первым, ссылаться по XML_ID |
| Появились дубли брендов | Импорт создаёт элемент, не найдя совпадения по названию | Отключить автосоздание, нормализовать названия |
| Связь слетает при пересоздании инфоблока | Привязка хранится по ID, а ID сменились | Использовать привязку по XML_ID |
| Множественные значения затёрлись | Режим замены вместо дополнения | Проверить режим на тестовом элементе |
Отдельно проверяйте кодировку и разделители: «съеденный» разделитель превращает несколько кодов в один несуществующий и обнуляет всю привязку строки.
Итог
Импорт с привязкой к другим инфоблокам держится на трёх правилах: справочник заполняется до товаров, связь строится на устойчивом ключе (лучше всего XML_ID), а режим обновления множественных свойств проверяется заранее. Тогда бренды, коллекции и аксессуары подтягиваются к карточкам автоматически и переживают регулярные прогоны без ручной правки.
Если каталог большой, связи многоуровневые, а данные приходят из 1С, мы в B2Bsite настраиваем обмен и импорт так, чтобы справочники и товары синхронизировались по внешним кодам без дублей и оборванных ссылок — от разовой миграции до автоматического обмена по расписанию.
Частые вопросы
Чем привязка к элементам отличается от привязки к разделам?
Привязка к элементам (тип E) ведёт на конкретный элемент другого инфоблока, например на бренд. Привязка к разделам (тип G) ведёт на категорию целевого инфоблока и удобна для древовидных справочников.
По какому ключу лучше ссылаться в CSV?
По внешнему коду XML_ID. Он не зависит от внутренних ID Битрикса, переживает пересоздание инфоблока и совпадает с кодами из 1С, поэтому связь не рвётся при повторных импортах.
Почему после импорта связь оказалась пустой?
Чаще всего целевой элемент ещё не существовал на момент привязки или значение в колонке не совпало с элементом справочника. Импортируйте справочник первым и сверяйте ключ сопоставления.
Как импортировать сразу несколько связей на один товар?
Свойство должно быть множественным, а значения перечисляются в одной ячейке через выбранный разделитель. Этот же разделитель указывается в настройках мастера импорта.
Можно ли ссылаться на элементы того же инфоблока товаров?
Да, привязка не обязана вести в другой инфоблок. Так удобно оформлять аксессуары и блок «с этим товаром покупают», ссылаясь на другие товары того же каталога.
Штатный импорт понимает названия брендов вместо ID?
Мастер сопоставляет привязку по внутреннему ID целевого элемента. Для работы по названию или XML_ID нужна привязка по внешнему коду либо предварительное сопоставление в обработчике импорта.
Как обновлять связи регулярно, а не вручную?
Сохраните настройки как профиль импорта и запускайте его по расписанию через агент или cron. При обмене с 1С надёжнее штатный CommerceML, где связи передаются по внешним кодам.
Почему при импорте плодятся дубли брендов?
Импорт создаёт новый элемент, не найдя совпадения по названию из-за пробелов, регистра или разночтений. Отключите автосоздание и нормализуйте значения перед загрузкой.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.