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