Как выгрузить из 1С в уже существующий инфоблок Битрикс

30 Mar
Published by Nicholas

Как выгрузить из 1С в уже существующий инфоблок Битрикс

Недавно столкнулся с задачей выгрузить данные из 1С:Управление торговлей 11 на сайт под управлением 1С-Битрикс в уже существующий инфоблок «Каталог товаров».

Получилось не с первого раза, поэтому решил записать все на случай, если понадобится повторить это в будущем.

Первое, что нужно сделать - это включить отображение кода загрузки из внешних источников для информационных блоков.

В режиме «Администрирование» откроем меню «Настройки», далее открываем «Настройки продукта - Настройки модулей - Информационные блоки», устанавливаем флаг «Показывать код загрузки из внешних источников»:

Показывать код загрузки из внешних источников

Затем необходимо настроить параметры импорта каталога.

Откроем меню «Магазин», далее «Настройки - Интеграция с 1С». Здесь нужно выбрать тип инфо-блока (Запомните символьный код инфоблока, приведенный в квадратных скобках! Он потребуется чуть позже.) и устанавить флаг «При выгрузке учитывать тип инфоблока»:

Тип инфо-блока

При выгрузке учитывать тип инфоблока

Рекомендую в этих настройках сразу установить следующие флаги:

  • Использовать настройки инфоблока для обработки изображений - чтобы настраивать это только в одном месте;
  • Транслитерировать символьный код из названия при добавлении элемента или раздела - иначе будут возникать ошибки типа «обязательное поле "символьный код" не заполнено», либо уберать флаг обязательности заполнения символьного кода в настройках инфоблока «Инфоблоки - Типы инфоблоков - Каталоги»
  • Выгружать предложения (характеристики) в отдельный инфоблок - этот флаг следует установить в том случае, если номенклатура ведется в разрезе характеристик.

Теперь осталось настроить выгрузку данных из 1С и определить идентификатор каталога.

Откроем конфигурацию 1С:УТ 11 «Администрирование - Синхронизация данных», устанавливаем флаг «Обмен данными с сайтом», открываем «Узлы обмена с сайтами».

Создадим новый узел обмена, выбираем рижим обмена «Выгрузка товаров», в качестве адреса сайта необходимо указать http://сайт/bitrix/admin/1c_exchange.php:

Основные настройки узла обмена с сайтом

На закладке «Выгрузка товаров» находим идентификатор каталога и копируем его в буфер обмена:

Идентификатор каталога для выгрузки в Битрикс

Откроем меню «Контент», далее «Инфоблоки - Типы инфоблоков - Каталоги», открываем искомый каталог. В поле «Внешний код» указываем тип инфоблока из настроек параметров импорта, и через дефиз идентификатор каталога из 1С:

Настройка внешнего кода инфоблока Битрикс

После этого можно запустить обмен с сайтом в 1С.

В случае, если Вы используете «Торговые предложения», то они будут иметь тот же внешний код, что и каталог товаров, но с решеткой в конце, например, «catalog-280af51d-ef93-11de-9de0-001c7e202cbc#».

Если в 1С есть «Номенклатура» или «Группы номенклатуры» с одинаковыми названиями, то в настройках инфо-блока каталога на закладке «Поля» или «Поля разделов» соответственно, для символьного кода нужно убрать флаг обязательности заполнения и проверки на уникальность, а также перенастроить ЧПУ на использование ID вмести CODE.

Пример.

Имеются группы номенклатуры:

  • Одежда
    • Зима
    • Лето
  • Обувь
    • Зима
    • Лето

В этом случае символьные коды групп после транслитерации получатся следующие:

  • odezhda
    • zima
    • leto
  • obuv
    • zima
    • leto

Получается, что для зимней одежды и для зимней обуви будет одинаковая ссылка: /catalog/zima, что приведет к ошибке в отображении товаров. Чтобы при импорте из 1С не возникало ошибок, откроем меню «Контент», далее «Инфоблоки - Типы инфоблоков - Каталоги - Каталог товаров 1С», на закладке «Поля разделов» убираем флаги:

Настройка полей разделов инфоблока

На закладке «Инфоблок» меняем SECTION_CODE на SECTION_ID:

Настройка url страницы инфоблока

После этого ссылка на зимнюю одежду будет, например, такой /catalog/81/, а на зимнюю обувь такой /catalog/82/.

Комментарии

Аватар пользователя Александр

Здравствуйте! При выгрузке из 1С на сайт дублируются группы.
Сделали загрузку товаров с сайта в 1С, товары загрузись вместе с группами, указали соответствие инфоблоку как написано в этой статье, настроили дерево групп, все названия в этом дереве совпадают с названиями на сайте, однако при выполнении первого обмена на сайте создаются новые группы с тем же названием. Можно ли как-то сделать так, чтобы товары выгружались в уже существующие группы?

Аватар пользователя Nicholas

У них должны быть одинаковые внутренние идентификаторы.

Страницы

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
CAPTCHA
Вы человек или автоматическая спам-рассылка?
Target Image