конст ПространствоИмен = "urn::my.test.company"
конст Префикс = "ns"
метод ЗаписатьXmlТовары(Товары: СтруктураТовары): Строка
исп ПотокЗаписи = новый СтроковыйПотокЗаписи()
знч НастройкиЗаписиXml = новый НастройкиЗаписиXml()
НастройкиЗаписиXml.ДобавлятьОтступы = Ложь
знч ЗаписьXml = новый ЗаписьXml(ПотокЗаписи, НастройкиЗаписиXml)
ЗаписьXml.ЗаписатьНачалоДокумента()
ЗаписьXml.ЗаписатьНачалоЭлемента(Префикс + ":Товары")
ЗаписьXml.ЗаписатьСоответствиеПространстваИмен(Префикс, ПространствоИмен)
ЗаписатьЗаголовок(Товары.Заголовок, ЗаписьXml)
Товары.Товары.ДляКаждого(Товар -> ЗаписатьТовар(Товар, ЗаписьXml))
ЗаписьXml.ЗаписатьКонецДокумента()
возврат ПотокЗаписи.ВСтроку()
;
метод ЗаписатьЗаголовок(Заголовок: СтруктураЗаголовок, ЗаписьXml: ЗаписьXml)
ЗаписьXml
.ЗаписатьНачалоЭлемента("Заголовок")
.ЗаписатьНачалоЭлемента("ИдВыгрузки")
.ЗаписатьУуид(Заголовок.ИдВыгрузки)
.ЗаписатьКонецЭлемента()
.ЗаписатьНачалоЭлемента("МоментВыгрузки")
.ЗаписатьМомент(Заголовок.МоментВыгрузки)
.ЗаписатьКонецЭлемента()
.ЗаписатьНачалоЭлемента("ДанныеОтправителяXml")
.ЗаписатьСекциюCData(Заголовок.ДанныеОтправителяXml)
.ЗаписатьКонецЭлемента()
.ЗаписатьКонецЭлемента()
;
метод ЗаписатьТовар(Товар: СтруктураТовар, ЗаписьXml: ЗаписьXml)
ЗаписьXml
.ЗаписатьНачалоЭлемента("Товар")
.ЗаписатьАтрибут("Ид", Товар.Ид)
.ЗаписатьАтрибут("Наименование", Товар.Наименование)
.ЗаписатьАтрибут("Группа", Товар.Группа)
ЗаписатьПроизводитель(Товар.Производитель, ЗаписьXml)
ЗаписатьХарактеристики(Товар.Характеристики, ЗаписьXml)
ЗаписьXml.ЗаписатьКонецЭлемента()
;
метод ЗаписатьПроизводитель(Производитель: СтруктураПроизводитель, ЗаписьXml: ЗаписьXml)
ЗаписьXml
.ЗаписатьНачалоЭлемента("Производитель")
.ЗаписатьАтрибут("Наименование", Производитель.Наименование)
если Производитель.Страна != Неопределено
ЗаписьXml.ЗаписатьАтрибут("Страна", Производитель.Страна)
;
если Производитель.Штрихкод != Неопределено
ЗаписьXml.ЗаписатьАтрибутЧисло("Штрихкод", Производитель.Штрихкод)
;
ЗаписьXml.ЗаписатьКонецЭлемента()
;
метод ЗаписатьХарактеристики(Характеристики: Соответствие<Строка, Строка>?, ЗаписьXml: ЗаписьXml)
если Характеристики != Неопределено и Характеристики.Размер() > 0
ЗаписьXml.ЗаписатьКомментарий("Необязательный элемент")
ЗаписьXml.ЗаписатьНачалоЭлемента("Характеристики")
Характеристики.ДляКаждого((Элемент) ->
ЗаписьXml
.ЗаписатьНачалоЭлемента("Характеристика")
.ЗаписатьАтрибут("Имя", Элемент.Ключ)
.ЗаписатьАтрибут("Значение", Элемент.Значение)
.ЗаписатьКонецЭлемента())
ЗаписьXml.ЗаписатьКонецЭлемента()
;
;