Вход | Регистрация

1С:Предприятие ::

Метки: 

Вариант чтения файла XML

Я
   skupidom
 
20.02.18 - 11:10
Коллеги, привожу часть файла выгрузки XML, как оптиально его прочитать ?

<?xml version="1.0" encoding="UTF-8"?>
<ДокументыВыгрузки>
    <DocumentObject.ПоступлениеТоваровУслуг.Вручную>
        <Ref xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="DocumentRef.ПоступлениеТоваровУслуг">14eb2e4c-0ebf-11e7-90b4-0050568a2f35</Ref>
        <УИДДокумента xmlns:v8="http://v8.1c.ru/data"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="v8:UUID">14eb2e4c-0ebf-11e7-90b4-0050568a2f35</УИДДокумента>
        <Номер xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">00000006435</Номер>
        <Дата xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:dateTime">2017-02-28T23:59:59</Дата>
        <УИДОрганизация xmlns:v8="http://v8.1c.ru/data"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="v8:UUID">6f78daf1-f378-11de-9f34-001d7d0a0e6a</УИДОрганизация>
        <CatalogObject.Организации.Вручную>
            <Ref xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="CatalogRef.Организации">6f78daf1-f378-11de-9f34-001d7d0a0e6a</Ref>
            <Description xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string"> ЗАО</Description>
            <ИНН xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">773455935</ИНН>
            <КПП xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">773401001</КПП>
            <НаименованиеПолное xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">ЗАО ""</НаименованиеПолное>
            <СвидетельствоСерияНомер xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string"/>
            <СвидетельствоДатаВыдачи xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:dateTime">0002-01-01T00:00:00</СвидетельствоДатаВыдачи>
        </CatalogObject.Организации.Вручную>
        <CatalogObject.Валюты.Вручную>
            <Ref xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="CatalogRef.Валюты">b4a44b28-e8b1-11de-9f34-001d7d0a0e6a</Ref>
            <Description xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">руб.</Description>
            <DescriptionFull xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">Рос рубль</DescriptionFull>
        </CatalogObject.Валюты.Вручную>
        <ВидОперации xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="EnumRef.ВидыОперацийПоступлениеТоваровУслуг">ПокупкаКомиссия</ВидОперации>
        <ВидыПоступленияТоваров xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="EnumRef.ВидыПоступленияТоваров">НаСклад</ВидыПоступленияТоваров>
        <ДатаВходящегоДокумента xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:dateTime">2017-02-28T00:00:00</ДатаВходящегоДокумента>
        <Комментарий xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">Закладные детали (кронштейны)</Комментарий>
        <УИДКонтрагент xmlns:v8="http://v8.1c.ru/data"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="v8:UUID">50d36262-4726-11e6-af4c-0050568a2f35</УИДКонтрагент>
        <CatalogObject.Контрагенты.Вручную>
            <Ref xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="CatalogRef.Контрагенты">50d36262-4726-11e6-af4c-0050568a2f35</Ref>
            <Description xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">ТД ООО</Description>
            <ИНН xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">7743871794</ИНН>
            <КПП xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">774301001</КПП>
            <НаименованиеПолное xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">ООО Торговый дом </НаименованиеПолное>
        </CatalogObject.Контрагенты.Вручную>
        <УИДДоговорКонтрагента xmlns:v8="http://v8.1c.ru/data"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="v8:UUID">0d164ff0-0ec6-11e7-90b4-0050568a2f35</УИДДоговорКонтрагента>
        <CatalogObject.ДоговорыКонтрагентов.Вручную>
            <Ref xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="CatalogRef.ДоговорыКонтрагентов">0d164ff0-0ec6-11e7-90b4-0050568a2f35</Ref>
            <Description xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">Дог. 8 от 01.02.2017 + ДС1 от 28.04.2017</Description>
            <Номер xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string"/>
            <Дата xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:dateTime">0001-01-01T00:00:00</Дата>
            <CatalogObject.Валюты.Вручную>
                <Ref xmlns="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="CatalogRef.Валюты">b4a44b28-e8b1-11de-9f34-001d7d0a0e6a</Ref>
                <Description xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">руб.</Description>
                <DescriptionFull xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="xs:string">Российский рубль</DescriptionFull>
            </CatalogObject.Валюты.Вручную>
        </CatalogObject.ДоговорыКонтрагентов.Вручную>
 
  Рекламное место пустует
   бомболюк
 
1 - 20.02.18 - 11:46
ВозможностьЧтенияXML, ПрочитатьXML
   Адинэснег
 
2 - 20.02.18 - 12:02
если конфы одинаковые - десериализация
если разные - в построитель дом
   skupidom
 
3 - 20.02.18 - 12:13
построитель дом - можете привести оптимальный приер для данного случая чтения xml файла ?
   Вафель
 
4 - 20.02.18 - 12:29
ФабрикаXDTO.Прочиать()
   skupidom
 
5 - 20.02.18 - 13:16
Если требуется выгрузить структуру документа + структуры всех его реквизитов: для справочников их реквизиты как тогда?
   skupidom
 
6 - 20.02.18 - 13:43
если у меня выгружено без исп.XDTO, а при чтении я пытаюсь исп.ФабрикаXDTO, то ошибка "Невоожно открыть файл обена данныи".
пример записи XML:
// Записываем начало элемента XML.

    Запись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Контрагенты(ЗаписьXML, Данные.Контрагент);
    
    ЗаписатьXML(ЗаписьXML,Данные.ДоговорКонтрагента.УникальныйИдентификатор(),"УИДДоговорКонтрагента", НазначениеТипаXML.Явное);
    ЗаписатьXMLДоговорыКонтрагентов(ЗаписьXML,Данные.ДоговорКонтрагента);     
    
    ЗаписатьXML(ЗаписьXML,Данные.ПодразделениеОрганизации.УникальныйИдентификатор(),"УИДПодразделениеОрганизации",НазначениеТипаXML.Явное);
    ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, Данные.ПодразделениеОрганизации,"ПодразделенияОрганизаций"); 
    
    ЗаписатьXML(ЗаписьXML, Данные.СуммаДокумента, "СуммаДокумента", НазначениеТипаXML.Явное);
    ЗаписатьXML(ЗаписьXML, "№ " + ОбщегоНазначения.ПолучитьНомерНаПечать(Данные.Ссылка) + " от " + Строка(Формат(Данные.Дата, "ДЛФ=Д")), "Представление", НазначениеТипаXML.Явное);    
        
    ТЧ=Данные.Оборудование.Выгрузить();
    ТЧ.Сортировать("Заказ,Номенклатура");
    ПредЗаказ="";
    
    Для Каждого СтрокаТЧ Из ТЧ Цикл
        ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Оборудование.Вручную");
        ЗаписатьXMLСправочникСсылкаИНаименование(ЗаписьXML, СтрокаТЧ.ЕдиницаИзмерения, "ЕдиницыИзмерения");
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Количество, "Количество", НазначениеТипаXML.Явное);
        
        ЗаписатьXML(ЗаписьXML,СтрокаТЧ.Номенклатура.УникальныйИдентификатор(),"УИДНоменклатура",НазначениеТипаXML.Явное);
        ЗаписатьXMLНоменклатура(ЗаписьXML, СтрокаТЧ.Номенклатура);
        
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Сумма, "Сумма", НазначениеТипаXML.Явное);    
        ЗаписатьXML(ЗаписьXML, СтрокаТЧ.Цена, "Цена", НазначениеТипаXML.Явное);
        
        ЗаписатьXML(ЗаписьXML,СтрокаТЧ.ВидРабот.УникальныйИдентификатор(),"УИДВидРабот",НазначениеТипаXML.Явное);
        ЗаписатьXMLСправочникСсылкаИНаименованиеИерархия(ЗаписьXML, СтрокаТЧ.ВидРабот,"ВидыРабот");
        ЗаписьXML.ЗаписатьКонецЭлемента();
    КонецЦикла;    
    
    ТЧ=Данные.Товары.Выгрузить();
    ТЧ.Сортировать("Заказ,Номенклатура");
    Для Каждого СтрокаТЧ Из ТЧ Цикл
        ЗаписьXML.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Товары.Вручную");
        Записать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.ЗаписатьНачалоЭлемента("DocumentTabularSectionRow.ПоступлениеТоваровУслуг.Услуги.Вручную");
        Записать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.ЗаписатьКонецЭлемента();
   skupidom
 
7 - 20.02.18 - 13:44
Такая запись XML не удобна,а вот с чтение при этом проблема
   skupidom
 
8 - 20.02.18 - 13:51
Такая запись XML мне удобна,
а вот с чтение при этом проблема


Список тем форума
Рекламное место пустует   Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует