Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 20:17

Выгрузка в xml

Автор Алексей25, 26 апр 2017, 11:30

0 Пользователей и 1 гость просматривают эту тему.

Алексей25

А в чем может проблема тут? Он просто не заполняет документ.


ЧтениеXML=Новый ЧтениеXML();
    ЧтениеXML.ОткрытьФайл("C:\Users\Андрей\Desktop\doc.xml");

    // Текущим становится элемент Root.
    ЧтениеXML.Прочитать();

    // Текущим становится элемент с документом.
    ЧтениеXML.Прочитать();

    // Проверить сможет ли с данным значением "справиться"
    // система сериализации в данной базе.
    Если ВозможностьЧтенияXML(ЧтениеXML) Тогда

        // Получить ДокументОбъект.РеализацияТоваровУслуг
        ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML);
       
        ЗагружаемыйОбъект.Записать();
    КонецЕсли;

    ЧтениеXML.Закрыть();           


Пробовал в этой же базе(то есть обратно загрузить), но ничего не заполняет.

ilyay

Цитата: Алексей25 от 26 апр 2017, 16:53
А в чем может проблема тут? Он просто не заполняет документ.

    ЗаписьXML.ЗаписатьНачалоЭлемента("Root");

    // Получить объект по ссылке.
    ВыгружаемыйОбъект= Объект.Ссылка.ПолучитьОбъект();//Документ.ПолучитьОбъект();

    // С помощью средств сериализации записать объект в файл.
    ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);



ЧтениеXML=Новый ЧтениеXML();
    ЧтениеXML.ОткрытьФайл("C:\Users\Андрей\Desktop\doc.xml");

    // Текущим становится элемент Root.
    ЧтениеXML.Прочитать();

    // Текущим становится элемент с документом.
    ЧтениеXML.Прочитать();

    // Проверить сможет ли с данным значением "справиться"
    // система сериализации в данной базе.
    Если ВозможностьЧтенияXML(ЧтениеXML) Тогда

        // Получить ДокументОбъект.РеализацияТоваровУслуг
        ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML);
       
        ЗагружаемыйОбъект.Записать();
    КонецЕсли;

    ЧтениеXML.Закрыть();           


Пробовал в этой же базе(то есть обратно загрузить), но ничего не заполняет.

Симметрично читайте/пишите. Вы записываете один элемент, а потом объект. А при чтении дважды читаете, а потом объект читаете. Может в этом проблема?

Алексей25

Цитата: ilyay от 26 апр 2017, 17:07Симметрично читайте/пишите. Вы записываете один элемент, а потом объект. А при чтении дважды читаете, а потом объект читаете. Может в этом проблема?


ЧтениеXML=Новый ЧтениеXML();
    ЧтениеXML.ОткрытьФайл("C:\Users\Андрей\Desktop\doc.xml");

    // Текущим становится элемент Root.
    ЧтениеXML.Прочитать(); // Читаю первый раз


    // Проверить сможет ли с данным значением "справиться"
    // система сериализации в данной базе.
    Если ВозможностьЧтенияXML(ЧтениеXML) Тогда

        // Получить ДокументОбъект.РеализацияТоваровУслуг
        ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML);
       
        ЗагружаемыйОбъект.Записать();    // Записываю объект
    КонецЕсли;

    ЧтениеXML.Закрыть();           




Вроде же читаю и записываю объект. Или это не так работает в моем представлении?

LexaK

вообще не понятно зачем весь это огород?
на диске ИТС полно обработок которые выгружают любые объекты в ХМЛ и загружают из ХМЛ
вот одна из них. с помощью нее можно переносить объекты между базами с одинаковой структурой без всяких правил конвертаций
в этой обработке вы можете посмотреть как объект сохраняется в ХМЛ (с использованием фабрики ХДТО)
если помогло нажмите: Спасибо!

Алексей25

Цитата: LexaK от 27 апр 2017, 10:27
вообще не понятно зачем весь это огород?
на диске ИТС полно обработок которые выгружают любые объекты в ХМЛ и загружают из ХМЛ
вот одна из них. с помощью нее можно переносить объекты между базами с одинаковой структурой без всяких правил конвертаций
в этой обработке вы можете посмотреть как объект сохраняется в ХМЛ (с использованием фабрики ХДТО)

Спасибо, но мне нужно для себя и по кнопочке все делать.
Добавлено: 27 апр 2017, 13:20


И правда странно.
Это должно работать, так как первое чтение читает корневой элемент(который создал я)
Второе уже начинает вычитывать данные.

Потом перебираем каждый элемент, читаем и записываем его, после закрываем чтение.
Но в сам документ он ничего не заносит, видно, что что-то грузанет там, но все остается пустым, в чем тут может быть проблема?

 
ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл("C:\Users\PC-1\Desktop\doc.xml");

   // Позиционируемся на корневом элементе

    ЧтениеXML.Прочитать();

   // Позиционируемся на первом элементе, содержащим данные

    ЧтениеXML.Прочитать();

   // Читаем данные  пока это возможно
   Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
   
       // Читаем очередное значение
        Данные = ПрочитатьXML(ЧтениеXML);
       // Записываем полученные данные
        Данные.Записать();
    КонецЦикла;
    ЧтениеXML.Закрыть();

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск