Работа со схемой XML в модуле обмена от Битрикс

Опубликовал Денис Шевчук (ogroup) в раздел Обмен - Обмен через XML

Пошаговое руководство «Как добавить поле для выгрузки в модуль обмена для битрикс» Анамнез: УПП 1.3 (Полиграфия, но не суть важно); модуль обмена 1С-Битрикс 5.0.0.5. Допустим, нам нужно добавить в структуру XML-файла поле «Основной менеджер». Поверхностный анализ модуля обмена дает нам информацию о том, что используется пространство имен «urn:1C.ru:commerceml_2».

И представляется вполне логичным открыть конфигуратор в разделе XDTO-пакеты, найти схему с этим пространством имен и добавить туда необходимое поле:

Верно? НЕВЕРНО!

Собственно из-за этой моей ошибки я и пишу статью. Т.к. убил достаточно много времени, пытаясь понять, почему добавленное поле в это пространство имен не добавляет поле непосредственно в создаваемом объекте.

Все дело в  этой строчке:

СхемаXSD = ПланыОбмена.Б_ОбменССайтом.ПолучитьМакет(«СхемаXSDОбмена»);

А значит, схема берется не из конфигурации, а из вложенного файла. Выгружаем схему:

И открываем ее в текстовом редакторе. Находим описание объекта «Контрагент» и добавляем необходимое поле, например скопировав для образца аналогичное:

Загружаем схему обратно и добавляем обработку заполнения этого поля, например, так:

Если ЗначениеЗаполнено(СтрокаВыборки.Контрагент.ГоловнойКонтрагент.ОсновнойМенеджерПокупателя) Тогда
XDTOКонтрагент.ОсновнойМенеджер = СтрокаВыборки.Контрагент.ГоловнойКонтрагент.ОсновнойМенеджерПокупателя.Наименование; 
КонецЕсли;

Вот и все.

Спасибо статье на инфостарте знание основ XDTO.

И да поможет вам Нуралиев.

См. также

Добавить вознаграждение
Комментарии
1. Xer shi (Xershi) 183 05.01.17 18:51 Сейчас в теме
На 4.0 нет пакета и прекрасно работает, запутали вас они просто в начале))
2. Денис Шевчук (ogroup) 60 07.01.17 12:28 Сейчас в теме
(1)
На 4.0 нет пакета и прекрасно работает, запутали вас они просто в начале))

Я не понял Ваш комментарий. Нужно добавить новое поле для выгрузки. Настроен обмен через модуль обмена от битрикса.
3. Канат Джумадылов (Fox-trot) 49 07.01.17 13:09 Сейчас в теме
(2) не парься. это просто другой алгоритм
4. Михаил Филимонов (NN2P) 207 17.02.17 12:28 Сейчас в теме
Денис, спасибо за статью. Ввиду отсутствия документации на модуль обмена от разрабов Ваша статья экономит уйму времени!Удачи Вам во всем.
5. Денис Шевчук (ogroup) 60 17.02.17 13:33 Сейчас в теме
6. Михаил Филимонов (NN2P) 207 17.02.17 13:37 Сейчас в теме
(5)Нет, я тоже в пакетах xsd менял и долго думал в чем дело, потом статью нашел.