![]() |
![]() |
![]() |
|
Ошибка при создании XML файла ЗаписатьНачалоЭлемента | ☑ | ||
---|---|---|---|---|
0
skupidom
16.02.18
✎
17:45
|
При создании XML файла ошибка:
{ОбщийМодуль.рар_Обмен.Модуль(1032)}: Ошибка при вызове метода контекста (ЗаписатьНачалоЭлемента) ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentObject.ПоступлениеТоваровУслуг.Вручную"); по причине: Ошибочный порядок записи XML Гружу 2 документа 1 вида Вот мой код: ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentObject.ПоступлениеТоваровУслуг.Вручную"); ЗаписатьXML(ЗаписьXML, Данные.Ссылка, "Ref", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Данные.Номер, "Номер", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Данные.Дата, "Дата", НазначениеТипаXML.Явное); ЗаписатьXMLВалюты(ЗаписьXML, Данные.ВалютаДокумента); ЗаписатьXML(ЗаписьXML, Данные.ВидОперации, "ВидОперации", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Данные.ВидПоступления, "ВидыПоступленияТоваров", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Данные.ДатаВходящегоДокумента, "ДатаВходящегоДокумента", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Данные.Комментарий, "Комментарий", НазначениеТипаXML.Явное); ЗаписатьXMLКонтрагенты(ЗаписьXML, Данные.Контрагент); ЗаписатьXMLДоговорыКонтрагентов(ЗаписьXML, Данные.ДоговорКонтрагента); ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, Данные.Подразделение, "Подразделения"); ЗаписатьXML(ЗаписьXML, Данные.СуммаДокумента, "СуммаДокумента", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Данные.Ссылка) + " от " + Строка(Формат(Данные.Дата, "ДЛФ=Д")), "Представление", НазначениеТипаXML.Явное); Если ВерсияОбмена<>"1" Тогда //Прикрепления Прикрепление=Прикрепления.Найти(Данные.Ссылка,"Объект"); Если Прикрепление=Неопределено Тогда ЗаписатьXML(ЗаписьXML, Ложь, "ЕстьПрикрепления", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, "", "НаименованиеПрикрепления", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, "", "ИмяВХранилище", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, "", "УИДЦБ", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, 0, "Размер", НазначениеТипаXML.Явное); Иначе ЗаписатьXML(ЗаписьXML, Истина, "ЕстьПрикрепления", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Прикрепление.Наименование, "НаименованиеПрикрепления", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Прикрепление.ИмяВХранилище, "ИмяВХранилище", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Строка(Прикрепление.Ссылка.УникальныйИдентификатор()), "УИДЦБ", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, Прикрепление.Размер, "Размер", НазначениеТипаXML.Явное); КонецЕсли; // ЗаписатьXML(ЗаписьXML, Строка(Данные.Ответственный), "Автор", НазначениеТипаXML.Явное); КонецЕсли; ТЧ=Данные.Оборудование.Выгрузить(); ТЧ.Сортировать("рар_Заказ,Номенклатура"); ПредЗаказ=""; Для Каждого СтрокаТЧ Из ТЧ Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Оборудование.Вручную"); Если ВерсияОбмена<>"1" Тогда ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.ЕдиницаИзмерения), "ЕдиницаИзмерения", НазначениеТипаXML.Явное); Иначе ЗаписатьXMLСправочникСсылкаИНаименование(ЗаписьXML, СтрокаТЧ.ЕдиницаИзмерения, "ЕдиницыИзмерения"); КонецЕсли; ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Количество, "Количество", НазначениеТипаXML.Явное); Если ВерсияОбмена<>"1" Тогда ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.Номенклатура), "Номенклатура", НазначениеТипаXML.Явное); Иначе ЗаписатьXMLНоменклатура(ЗаписьXML, СтрокаТЧ.Номенклатура); КонецЕсли; ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Сумма, "Сумма", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Цена, "Цена", НазначениеТипаXML.Явное); Если ВерсияОбмена<>"1" Тогда ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.рар_ВидРабот), "рар_ВидРабот", НазначениеТипаXML.Явное); Иначе ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, СтрокаТЧ.рар_ВидРабот, "рар_ВидыРабот"); КонецЕсли; Если ВерсияОбмена<>"1" Тогда Если ТипЗнч(СтрокаТЧ.рар_Заказ)=Тип("ДокументСсылка.ВнутреннийЗаказ") И ЗначениеЗаполнено(СтрокаТЧ.рар_Заказ) Тогда Если СтрокаТЧ.рар_Заказ<>ПредЗаказ Тогда ЗаписатьXMLВнутреннийЗаказ(ЗаписьXML, СтрокаТЧ.рар_Заказ, Карты,Прикрепления,ВерсияОбмена); ПредЗаказ=СтрокаТЧ.рар_Заказ; Иначе ЗаписатьXML(ЗаписьXML, "УстановленоРанее", "рар_Заказ", НазначениеТипаXML.Явное); КонецЕсли; Иначе ЗаписатьXML(ЗаписьXML, "", "рар_Заказ", НазначениеТипаXML.Явное); КонецЕсли; КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; ТЧ=Данные.Товары.Выгрузить(); ТЧ.Сортировать("Заказ,Номенклатура"); Для Каждого СтрокаТЧ Из ТЧ Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Товары.Вручную"); Если ВерсияОбмена<>"1" Тогда ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.ЕдиницаИзмерения), "ЕдиницаИзмерения", НазначениеТипаXML.Явное); Иначе ЗаписатьXMLСправочникСсылкаИНаименование(ЗаписьXML, СтрокаТЧ.ЕдиницаИзмерения, "ЕдиницыИзмерения"); КонецЕсли; ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Количество, "Количество", НазначениеТипаXML.Явное); Если ВерсияОбмена<>"1" Тогда ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.Номенклатура), "Номенклатура", НазначениеТипаXML.Явное); Иначе ЗаписатьXMLНоменклатура(ЗаписьXML, СтрокаТЧ.Номенклатура); КонецЕсли; ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Сумма, "Сумма", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Цена, "Цена", НазначениеТипаXML.Явное); Если ВерсияОбмена<>"1" Тогда ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.рар_ВидРабот), "рар_ВидРабот", НазначениеТипаXML.Явное); Иначе ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, СтрокаТЧ.рар_ВидРабот, "рар_ВидыРабот"); КонецЕсли; Если ВерсияОбмена<>"1" Тогда Если ТипЗнч(СтрокаТЧ.Заказ)=Тип("ДокументСсылка.ВнутреннийЗаказ") И ЗначениеЗаполнено(СтрокаТЧ.Заказ) Тогда Если СтрокаТЧ.Заказ<>ПредЗаказ Тогда ЗаписатьXMLВнутреннийЗаказ(ЗаписьXML, СтрокаТЧ.Заказ, Карты,Прикрепления,ВерсияОбмена); ПредЗаказ=СтрокаТЧ.Заказ; Иначе ЗаписатьXML(ЗаписьXML, "УстановленоРанее", "Заказ", НазначениеТипаXML.Явное); КонецЕсли; Иначе ЗаписатьXML(ЗаписьXML, "", "Заказ", НазначениеТипаXML.Явное); КонецЕсли; КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; ТЧ=Данные.Услуги.Выгрузить(); ТЧ.Сортировать("Заказ,Номенклатура"); Для Каждого СтрокаТЧ Из Данные.Услуги Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Услуги.Вручную"); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Количество, "Количество", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Сумма, "Сумма", НазначениеТипаXML.Явное); Если ВерсияОбмена<>"1" Тогда ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.Номенклатура), "Номенклатура", НазначениеТипаXML.Явное); Иначе ЗаписатьXMLНоменклатура(ЗаписьXML, СтрокаТЧ.Номенклатура); КонецЕсли; ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Цена, "Цена", НазначениеТипаXML.Явное); Если ВерсияОбмена<>"1" Тогда ЗаписатьXML(ЗаписьXML, Строка(СтрокаТЧ.рар_ВидРабот), "рар_ВидРабот", НазначениеТипаXML.Явное); Иначе ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, СтрокаТЧ.рар_ВидРабот, "рар_ВидыРабот"); КонецЕсли; Если ВерсияОбмена<>"1" Тогда Если ТипЗнч(СтрокаТЧ.Заказ)=Тип("ДокументСсылка.ВнутреннийЗаказ") И ЗначениеЗаполнено(СтрокаТЧ.Заказ) Тогда Если СтрокаТЧ.Заказ<>ПредЗаказ Тогда ЗаписатьXMLВнутреннийЗаказ(ЗаписьXML, СтрокаТЧ.рар_Заказ, Карты,Прикрепления,ВерсияОбмена); ПредЗаказ=СтрокаТЧ.рар_Заказ; Иначе ЗаписатьXML(ЗаписьXML, "УстановленоРанее", "Заказ", НазначениеТипаXML.Явное); КонецЕсли; Иначе ЗаписатьXML(ЗаписьXML, "", "Заказ", НазначениеТипаXML.Явное); КонецЕсли; КонецЕсли; ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; Если ВерсияОбмена<>"1" Тогда Карта=Карты.НайтиСтроки(Новый Структура("Документ",Данные.Ссылка)); Для каждого СтрокаТЧ из Карта Цикл ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ЗаказПоставщику.Карта.Вручную"); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Уровень, "Уровень", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Ответственный, "Ответственный", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.СостояниеУровня, "СостояниеУровня", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Комментарий, "Комментарий", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Исполнитель, "Исполнитель", НазначениеТипаXML.Явное); ЗаписатьXML(ЗаписьXML, СтрокаТЧ.ДатаВыполнения, "ДатаВыполнения", НазначениеТипаXML.Явное); ЗаписьXML.ЗаписатьКонецЭлемента(); КонецЦикла; КонецЕсли; // Записываем конец элемента. ЗаписьXML.ЗаписатьКонецЭлемента(); ЗаписьXML.Закрыть(); |
|||
1
Вафель
16.02.18
✎
18:00
|
у xml может быть только 1 корневой элемент
|
|||
2
skupidom
16.02.18
✎
18:01
|
т.е ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentObject.ПоступлениеТоваровУслуг.Вручную"); пишется всего 1 раз, правильно?
|
|||
3
Cyberhawk
16.02.18
✎
18:12
|
Нет
|
|||
4
skupidom
16.02.18
✎
18:18
|
тогда, прошу пояснить,что имеется в виду
|
|||
5
Вафель
16.02.18
✎
18:21
|
|
|||
6
Cyberhawk
16.02.18
✎
19:22
|
(4) Показывай код, начиная с созднания ЗаписиХМЛ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |