Битрикс и интеграция с 1С
[краткий ликбез для начинающих]
Вы разработали интернет-магазин на битриксе. Во время разработки вы создали все нужные свойства и заполнили каталог демо-товарами.
Осталось только загрузить реальный каталог из 1С — это означает, что впереди еще много работы. Придется добиться, чтобы все нужные данные выгружались вообще и выгружались в нужное место. Иначе придется подгонять проект под структуру данных из 1С.
Вопрос интеграции поднимается на каждом более-менее крупном интернет-магазине. Часто разработчикам, не только начинающим, трудно понять, как работает механизм обмена. Полезная информация разбросана по интернету, будет удобно собрать её в одном месте.
Цели статьи
- Коротко изложить основные возможности обмена и его алгоритм работы;
- Дать ссылки на официальные и прочие полезные источники;
- Ответить на частые вопросы;
- Прояснить, с чего начать интеграцию и как ее успешно завершить.
Стандартный обмен между 1С-Битрикс и 1С
В битриксе есть встроенный функционал для обмена с 1С, благодаря чему любой обмен должен настраиваться в пару кликов.
Однако, для этого 1С должна быть “чистой” типовой конфигурации. На деле каждая первая 1С “нетиповая”, то есть модифицирована так или иначе.
Как таковой обмен и правда настраивается быстро и несложно, только часто (почти всегда) на этом дело не заканчивается, так как из 1С выгружаются не все данные или выгружаются не туда (в том числе из-за модификаций в 1С).
Что умеет штатный механизм обмена
- Импорт каталога товаров из 1С на сайт;
- Экспорт каталога товаров с сайта в 1С;
- Экспорт заказов с сайта в 1С;
- Импорт заказов из 1С на сайт;
- Импорт справочников (highload-инфоблоков) из 1С на сайт.
Полезные ссылки
Алгоритм выгрузки данных на сайт
Инициатором обмена всегда выступает 1С, по соображениям безопасности — даже если сайт взломают, атаковать 1C будет невозможно, так как сайт не умеет обращаться к 1С и вообще ничего не знает про нее.
Обмен работает посредством последовательных http GET/POST запросов от 1С к сайту, к скрипту /bitrix/admin/1c_exchange.php.
Обмен состоит из нескольких ключевых этапов
- Авторизация 1с на сайте;
- Загрузка файлов из 1с на сайт;
- Чтение xml файлов во временную таблицу;
- Обработка данных.
Этапы загрузки, чтения и обработки — делаются за множество шагов. Время длительности каждого шага задается в настройках обмена на стороне сайта. На стороне 1С ограничение на длительность шага должно совпадать.
Процесс выгрузки данных из 1С на сайт можно представить в виде следующей схемы

Полезные ссылки
Формат данных для обмена с 1С
1C загружает на сайт xml файлы, и картинки при импорте товаров.
Если включено zip-сжатие в настройках обмена на стороне сайта (по-умолчанию включено), то 1C загружает один архив, иначе все файлы по отдельности.
Формат xml файлов
Информация в файлах структурирована в соответствии со стандартом обмена коммерческой информацией CommerceML2.
Информация о товарах передается на сайт в следующих файлах
- import.xml — товары, группы (разделы инфоблока), типы цен, склады, свойства товаров и единицах измерения;
- offers.xml — торговые предложения (ТП) товаров и их свойствах;
- prices.xml — цены ТП;
- rests.xml — остатки ТП;
- references.xml — пользовательские справочники (HL-инфоблоки).
Файлы import.xml и offers.xml содержат описания свойств, типов цен, и прочую информацию, которая относится в равной степени ко всем товарам/ТП.
Если каталог большой, в целях оптимизации, описания выгружаются в отдельных “заголовочных” файлах. Это такие же файлы import.xml и offers.xml, только не содержат ничего кроме описаний. В таком случае заголовочные файлы обрабатываются только в самом начале обмена.
Информация о заказах передается на сайт в следующих файлах
- documents.xml — документы (заказы);
- contragents.xml — контрагенты (пользователи-покупатели).
Полезные ссылки
Куда на сайт загружаются файлы выгрузки
В папку /upload/1c_catalog/. Перед каждым обменом эта папка очищается. То есть в этой папке всегда находятся файлы последнего обмена.
Можно включить «режим отладки” обмена — отключить перезапись файлов в папке 1c_catalog. Таким образом можно отключить удаление файлов выгрузки после завершения обмена.
Для этого нужно объявить константу в файле dbconn.php:
// Включает "режим отладки” для обмена с 1С, // отключает перезапись файлов в папке 1c_catalog // Что бы сохранялись все файлы после выгрузки. define("BX_CATALOG_IMPORT_1C_PRESERVE", true);
Теперь вместо удаления папка будет переименовываться, к ней будет добавляться числовой идентификатор.

Чем больше число у папки, тем новее эта папка.
Однако, самая новая папка всегда будет без чисел, и только со следующим обменом она будет переименована.
Важно помнить, что с включенным режимом отладки очень быстро идет расход места на диске. Поэтому после отладки следует отключить лог и удалить все лишние папки обмена.
Что нужно для обмена на стороне сайта
- редакция битрикса “Малый бизнес” или “Бизнес”
- настроить параметры обмена
- создать пользователя и группу “Обмен с 1С” для обмена, настроить права
- разрешить группе выполнять выгрузку товаров/заказов (в настройках параметров)
- разрешить группе доступ на чтение папки /bitrix/admin/
Что нужно для обмена на стороне 1С
- установить модуль для обмена (зависит от версии 1С)
- настроить адрес сайта и пользователя сайта из группы “Обмен с 1С”
- настроить параметры выгрузки на стороне 1С (зависят от версии УТ)
- Интеграция с 1С:УТ» ред. 10.3
- Интеграция с «1С:УТ» ред. 11.1, ред. 11.2
Полезные ссылки
Структура каталога в 1С и на сайте
Что делать если структура каталога в 1С не совпадает со структурой на сайте?
В 1С можно задать какие товары и разделы выгружать.
Часто в 1С товары хранятся не так, как они будут выводиться на сайте, поэтому можно на стороне 1С настроить виртуальный каталог для выгрузи на сайт: создать нужную структуру разделов и разложить по ним товары.
Так же можно задать условия отбора товара (не все товары нужны на сайте) для выгрузки на сайт и свойства (в 1С много св-в, не все нужны на сайте).
Виды выгрузок из 1С
Полная выгрузка
Происходит при выгрузке данных на сайт в первый раз, или при ручном запуске.
- Выгружаются все товары.
- Картинки выгружаются только у новых или измененных товаров.
Краткая выгрузка
Происходит часто, между полными, содержит только изменения по ценам и остаткам.
Полная принудительная выгрузка
Тоже самое, что и полная выгрузка, только выгружаются картинки абсолютно всех товаров, в обязательном порядке.
Обычно используется только при отладке обмена.
С чего начать интеграцию c 1C
Если вы делаете новый сайт и планируете интеграцию с 1С в дальнейшем, то первым следует установить битрикс и сделать тестовый обмен. Вот, что это даст:
- Будет создан тип иблока;
- Будет создан иблок;
- Будут созданы св-ва и справочники;
- Будут созданы разделы каталога;
- Будут созданы элементы каталога;
- Будут созданы торговые предложения.
Все это вместе поможет понять, какие данные у вас уже есть и где их искать. Сразу будет понятно, чего не хватает, а что выгрузилось совсем не так, как хотелось бы.
Как завершить интеграцию
Сопоставить структуры данных на сайте со структурой в 1С — вот главная цель интеграции.
Чтобы успешно завершить интеграцию, когда у вас уже есть полностью работающий проект, с актуальными данными, то нужно добиться, чтобы выгрузка из 1С проиcходила:
- В существующий инфоблок;
- В существующие св-ва;
- В существующие разделы инфоблока;
- В существующие товары и торговые предложения;
- В существующие типы цен.
Все эти задачи решаются путем настройки одинаковых идентификаторов (XML_ID), то есть у вас должны совпадать все внешние коды на сайте с внешними кодами из 1С.
Таким образом, если вы сначала сделали сайт, а потом решили прикрутить к нему обмен с 1С, то нужно будет получить все XML_ID из 1С и обновить их на сайте (написать служебный скрипт для этих целей).
Так как на стороне 1С часто нет возможности поменять эти коды (по опыту общения с программистами 1С). Толковый 1сник может сформировать csv файл со списком разделов и кодами в 1С, далее надо обновить эти коды на сайте.
Подведем итоги
Начинать разработку сайта с настройки обмена с 1С по разным причинам не имеет смысла.
Однако, если вы заранее знаете, что вам предстоит делать интеграцию — начните с изучения файлов выгрузки и тестовой выгрузки на сайт «как есть».
Чем раньше вы поймете, что предстоит дорабатывать в обмене, чтобы все работало как надо, тем лучше.
Скоро я планирую подготовить статьи по отладке выгрузки и кастомизации. Не переключайтесь.
Полезные ссылки
Официальная информация
- Интеграция продуктов 1С и 1С-Битрикс
- Учебный курс Интеграция с 1С — очень много всего полезного “из первых рук”
- Взаимодействие учетной системы с сайтом
- Протокол обмена между системой 1С:Предприятие» и сайтом
- Типичные ошибки и проблемы при интеграции
- Форум «Интеграция с 1С»
Видеоролики
Полезные статьи
- Интеграция сайта с 1С риски и немного реальности
- Интеграция Битрикса с лысым чертом
- Интеграция с 1C — готовьте напильник
Как выгрузить справочник из 1С в инфоблок сайта на Битрикс?
Добрый день.
Понимаю, что вопрос не нов, но думаю, что может у кого-то появились идеи решения или новые возможности платформ. Есть необходимость выгрузки справочников из 1С Предприятия (УТ 11.2) в инфоблоки на сайте на Битриксе. Есть идеи как это возможно сделать? Сейчас выгрузка возможна только в hl-блоки, но у них нет удобных инструментов для работы и поэтому необходимо выгрузить в инфоблоки. Возможно есть инструмент для конветации hl-блока в инфоблок?- Вопрос задан более трёх лет назад
- 1436 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 2

Алексей Емельянов @babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
Вот здесь описано что 1С может публиковать наружу веб-сервис с нужными данными, полагаю что можно на стороне битрикса повесить на крон скрипт, который будет с определенной частотой забирать опубликованные данные и сохранять их в ИБ
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Производитель в HL блок
Выгружается.
1. В настройке узла обмена с сайтом на вкладке «Основные настройки» ставим галку «Обмен пользовательскими справочниками» (появляется вкладка «Обмен польз. справочников)
2. Переходим на вкладку «Обмен польз. справочников».
3. Жмем кнопку «Добавить».
4. Выбираем справочник «Производители».
5. В нижнем окне галками «Выгружаемо» указываем какие поля справочника выгружать.
6. Ставим галки «Выгружать как строка», чтобы выгрузились значения справочника как строка, в противном случае выгрузится код.
Все. При обмене с сайтом данный справочник выгрузится в Highload-блок.Посетитель
Сообщений: 44 Баллов: 4 Регистрация: 05.06.2014
21.05.2015 09:36:30
Заглянувший
Сообщений: 20 Баллов: 1 Регистрация: 02.04.2014
21.05.2015 20:45:50Спасибо, но я так понимаю, что производители просто выгрузятся в HL инфоблок, а элементу каталога не установится свойство типа справочник из данного HL блока?
Сообщений: 896 Баллов: 74 Регистрация: 27.06.2011
21.05.2015 21:33:56
Посетитель
Сообщений: 44 Баллов: 4 Регистрация: 05.06.2014
22.05.2015 07:18:16
Свойство «Производитель» у элементов будет «Список».
Заглянувший
Сообщений: 20 Баллов: 1 Регистрация: 02.04.2014
23.05.2015 20:11:51Цитата Станислав Шашалевич написал:
Данное решение поможет решить все ваши вопросы: http://marketplace.1c-bitrix.ru/solutions/sns.tools1c/Спасибо, видел. Слишком дороговато для моей задачи. Реализовал путем обработки события. Создал доп.свойство, которое заполняется данными из свойства «Производитель». Модуль «интеграция с 1с» тоже не пригодился, остался на родном обмене.
Посетитель
Сообщений: 63 Баллов: 5 Регистрация: 19.04.2015
06.03.2016 20:53:26Всем, кого мучает этот вопрос!
В модуле обмена 6, в выгружаемых свойствах ставим галочку напротив свойства для выгрузки соответствующего свойства в hl-блок.Всё, больше ничего делать не нужно! Свойство будет выгружено как справочник. Если вы выгрузите это свойство ещё и через «Обмен польз. справочников» то свойство так и останется списком.
Заглянувший
Сообщений: 10 Регистрация: 25.12.2015
17.03.2016 17:22:50Евгений, подскажите, пожалуйста. Использую 5 модуль обмена. Там так же можно поставить галочку Выгружать в hl-блоки. Но на сайт они не выгружаются. В чем может быть причина?
Заглянувший
Сообщений: 8 Регистрация: 26.08.2015
26.03.2018 20:31:15Цитата Александр Дежурко написал:
Выгружается. 1. В настройке узла обмена с сайтом на вкладке «Основные настройки» ставим галку «Обмен пользовательскими справочниками» (появляется вкладка «Обмен польз. справочников)2. Переходим на вкладку «Обмен польз. справочников».3. Жмем кнопку «Добавить».4. Выбираем справочник «Производители».5. В нижнем окне галками «Выгружаемо» указываем какие поля справочника выгружать. 6. Ставим галки «Выгружать как строка», чтобы выгрузились значения справочника как строка, в противном случае выгрузится код.Все. При обмене с сайтом данный справочник выгрузится в Highload-блок.Где это в модуле 1С-Битрикс?
Страницы: 1Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве +7 (495) 229-14-41 Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507

© 2001-2024 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Соглашение об использовании сайта
Форум
Номенклатура имеет дополнительный реквизит «размер» типа «Справочник.Размеры». Если для свойства «Размер» устанавливаю флажок «Выгружать в HL-справочники», то в Highload-блоке получаю список. Но мне в Highload-блоке нужны все поля справочника «Размеры». Если дополнительно включаю выгрузку пользовательского справочника «Размеры», то получаю два Highload-блока: RAZMER (для дополнительного реквизита «размер») и razmery (для справочника «Размеры»).
Подскажите, как выгрузить дополнительный реквизит не в список, а в справочник с необходимыми полями?
Версия УТ 11.2.3.66.
Версия модуля обмена 6.0.3.1.Заглянувший
Сообщений: 11 Регистрация: 25.06.2014
22.08.2016 14:35:32
Очень распространенная проблема, столкнулся с такой же.
На уровне HL блоков связь между справочниками устанавливается запросто, но при выгрузке из 1С связи как не бывало.Заглянувший
Сообщений: 11 Регистрация: 25.06.2014
23.08.2016 10:59:08
В Саппорт Битрикс послали лесом. Сказали что это частная логика решайте сами.
Страницы: 1
Центр поддержки
Продукты
Управление сайтом
Битрикс24
Интернет-магазин + CRM
Решения
Для интернет-магазинов
Каталог готовых решений
Внедрение
Выбрать партнера
Проверить партнера
Стать партнером
1С-Битрикс http://www.1c-bitrix.ru Общие вопросы info@1c-bitrix.ru Приобретение и лицензирование продуктов : sales@1c-bitrix.ru Маркетинг/мероприятия/PR marketing@1c-bitrix.ru Партнерская программа partners@1c-bitrix.ru Мы работаем с 10:00 до 19:00 по московскому времени. Офис в Москве 127287 Россия Московская область Москва 2-я Хуторская улица дом 38А строение 9 Офис в Калининграде +7 (4012) 51-05-64 Офис в Калининграде 236001 Россия Калининградская область Калининград Московский проспект 261 Офис в Киеве ukraine@1c-bitrix.ru Телефон в Киеве +3 (8044)221-55-33 Офис в Киеве 01033 Украина Калининградская область Киев улица Шота Руставели 39/41 офис 1507

© 2001-2024 «Битрикс», «1С-Битрикс». Работает на 1С-Битрикс: Управление сайтом. Политика конфиденциальности