Пошаговое руководство “Как добавить поле для выгрузки в модуль обмена для битрикс”
Анамнез: УПП 1.3 (Полиграфия, но не суть важно); модуль обмена 1С-Битрикс 5.0.0.5.
Допустим, нам нужно добавить в структуру XML-файла поле “Основной менеджер”. Поверхностный анализ модуля обмена дает нам информацию о том, что используется пространство имен “urn:1C.ru:commerceml_2”.
И представляется вполне логичным открыть конфигуратор в разделе XDTO-пакеты, найти схему с этим пространством имен и добавить туда необходимое поле:
Верно? НЕВЕРНО!
Собственно из-за этой моей ошибки я и пишу статью, т.к. убил достаточно много времени, пытаясь понять, почему добавленное поле в это пространство имен не добавляет поле непосредственно в создаваемом объекте.
Все дело в этой строчке:
СхемаXSD = ПланыОбмена.Б_ОбменССайтом.ПолучитьМакет(“СхемаXSDОбмена”);
А значит, схема берется не из конфигурации, а из вложенного файла. Выгружаем схему:
И открываем ее в текстовом редакторе. Находим описание объекта “Контрагент” и добавляем необходимое поле, например, скопировав для образца аналогичное:
Загружаем схему обратно и добавляем обработку заполнения этого поля, например, так:
Если ЗначениеЗаполнено(СтрокаВыборки.Контрагент.ГоловнойКонтрагент.ОсновнойМенеджерПокупателя) Тогда
XDTOКонтрагент.ОсновнойМенеджер = СтрокаВыборки.Контрагент.ГоловнойКонтрагент.ОсновнойМенеджерПокупателя.Наименование;
КонецЕсли;
Вот и все.
Спасибо статье на инфостарте за знание основ XDTO.
И да поможет Вам Нуралиев.