|
запись XML 1С | ☑ | ||
---|---|---|---|---|
0
makkut
27.07.18
✎
10:59
|
пытаюсь заполнить циклом файл XML. В Итоге 1С ругается на Ошибочный порядок записи XML
Хочу получить вот так. КТо объяснит как обойти ошибку? <СведТов НомСтр="1" НаимТов="товар1" ОКЕИ_Тов="796 " КолТов="1 000" ЦенаТов="203,39" СтТовБезНДС="203 389,83" НалСт="18%" СтТовУчНал="240 000,00"/> <СведТов НомСтр="2" НаимТов="товар2" ОКЕИ_Тов="796 " КолТов="5" ЦенаТов="50,00" СтТовБезНДС="250,00" НалСт="18%" СтТовУчНал="295,00"/> Для каждого СтрДанных Из ЭкземплярДанныхДляПечати.ТабличнаяЧасть Цикл НомерСтроки = НомерСтроки + 1; Файл.ЗаписатьНачалоЭлемента("СведТов"); Файл.ЗаписатьАтрибут("НомСтр", Строка(НомерСтроки)); Файл.ЗаписатьАтрибут("НаимТов", Строка(СтрДанных.Товар)); Файл.ЗаписатьАтрибут("ОКЕИ_Тов", Строка(СтрДанных.ЕдиницаИзмеренияКод)); Файл.ЗаписатьАтрибут("КолТов", Строка(СтрДанных.Количество)); Файл.ЗаписатьАтрибут("ЦенаТов", Строка(Формат(СтрДанных.Цена, "ЧДЦ=2"))); Файл.ЗаписатьАтрибут("СтТовБезНДС", Строка(Формат(СтрДанных.Сумма, "ЧДЦ=2"))); Файл.ЗаписатьАтрибут("НалСт", Строка(Формат(СтрДанных.СтавкаНДС,"ЧДЦ=2"))); Файл.ЗаписатьАтрибут("СтТовУчНал", Строка(Формат(СтрДанных.СуммаНДС + СтрДанных.Сумма,"ЧДЦ=2"))); Файл.ЗаписатьКонецЭлемента() ; Файл.ЗаписатьКонецЭлемента() ; КонецЦикла; {ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Форма(368)}: Ошибка при вызове метода контекста (ЗаписатьКонецЭлемента) Файл.ЗаписатьКонецЭлемента() ; по причине: Ошибочный порядок записи XML |
|||
1
sechs
27.07.18
✎
11:03
|
А какого результата ты хочешь добится, записывая одно начало элемента и два конца?
|
|||
2
makkut
27.07.18
✎
11:21
|
(1) там опечатался , одиф фиг ругается
|
|||
3
sechs
27.07.18
✎
11:24
|
(2) > одиф фиг
Отсюжу ен фидно |
|||
4
Ботаник Гарден Меран
27.07.18
✎
11:27
|
Добавь корневой элемент.
|
|||
5
makkut
27.07.18
✎
11:33
|
(4) корневой элемент есть выше не скопировал его просто сюда
Файл.ЗаписатьНачалоЭлемента("ТаблСчФакт"); |
|||
6
Ботаник Гарден Меран
27.07.18
✎
11:36
|
Сколько еще кусочков не "скопировано сюда" ?
|
|||
7
makkut
27.07.18
✎
11:38
|
(6) когда отдельно корень и элементы вывожу всё норм, походу с остальными перемудрил ....
|
|||
8
makkut
27.07.18
✎
11:40
|
все нашёл причину лишняя строчка была в коде Файл.ЗаписатьКонецЭлемента() (не в самом цикле)
|
|||
9
echo77
27.07.18
✎
15:18
|
Если нужно просто писануть объект в XML, то вот самое простое:
// Процедура выполняет сериализацию переданного объекта в указанный XML-файл // // Параметры: // ОбъектСериализации - Произвольный - произвольный объект, который может быть сериализован // например Массив, СписокЗначений(читать справку) // ИмяФайла - Строка - полное имя файла, в который будет записан // сериализованный объект // Процедура СериализоватьОбъектВXML(ОбъектСериализации, ИмяФайла) ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл(ИмяФайла); ЗаписьXML.ЗаписатьОбъявлениеXML(); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ОбъектСериализации); ЗаписьXML.Закрыть(); КонецПроцедуры |
|||
10
Вафель
27.07.18
✎
15:19
|
(9) у объекта может быть слишком много реквизитов, чтоб их все выгружать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |