Как быстро считать файл XML по схеме XSD в таблицу значений? #711674


#0 by adelaide
Есть поставщик, он по API выдает прайс в XML, я сгенерировал схему файла XSD мне нужно быстро преобразовать этот файл в ТЗ, знаю про способ через ЧтениеXML, но он не самый быстрый имхо: Чтение = Новый ЧтениеXML; ....   Есть что побыстрее? Собственно вот кусок XML который мне нужно преобразовать в ТЗ: ....
#1 by adelaide
можно не в тз, можно в массив сути не меняет, мне просто по схеме надо преобразовать XML в списочный тип 1С.
#2 by Bober
как вариант через документ DOM, там поиск элементов по "product" и считывание-заполнение тз.
#3 by adelaide
Вроде нашел решение:
#4 by adelaide
Да, то что надо, спасибо юзеру Jaap Vduul из темы: Можно закрывать, поиск рулит =)
#5 by DS
>> Есть поставщик, он по API выдает прайс в XML Веб-сервис, чтоли? Так есть способы красивее...
#6 by Serginio1
Можно проще через СоздатьФабрикуXDTO
#7 by Maxus43
а если в конфу xdto пакет добавить - файл схемы не нужен будет
#8 by adelaide
покажи как я тупой, у меня так не получилось, туплю во втором параметре: ФабрикаXDTO.Тип(";, что_тут_писать?); если пишу имя пакета, то возвращает Неопределено.
#9 by adelaide
вебсервис но без WSDL
#10 by Maxus43
импортировал схему в xdto пакет в конфигураторе? не макет. xdto пакет. в общих. там и урл написан
#11 by H A D G E H O G s
Я правильно понимаю, что при чтении через XDTO файл хреначиться в область памяти сразу, махом, без построчного добавления?
#12 by adelaide
да, импортировал пакет, урл прописан, пробовал делать:  ФабрикаXDTO.Тип(";, "Имя_пакета")
#13 by adelaide
возвращает неопределено
#14 by acsent
конечно, ибо объект создается
#15 by Serginio1
Фабрика = СоздатьФабрикуXDTO("C:Usersprog1cDocuments111price.xsd");
#16 by Serginio1
ФабрикаXDTO.Тип(ЧтениеXML.URIПространстваИмен,ЧтениеXML.Имя)
#17 by Serginio1
16 + тьфу Фабрика.Тип(ЧтениеXML.URIПространстваИмен,ЧтениеXML.Имя)
#18 by blopp
Если вызывать чтение стоя на начале первого элемента файла - то конечно считается все целиком. Но фабрикой можно тоже по частям читать - начало элемента явно через ЧтениеXML, а то что внутри - фабрикой.
#19 by Serginio1
нет. Если в документе много объектов то считвается только один объект. Например
#20 by Fragster
кто-нибудь осилил магию представления XML из сразу в ТЗ по колонкам и строкам, без цикла, только через пакеты XDTO и схемы?
#21 by Bober
пока не видел живого примера со схемой xml и тз.
#22 by Serginio1
А смысл? Ты также работаешь с объектом как и с тз. В принципе не проблема используя ИзXMLТипа создать типы колонок
#23 by Fragster
смысл меньше букв в загрузке в базу. теоретически через XSLT можно преобразовать исходный XML к ValueTable из и все. Но может есть способ проще.
#24 by Serginio1
С каких это букв меньше? Тоже самое.
#25 by Serginio1
Ты сначала должен преобразовать к ValueTable, а затем применить ПрочитатьXML
#26 by Fragster
да, но ОбъектXDTO не запихаешь параметром в запрос как ТЗ, или не запишешь в базу, например, как документ какой-ниубдь.
#27 by Serginio1
А так согласен. Просто задачи такой не было. Да и ОбъектXDTO может быть весьмя сложной структурой ввиде дерева
#28 by Fragster
вот именно, что "сложной структурой". просто эта структура нам известна, и неплохо бы эту структуру сразу в определенный объект преобразовать, а не в абстрактный ОбъектXDTO, из которого через постобработку получать ТЗ, ДокументОбъект и прочее
#29 by Serginio1
У меня обмен между конфигурациями на ОбъектахXDTO так быстрее. Причем выгружается сразу в схему загружаемой конфигурации. Так, что объекты загружаются сразу. Единственно, что когда загружающая конфигурация загружается, нужно изменять схему ну и заполнение полей. Там все равно нужно много дополнительных действий, если документы и предопределенные элементы не совпадают. Но зато загрузка очень быстрая. Что кстати и 1С могла сделать. Например
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С