Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запись/чтение XMLфайла через XDTO.

Запись/чтение XMLфайла через XDTO.
Я
   SpellKeeper
 
16.04.19 - 14:06
Добрый день.
Второй день занимаюсь XDTO и XML. Толком пока ничего не понимаю.
Вот какой вопрос.
Сделал пакет XDTO в конфигураторе.
Пакет использует только простые типы.
Сделал выгрузку в файл. При выгрузке проверяю типы данных в объекте XDTO. Кроме строковых там есть типы Дата, Булево и Число.
При чтении данных все параметры приходят в виде строки.
Это нормально? Или я что-то не так сделал и у меня пакет читается с ошибками? И на самом деле в структуру должны четко вернуться типы, которые прописаны в пакете?
 
 
   Жан Пердежон
 
1 - 16.04.19 - 14:13
в 3й строке ошибка
   RomaH
 
2 - 16.04.19 - 15:14
ЧтениеХМЛ = Новый ЧтениеXML;

    
    ЧтениеХМЛ.ОткрытьФайл(ИмяФайла);
    
    ТипПациент             = ФабрикаXDTO.Тип("http://tfoms.yar.ru/BILL/613";, "patient");
    ТипПерсональныйСчет = ФабрикаXDTO.Тип("http://tfoms.yar.ru/BILL/613";, "personal_account");
    
    ВсегоПациентов = 0;
    
    
    Пока ЧтениеХМЛ.Прочитать() Цикл
        
        Пока ЧтениеХМЛ.ЛокальноеИмя = "patient" И ЧтениеХМЛ.ТипУзла = ТипУзлаXML.НачалоЭлемента    И ВсегоПациентов < 2000 Цикл
            
            ВсегоПациентов = ВсегоПациентов + 1;
            
            Попытка
                Данные = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ,ТипПациент);
   RomaH
 
3 - 16.04.19 - 15:15
надо указать какой тип из пакета хочешь использовать

ФабрикаXDTO.Тип("http://tfoms.yar.ru/BILL/613";;, "patient");
   SpellKeeper
 
4 - 16.04.19 - 15:27
Спасибо за ответы, но я спрашивал не что конкретно у меня не так (я бы код написал), а правильно ли вообще, что при чтении возвращались все поля с типом строка, если записывались разные типы?
Выяснилось, что это не правильно.
У меня данные были выгружены из 1С и туда же загружались. Поэтому пакет XDTO должен нормально переварить все данные в типы 1С.
Нужно правильно тип указывать. Если 1С не смогла однозначно определиться с типом, то она все в строку конвертирует.
Не уверен, но, похоже, что если тип объекта XDTO и свойство объекта XDTO называются одинаково, то она не может правильно определить тип данных.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.