• +7 (495) 241-10-64 (Москва)
  • +7 (3852) 59-50-96 (Барнаул)
  • ogroup77

27.12.2016

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

Пошаговое руководство «Как добавить поле для выгрузки в модуль обмена для битрикс»

Анамнез: УПП 1.3 (Полиграфия, но не суть важно); модуль обмена 1С-Битрикс 5.0.0.5.

Допустим, нам нужно добавить в структуру XML-файла поле «Основной менеджер».  Поверхностный анализ модуля обмена дает нам информацию о том, что используется пространство имен «urn:1C.ru:commerceml_2».

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

neobhodimoe-pole

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

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

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

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

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

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

statya-xml1

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

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

Вот и все.

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

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