Плоская утка

Готовые решения 1С, Внедрение и модификация "под ключ", Поддержка и сопровождение

Работа со схемой 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.

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