Имя: Пароль:
1C
1C 7.7
v7: Помогите с выгрузкой XML !!!
0 Igor1_777
 
14.05.16
20:22
Всем привет! Помогите разобраться!!! Нужно выгрузить документ с табличной частью из 7.7 в XML. Вот что пишу:
Док=СоздатьОбъект("Документ.ВводОстатковТоваров");
    Док.ВыбратьДокументы(НачДата,КонДата);
    
    //Создание XML Документа
    ИмяФайла=ИмяФайлаВыгр;
    
    Попытка
        ДОМ=СоздатьОбъект("MSXML2.DOMDocument.6.0");
        Узел=ДОМ.CreateProcessingInstruction("xml","version=""1.0"" encoding=""UTF-8""");
    Исключение
        Сообщить("Не удалось создать объект DOMDocument","!");
        Возврат;
    КонецПопытки;
    
    //Формирование записей
    НомерПП=0;
    Товар="";
    ДОМ.insertBefore(Узел,);
    ТекЭлем=ДОМ.appendChild(ДОМ.createElement("Документы"));
    Пока (Док.ПолучитьДокумент()=1) Цикл
        НомерПП=НомерПП+1;
        ТекЭлем=ТекЭлем.appendChild(ДОМ.createElement("УстановкаЦенНоменклатуры"));
        ТекЭлем.setAttribute("НомерПП",НомерПП);
        ТекЭлем.setAttribute("НомерДок",Док.НомерДок);
        Док.ВыбратьСтроки();
        Пока (Док.ПолучитьСтроку()>0)Цикл
            ТекЭлем2=ТекЭлем.appendChild(ДОМ.createElement("ТабличнаяЧасть"));
            Товар=Строка(Док.Товар);
            ТекЭлем2.setAttribute("Номенклатура",Товар);
            ТекЭлем2.setAttribute("Закупочная",Док.ПрихЦена);
            ТекЭлем2.setAttribute("Розничная",Док.РознЦена);
            
        КонецЦикла;
    КонецЦикла;
    ДОМ.save(ИмяФайла);

Получаются документы вложены друг в друга, а нужно последовательно. Что не так?
1 hhhh
 
14.05.16
20:43
ну правильно, вы же пишете

       ТекЭлем=ТекЭлем.appendChild(ДОМ.createElement("УстановкаЦенНоменклатуры"));


то есть следующий документ вложен в предыдущий
2 Igor1_777
 
14.05.16
20:48
Да, получается 2-ой документ вложен в первый, 3-й во второй и т.д.
3 Igor1_777
 
14.05.16
20:56
А как правильно написать то?
4 RomanYS
 
14.05.16
21:15
ДОМДокументы=ДОМ.appendChild(ДОМ.createElement("Документы"));
    Пока (Док.ПолучитьДокумент()=1) Цикл
        НомерПП=НомерПП+1;
        ТекЭлем=ДОМДокументы.appendChild(ДОМ.createElement("УстановкаЦенН
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший