Имя: Пароль:
1C
 
Выгрузка документа_в_xml
0 antotti
 
26.11.14
22:14
Добрый вечер, помогите тупому) Пытаюсь выгрузить реквизиты шапки документов в xml
Вот код:

Выборка = Документы.ПоступлениеТоваровУслуг.Выбрать();
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл("C:\lol\123.xml");
    ЗаписьXML.ЗаписатьОбъявлениеXML();
    //
    Пока Выборка.Следующий() Цикл
        ДокументСсылка = Выборка.Ссылка;
        //
        ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentObject");
        
        Запись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.ЗаписатьКонецЭлемента();
        // Цена Вкл НДС
        Признак = ?(ДокументСсылка.ЦенаВключаетНДС=Истина,True,False);
        ЗаписьXML.ЗаписатьНачалоЭлемента("ЦенаВключатеНДС");
        ЗаписьXML.ЗаписатьАтрибут("Признак"    ,Строка(Признак));
        ЗаписьXML.ЗаписатьКонецЭлемента();
        // Подразделение
        ЗаписьXML.ЗаписатьНачалоЭлемента("Подразделение");
        ЗаписьXML.ЗаписатьАтрибут("Наименование", Строка(ДокументСсылка.Подразделение.Наименование));
        ЗаписьXML.ЗаписатьАтрибут("Родитель", Строка(ДокументСсылка.Подразделение.Родитель));
        ЗаписьXML.ЗаписатьКонецЭлемента();
        // БанковскийСчетОрганизации
        ЗаписьXML.ЗаписатьНачалоЭлемента("БанковскийСчетОрганизации");
        ЗаписьXML.ЗаписатьАтрибут("Наименование", Строка(ДокументСсылка.БанковскийСчетОрганизации));
        ЗаписьXML.ЗаписатьАтрибут("Банк",Строка(ДокументСсылка.БанковскийСчетОрганизации.Банк.Наименование));
        ЗаписьXML.ЗаписатьАтрибут("НомерСчета",Строка(ДокументСсылка.БанковскийСчетОрганизации.НомерСчета));
        ЗаписьXML.ЗаписатьАтрибут("БИК",Строка(ДокументСсылка.БанковскийСчетОрганизации.БИКБанка));
        ЗаписьXML.ЗаписатьКонецЭлемента();
        ЗаписьXML.ЗаписатьКонецЭлемента();
КонецЦикла;


Файл создается, но когда открываю - запускается пустое окно браузера( и там ничего... где туплю??
1 ДенисЧ
 
26.11.14
22:17
через нотепад посмотреть - там есть что?
2 antotti
 
26.11.14
22:19
да, есть
3 antotti
 
26.11.14
22:22
причем documentobject не закрытый почему то(
4 Koliaff
 
26.11.14
22:24
Тэг организация не закрыт
5 antotti
 
26.11.14
22:25
точно, закрыл тег, появилось сообщение об ошибке:
"{Форма.Форма.Форма(32)}: Ошибка при вызове метода контекста (ЗаписатьНачалоЭлемента)
        ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentObject");
по причине:
Ошибочный порядок записи XML"
6 antotti
 
26.11.14
22:32
почему ошибочный порядок записи?
7 Koliaff
 
26.11.14
22:32
8 antotti
 
26.11.14
22:34
Спасибо за ссылку, получилось)   Корневой элемент нужен был!
9 Koliaff
 
26.11.14
22:34
ЗаписьXML.Закрыть(); тоже в конце я бы написал ...
10 antotti
 
26.11.14
22:36
Спасибо, учту)
11 Serginio1
 
26.11.14
22:46
Проще создать схемы и заплнять ОбъектXDTO и читать его.
Которую если, что можно создать и программно
v8: XSD схема программно с нуля.
12 Либерал
 
26.11.14
23:01
(0) и нет ЗаписатьКонецЭлемента там где Организация
Закон Брукера: Даже маленькая практика стоит большой теории.