Перечень файлов участвующих в обменах
Не смотря на то, что на момент написания статьи (2018 год) современные версии модуля обмена данных способна выгружать 8 различных по назначению файлов, основными остались, хорошо нам известные, импорт и офферс, остальные файлы могут и не выгружаться, все зависит от настроек 1С, но я постараюсь детально рассмотреть все типы файлов выгрузки из 1С. В выгрузке присутствуют следующие файлы:- import.xml - содержит данные о товарах, категориях (группах), типах цен, складах, свойствах товаров и единицах измерения;
- offers.xml - содержит данные о предложениях товаров (SKU/Характеристиках) и их свойствах;
- orders.xml - содержит данные о заказах;
- prices.xml - содержит данные о ценах предложений перечисленных в offers.xml;
- rests.xml - содержит данные о фактических остатках торговых предложений перечисленных в offers.xml;
- documents.xml - содержит информацию о документах прикрепленных к товарам;
- contragents.xml - содержит информацию о контрагентах;
- references.xml - содержит информацию о пользовательских справочниках затронутых в import.xml .
Файлы documents.xml, contragents.xml, references.xml используются крайне редко и структура их не слишком сложная для понимания, по этой причине не будем останавливаться на них, а лучше рассмотрим остальные файлы без которых обмен данными практически невозможен.
Ообмен между 1С и Битрикс "Управление сайтом" происходит при помощи обмена файлами в формате XML построенными на основе CommerceML 2.xx. Все файлы выгружаются из 1с в папку на сайте /upload/1c_catalog/. Начнем рассматривать примеры файлов выгрузки в порядке очереди их обработки сайтом в момент обмена.
import.xml
Первый файл выгружаемый 1с на сайт. Хранит все данные основного каталога товаров. Пример файла приведен ниже.
<КоммерческаяИнформация ВерсияСхемы="2.09" ДатаФормирования="2018-06-26T18:28:09"> <Каталог СодержитТолькоИзменения="true"> <Ид>12345678-ABCD-123A-4567-8910E1234DF5</Ид> <ИдКлассификатора>12345678-ABCD-123A-4567-8910E1234DF5</ИдКлассификатора> <Наименование>Каталог товаров</Наименование> <Товары> <Товар> <Ид>XML-ID - Товара A</Ид> <НомерВерсии>AAAAAQAAAHI=</НомерВерсии> <ПометкаУдаления>false</ПометкаУдаления> <Штрихкод/> <Артикул/> <Наименование>Название товара</Наименование> <БазоваяЕдиница>10</БазоваяЕдиница> <Группы> <Ид>XML-ID - Категории товара</Ид> </Группы> <Описание/> <Страна/> <ЗначенияСвойств> <ЗначенияСвойства> <Ид>XML-ID - Свойства A</Ид> <Значение/> </ЗначенияСвойства> <ЗначенияСвойства> <Ид>XML-ID - Свойства B</Ид> <Значение/> </ЗначенияСвойства> <ЗначенияСвойства> <Ид>XML-ID - Свойства C</Ид> <Значение/> </ЗначенияСвойства> </ЗначенияСвойств> <СтавкиНалогов> <СтавкаНалога> <Наименование>НДС</Наименование> <Ставка>12</Ставка> </СтавкаНалога> </СтавкиНалогов> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры</Наименование> <Значение>Материал</Значение> </ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>ТипНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> </ЗначенияРеквизитов> <Вес>0</Вес> </Товар> </Товары> <Описание>Описание каталога</Описание> </Каталог> </КоммерческаяИнформация>
Расшифровка элементов XML файла import.xml
Не зависимо от типа файла он будет содержать в структуре ряд общих элементов и ряд уникальных, присущих только данному виду файла. К общим элементам относятся:
<КоммерческаяИнформация> - Верховный элемент в который входят все остальные. Содержит версию схемы обмена, дату формирования и иную служебную информацию.
<ПакетПредложений> - Содержит данные о предложениях.
<Ид> - Уникальный идентификатор пакета предложений. Обязательно наличие символа # для связи с инфоблоком товаров.
<Наименование> - Название.
<ИдКаталога> - Уникальный идентификатор каталога, пакет предложений которого прислан.
<ИдКлассификатора> - Уникальный идентификатор классификатора, который относится к пакету предложений.
<Предложения> - Головной элемент информации о предложениях товаров.
<Предложение> - Элемент содержит данные отдельного предложения элемента.
<Ид> - Идентификатор предложения. В отдельных случаях может иметь формат: <ид_товара>#<ид_элемента>
Уникальные для файла импорта:
<Группы> - Элемент содержит информацию о группах (разделах) товаров.<Группа> - Элемент содержит описание группы элемента.
<Ид> - Уникальный идентификатор группы (раздела).
<НомерВерсии> - Номер версии элемента группы (раздела).
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование группы (раздела).
<Группы> - Подчиненный элемент, который хранит информацию о подчиненных группах.
<Свойства> - Элемент содержит информацию о свойствах товаров.
<Свойство> - Элемент содержит описание свойства элемента.
<Ид> - Уникальный идентификатор свойства.
<НомерВерсии> - Номер версии свойства.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование свойства.
<Ид> - Уникальный идентификатор товара.
<НомерВерсии> - Номер версии товара.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Артикул> - Артикул товара.
<Наименование> - Наименование товара.
<Описание> - Описание товара, попадающее в подробное описание товара.
<Картинка> - Элемент содержит информацию о картинках товара. Первый элемент является основной картинкой.
<БазоваяЕдиница> - Единица измерения товара.
<Группы> - Элемент содержит информацию о группах (разделах), в которых товар находится.
<Ид> - Идентификатор группы (раздела) товара.
<Изготовитель> - Элемент содержит информацию о изготовителе товара.
<Вес> - Вес товара.
<Ид> - Идентификатор изготовителя.
<Наименование> - Наименование производителя.
<ОфициальноеНаименование> - Официальное наименование производителя.
<ЗначенияСвойств> - Элемент содержит информацию о свойствах товаров.
<ЗначенияСвойства> - Элемент содержит описание свойства товара.
<Ид> - Идентификатор свойства.
<Значение> - Значение свойства.
<СтавкиНалогов> - Элемент содержит информацию о налогах товаров.
<СтавкаНалога> - Элемент содержит описание налога товара.
<Наименование> - Наименование налога.
<Ставка> - Ставка налога.
<ЗначенияРеквизитов> - Элемент содержит информацию о дополнительных данных товара. Есть предопределенные значения:
- Файл - содержит информацию о местонахождении приложенного файла;
- ОписаниеФайла - описание файла или картинки. Формат: <адрес картинки>#<описание>;
- Вес - вес товара;
- ОписаниеВФорматеHTML - содержит описание товара в формате HTML;
- Полное наименование - информация о анонсе товара.
<Наименование> - Наименование реквизита.
<Значение> - Значение реквизита.
Возможные дополнительные элементы:
<ТипыЦен> - Элемент содержит информацию о типах цен товаров.
<ТипЦены> - Элемент содержит описание типа цены элемента.
<Ид> - Уникальный идентификатор типа цены.
<НомерВерсии> - Номер версии типа цены.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование типа цены. Наименование типа цены должно быть уникально, иначе новое не добавится.
<Валюта> - Валюта типа цены.
<Налог> - Описание налогов для типа цены.
<Наименование> - Наименование налога.
<УчтеноВСумме> - Признак того, включен ли налог в стоимость товара.
<Склады> - Элемент содержит информацию о складах товаров.
<Склад> - Элемент содержит описание склада элемента.
<Ид> - Уникальный идентификатор склада.
<НомерВерсии> - Номер версии склада.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование склада.
offers.xml
После обновления модуля обмена в этом файле представлена только основная информация относящаяся только к самим элементам, а цены, остатки и пр. вынесены в отдельные файлы. Пример файла приведен ниже
<КоммерческаяИнформация ВерсияСхемы="2.09" ДатаФормирования="2018-06-26T18:28:09"> <ПакетПредложений СодержитТолькоИзменения="true"> <Ид>12345678-ABCD-123A-4567-8910E1234DF5#</Ид> <Наименование>Пакет предложений</Наименование> <ИдКаталога>12345678-ABCD-123A-4567-8910E1234DF5</ИдКаталога> <ИдКлассификатора>12345678-ABCD-123A-4567-8910E1234DF5</ИдКлассификатора> <Предложения> <Предложение> <Ид>XML-ID - SKU - Предложения A</Ид> <НомерВерсии>oQAAAAE=</НомерВерсии> <ПометкаУдаления>false</ПометкаУдаления> <Наименование>Название предложения - Например цвет - Белый</Наименование> <ХарактеристикиТовара/> <ЗначенияСвойств> <ЗначенияСвойства> <Ид>XML-ID - Свойства А</Ид> <Значение>XML-ID - Значения B свойства А</Значение> </ЗначенияСвойства> </ЗначенияСвойств> </Предложение> <Предложение> <Ид>XML-ID - SKU - Предложения B</Ид> <НомерВерсии>oAAAAAEAAAA=</НомерВерсии> <ПометкаУдаления>false</ПометкаУдаления> <Наименование>Название предложения - Например цвет - Бежевый</Наименование> <ХарактеристикиТовара/> <ЗначенияСвойств> <ЗначенияСвойства> <Ид>XML-ID - Свойства А</Ид> <Значение>XML-ID - Значения С свойства А</Значение> </ЗначенияСвойства> </ЗначенияСвойств> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация>
Расшифровка элементов XML файла offers.xml
<НомерВерсии> - Номер версии предложения.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<ЗначенияСвойств> - Элемент содержит информацию о свойствах предложений.
<ЗначенияСвойства> - Элемент свойства предложения.
<Ид> - Идентификатор предложения.
<Значение> - Значение предложения.
Возможные дополнительные элементы:
<Свойства> - Элемент содержит информацию о свойствах товаров.
<Свойство> - Элемент содержит описание свойства элемента.
<Ид> - Уникальный идентификатор свойства.
<НомерВерсии> - Номер версии свойства.
<ПометкаУдаления> - Признак того, что элемент должен быть деактивирован.
<Наименование> - Наименование свойства.
<Внешний> - Признак того, что свойство типа справочник и должно хранится в highload-инфоблоке. Если хранит файл или изображение должен принимать значение true.
<Информационное> - Признак того, что свойство влияет на цену.
<ТипЗначений> - Тип значения свойства. Тип значения может быть: Строка, Число, Время, Справочник.
<ВариантыЗначений> - Элемент содержит информацию о вариантах значений, если тип свойства Справочник.
<Справочник> - Элемент содержит описание варианта значений свойства.
<ИдЗначения> - Идентификатор варианта значения свойства.
<Значение> - Значение варианта значения свойства.
<Картинка> - Адрес файла изображения, если значение свойства хранит картинку.
<Штрихкод> - Штрих-код предложения.
<ХарактеристикиТовара> - Элемент содержит информацию о строковых свойствах предложений.
<ХарактеристикаТовара> - Элемент множественного строкового свойства предложений.
<Наименование> - Наименование свойства.
<Значение> - Значение.
<Комплектующие> - Элемент содержит информацию о комплектующих предложениях.
<Комплектующее> - Элемент, содержащий информацию о комплектующем предложении.
<Ид> - Идентификатор комплектующего.
<Наименование> - Наименование комплектующего.
<Количество> - Количество товара.
<ЗначенияРеквизитов> - Элемент содержит информацию о дополнительных данных в предложениях.
<ЗначениеРеквизита> - Элемент содержит описание дополнительной информации товара.
<Наименование> - Наименование реквизита.
<Значение> - Значение реквизита.
prices.xml
Файл содержит информацию о текущих ценах предложений в разрезе всех типов цен на сайте. Пример файла приведен ниже
<КоммерческаяИнформация ВерсияСхемы="2.09" ДатаФормирования="2018-06-26T18:28:09"> <ПакетПредложений СодержитТолькоИзменения="true"> <Ид>12345678-ABCD-123A-4567-8910E1234DF5#</Ид> <Наименование>Пакет предложений</Наименование> <ИдКаталога>12345678-ABCD-123A-4567-8910E1234DF5</ИдКаталога> <ИдКлассификатора>12345678-ABCD-123A-4567-8910E1234DF5</ИдКлассификатора> <Предложения> <Предложение> <Ид>XML-ID - SKU - Предложения</Ид> <Цены> <Цена> <Представление>15 155 грн за шт</Представление> <ИдТипаЦены>XML-ID - Типа цены А</ИдТипаЦены> <ЦенаЗаЕдиницу>15155</ЦенаЗаЕдиницу> <Валюта>UAH</Валюта> </Цена> <Цена> <Представление>30 300 руб за шт</Представление> <ИдТипаЦены>XML-ID - Типа цены В</ИдТипаЦены> <ЦенаЗаЕдиницу>30300</ЦенаЗаЕдиницу> <Валюта>руб</Валюта> </Цена> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация>
Расшифровка элементов XML файла prices.xml
Расшифровка элементов XML
<Цены> - Элемент содержит информацию о ценах предложения товара.
<Цена> - Элемент содержит описание цены предложения товара.
<Представление> - Представление цены (на сайте не используется).
<ИдТипаЦены> - Уникальный идентификатор (внешний код) - типа цены.
<ЦенаЗаЕдиницу> - Цена за единицу товара. <Валюта> - Валюта цены.
rests.xml
Файл передает остатки товаров на складах, именно этим файлом заканчивается процедура и только он остается в папке обмена до следующего сеанса связи (если вы не настроили сохранение всех переданых файлов на стороне сайта Отладка обмена с 1с (сохранение файлов обмена)) . Пример файла приведен ниже
<КоммерческаяИнформация ВерсияСхемы="2.09" ДатаФормирования="2018-06-26T18:28:09"> <ПакетПредложений СодержитТолькоИзменения="true"> <Ид>12345678-ABCD-123A-4567-8910E1234DF5#</Ид> <Наименование>Пакет предложений</Наименование> <ИдКаталога>12345678-ABCD-123A-4567-8910E1234DF5</ИдКаталога> <ИдКлассификатора>12345678-ABCD-123A-4567-8910E1234DF5</ИдКлассификатора> <Предложения> <Предложение> <Ид>XML-ID - SKU - Предложения</Ид> <Остатки> <Остаток> <Склад> <Ид>XML-ID - Склада</Ид> <Количество>1</Количество> </Склад> </Остаток> </Остатки> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация>
Расшифровка элементов XML файла rests.xml
Расшифровка элементов XML
<Остаток> - Элемент содержит данные об остатках отдельного предложения в разрезе складов.
<Количество> - Остаток по всем складам.
<Склад> - Данные о складе и остатке предложения на нем.
<Ид> - Уникальный идентификатор склада.
<Количество> - Остаток предложения в разрезе склада.
orders.xml
Файл с данными заказов. Бывает двух видов - сформированный на стороне сайта и забираемый 1С и сформированный 1С и отправляющий на сайт информацию о изменениях в заказах в случае их проведения на стороне 1С после прошлого обмена. В частности, текущий статус заказа после ухода с сайта в 1С.
Для просмотра файла на стороне сайта в том же виде, в котором его увидит 1С достаточно авторизоваться пользователем (группе которого доступны операции обмена с 1С ) и перейти на страницу:
http://ВАШ_САЙТ/bitrix/admin/1c_exchange.php?type=sale&mode=query#authorize