Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка при выгрузке таб. части в XML

Ошибка при выгрузке таб. части в XML
Я
   lirt82
 
02.05.19 - 14:03
Нужно через подписку выгрузить некоторые данные данные из дока Реализации, выдает ошибку при выгрузке таб. части товары, как исправить?
Процедура ВыгрузкаВХМЛПриЗаписи(Источник, Отказ) Экспорт
    
    Если Источник.Склад.Код <> "00000008" Тогда
        Возврат
    Иначе    
        Нашли = НайтиФайлы(Константы.КаталогОбменаФайлами.Получить(), "export_upp.xml");
        Если Нашли.Количество() = 0 Тогда //создадим новый файл xml
            НовыйФайлXML = Новый ЗаписьXML();
            ИмяФайла = Константы.jcpc_КаталогОбменаФайлами.Получить() + "\" + СокрЛП("export_upp.xml");
            НовыйФайлXML.ОткрытьФайл(ИмяФайла, "UTF-8");
            НовыйФайлXML.ЗаписатьОбъявлениеXML();
            
            НовыйФайлXML.ЗаписатьНачалоЭлемента("Контрагент");
            НовыйФайлXML.ЗаписатьАтрибут("ИдентификационныйКодЛичности", Источник.Контрагент.ИдентификационныйКодЛичности);
            НовыйФайлXML.ЗаписатьКонецЭлемента();
            
            //НовыйФайлXML.ЗаписатьНачалоЭлемента("Товары");
            Для каждого Стр Из Источник.Товары Цикл
                НовыйФайлXML.ЗаписатьНачалоЭлемента("Стр.Номенклатура");
                НовыйФайлXML.ЗаписатьАтрибут("Код", Стр.Номенклатура.Код);
                НовыйФайлXML.ЗаписатьАтрибут("Количество", Стр.Номенклатура.Количество);
                НовыйФайлXML.ЗаписатьКонецЭлемента();
            КонецЦикла;
            //НовыйФайлXML.ЗаписатьКонецЭлемента();
            НовыйФайлXML.Закрыть();
        Иначе //перезапишем существующий
            НовыйФайлXML = Новый ЗаписьXML();
            ИмяФайла = Константы.КаталогОбменаФайлами.Получить() + "\" + СокрЛП("export_upp.xml");
            НовыйФайлXML.ОткрытьФайл(ИмяФайла, "UTF-8");
            НовыйФайлXML.ЗаписатьОбъявлениеXML();
            
            НовыйФайлXML.ЗаписатьНачалоЭлемента("Контрагент");
            НовыйФайлXML.ЗаписатьАтрибут("ИдентификационныйКодЛичности", Источник.Контрагент.ИдентификационныйКодЛичности);
            НовыйФайлXML.ЗаписатьКонецЭлемента();
            
            //НовыйФайлXML.ЗаписатьНачалоЭлемента("Товары");
            Для каждого Стр Из Источник.Товары Цикл
                НовыйФайлXML.ЗаписатьНачалоЭлемента("Стр.Номенклатура");
                НовыйФайлXML.ЗаписатьАтрибут("Код", Стр.Номенклатура.Код);
                НовыйФайлXML.ЗаписатьАтрибут("Количество", Стр.Номенклатура.Количество);
                НовыйФайлXML.ЗаписатьКонецЭлемента();
            КонецЦикла;
            //НовыйФайлXML.ЗаписатьКонецЭлемента();
            НовыйФайлXML.Закрыть();
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Ошибка при вызове метода контекста (ЗаписатьНачалоЭлемента)
НовыйФайлXML.ЗаписатьНачалоЭлемента("Стр.Номенклатура");
по причине:
Ошибочный порядок записи XML
 
 
   hhhh
 
1 - 02.05.19 - 14:07
(0) а разве можно с точкой?
   lirt82
 
2 - 02.05.19 - 14:32
(1) незнаю) но пробовал и другие имена, такая же ошибка
   lirt82
 
3 - 02.05.19 - 14:33
ну или пример скиньте по выгрузке таб.части через цикл
   Ник080808
 
4 - 02.05.19 - 14:37
(2) "Номенклатура" попробуй
   Ник080808
 
5 - 02.05.19 - 14:40
(4) тьху. не так
у тебя же элементы должны идти в виде "дерева". То есть должен быть корневой элемент. ты или контрагента сделай корневым или сделай другой элемент документ
   Ник080808
 
6 - 02.05.19 - 14:40
Вот тут НовыйФайлXML.ЗаписатьНачалоЭлемента("Контрагент"); 
            НовыйФайлXML.ЗаписатьАтрибут("ИдентификационныйКодЛичности", Источник.Контрагент.ИдентификационныйКодЛичности); 
            НовыйФайлXML.ЗаписатьКонецЭлемента(); 
убираешь НовыйФайлXML.ЗаписатьКонецЭлемента(); 
а после цикла перед НовыйФайлXML.Закрыть();  добавляешь НовыйФайлXML.ЗаписатьКонецЭлемента();
   Ник080808
 
7 - 02.05.19 - 14:41
Ну или пишешь 
 НовыйФайлXML.ЗаписатьНачалоЭлемента("Документ"); 
 НовыйФайлXML.ЗаписатьНачалоЭлемента("Контрагент"); 
***
КонецЦикла;
НовыйФайлXML.ЗаписатьКонецЭлемента();
НовыйФайлXML.Закрыть();
   lirt82
 
8 - 02.05.19 - 14:59
теперь другая ошибка 
Ошибка при вызове метода контекста (ЗаписатьАтрибут)
НовыйФайлXML.ЗаписатьАтрибут("Количество", Стр.Количество);
по причине:
Несоответствие типов (параметр номер '2')
   lirt82
 
9 - 02.05.19 - 15:00
Описывать что ли? Количество Новый ОписаниеТипов Число....
   Ник080808
 
10 - 02.05.19 - 15:22
(9) не. формат делай
   hhhh
 
11 - 02.05.19 - 19:35
(9) там числа запрещены
   runoff_runoff
 
12 - 02.05.19 - 19:37
(9) XMLСтрока()

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.