8.х ОБМЕН Проблема при использовании XDTO

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем jakob291, 2 ноя 2009.

  1. TopicStarter Overlay
    jakob291
    Offline

    jakob291

    Регистрация:
    2 ноя 2009
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    При попытке загрузки-выгрузки объектов справочника столкнулся с проблемой: первый элемент выгружается, потом возникает ошибка "ошибочный порядок записи XML"
    Как необходимо подправить код в цикле, чтобы исправить данную ошибку? И чтобы при этом не загубить загрузку/выгрузку
    Просьба помочь точечным советом, то что необходимо "сначала записать начало корневого элемента, потом все документы, потом конец корневого элемента." я знаю. Но реализовать это не смог, сбивается схема XSD
    Вот код на запись
    Код:
    ЗаписьXML = Новый ЗаписьXML;
    ИмяФайла ="C:\XML_unload.xml";
    ЗаписьXML.ОткрытьФайл(ИмяФайла);
    Пути = Новый Массив();
    Пути.Добавить("C:\sprav.xsd");
    Фабрика = СоздатьФабрикуXDTO(Пути);
    ТипСобытие = Фабрика.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config", "CatalogObject.ФизическиеЛица");
    ОбъектДокСобытие = Фабрика.Создать(ТипСобытие);
    СправочникВыборка = Справочники.ФизическиеЛица.Выбрать();
    пока СправочникВыборка.Следующий() цикл
    СобытиеОбъект = СправочникВыборка.ПолучитьОбъект();
    ОбъектДокСобытие.Ref = СобытиеОбъект.Ссылка;
    ОбъектДокСобытие.DeletionMark  = СобытиеОбъект.ПометкаУдаления;
    ОбъектДокСобытие.Code  = СобытиеОбъект.Код;
    ОбъектДокСобытие.Description  = СобытиеОбъект.Наименование;
    ОбъектДокСобытие.Комментарии  = СобытиеОбъект.Комментарии;
    ОбъектДокСобытие.Пол  = СобытиеОбъект.Пол;
    ОбъектДокСобытие.ДатаРождения = СобытиеОбъект.ДатаРождения;
    Фабрика.ЗаписатьXML(ЗаписьXML, ОбъектДокСобытие);
    
    КонецЦикла;
    ЗаписьXML.Закрыть();
    
    КонецПроцедуры
    
    
    и на чтение
    Код:
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.ОткрытьФайл("C:\XML_unload.xml");
    РеализацияОбъект = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
    РеализацияОбъект.ОбменДанными.Загрузка = Истина;
    РеализацияОбъект.Записать();
    ЧтениеXML.Закрыть();
    КонецПроцедуры
    
    
    Заранее спасибо за помощь

Поделиться этой страницей