Добрый день всем!
Недавно столкнулся вроде бы с простой задачей, из готового xml (стороннего разработчика) затянуть данные в 1С.
До этого с этим типом файлов в 1С не работал, побегал по статьям на этом форуме и не только, так и не нашел ответа на свой вопрос.
Дело вот в чем, я не стал построчно читать данные с помощью объекта ЧтениеXML, а сразу решил идти в сторону XDTO.
Создал свой пакет, получил данные
Все данные получаю, кроме таких (param),
<offers>
<offer id="162129">
<name>а/ш 235/65*17 V Scorpion Verde (108) XL Pirelli TBL</name>
<param name="Артикул">01171212</param>
<param name="Артикул производителя">1805900</param>
<param name="Ширина протектора">235</param>
<param name="Высота профиля">65</param>
<param name="Технология безопасности">Стандарт</param>
<param name="Дополнительные свойства">XL</param>
<param name="Цена">6598</param>
</offer>
</offers>
и не пойму как их получить с помощью XDTO.
Буду признателен за помощь или направление в поиске.
Недавно столкнулся вроде бы с простой задачей, из готового xml (стороннего разработчика) затянуть данные в 1С.
До этого с этим типом файлов в 1С не работал, побегал по статьям на этом форуме и не только, так и не нашел ответа на свой вопрос.
Дело вот в чем, я не стал построчно читать данные с помощью объекта ЧтениеXML, а сразу решил идти в сторону XDTO.
Создал свой пакет, получил данные
ЧтениеФайла = Новый ЧтениеТекста(ПолноеИмяФайла,КодировкаТекста.UTF8);
СтрокаXML = ЧтениеФайла.Прочитать();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(СтрокаXML);
РезультатРабора = Новый Массив;
ТипДанныеФайла = ФабрикаXDTO.Тип(ИмяПространстваИмен, ИмяСвойства);
ДанныеФайла = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ТипДанныеФайла);
ПоказатьВсе данные получаю, кроме таких (param),
<offers>
<offer id="162129">
<name>а/ш 235/65*17 V Scorpion Verde (108) XL Pirelli TBL</name>
<param name="Артикул">01171212</param>
<param name="Артикул производителя">1805900</param>
<param name="Ширина протектора">235</param>
<param name="Высота профиля">65</param>
<param name="Технология безопасности">Стандарт</param>
<param name="Дополнительные свойства">XL</param>
<param name="Цена">6598</param>
</offer>
</offers>
и не пойму как их получить с помощью XDTO.
Буду признателен за помощь или направление в поиске.
По теме из базы знаний
- Краткое описание создания XML файла по XSD схеме на примере создания выгрузки Статистической отчетности для ФТС
- Пример заполнения/создания файла XML из XSD схемы, используя XDTO
- Расчет доходов и единого взноса физлиц с возможностью выгрузки в xml, схемы xsd J0500107 и F0500107 плюс приложения. Для УПП, УТП Украина
- Статистическая отчетность в ФТС по новой форме на основе xsd файлов от ФТС. Бухгалтерия предприятия 3.0
- Списки обучения по охране труда для Минтруда (XSD схема версии 1.0.4)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Непонятно вот что. У вас есть только XML и больше ничего? Универсальный обмен с помощью XML возможен при соблюдении трех условий:
1. есть файл данных
2. есть схема XML
3. известно URI пространства имен, используемых при обмене
Как без схемы XML вы понимаете, где что находится?
Это что? Рубли? А может тугрики? А может, это шестнадцатеричная система?
1. есть файл данных
2. есть схема XML
3. известно URI пространства имен, используемых при обмене
Как без схемы XML вы понимаете, где что находится?
<param name="Цена">6598</param>
Это что? Рубли? А может тугрики? А может, это шестнадцатеричная система?
(4) вы же поняли о чем я. Может быть, может не быть, но в обмене схема должна быть. А если есть схема - ее можно импортировать как пакет XDTO, ну или подключить к фабрике XDTO. И в итоге получить данные с нормальными типами. А от такого чтения, когда есть вроде и объект, но все типы строковые - как-то мало смысла...
(7)
не ну совсем...
т.е. автору дали файл формата XML и сказали что-то типа "вот файл универсального прогрессивного формата обмена, внутри есть всё что нам нужно, загрузи в 1С".
Автор, проси схему XML и выкладывай файл XML вместе со схемой XML :)
не ну совсем...
(стороннего разработчика) затянуть данные в 1С.
т.е. автору дали файл формата XML и сказали что-то типа "вот файл универсального прогрессивного формата обмена, внутри есть всё что нам нужно, загрузи в 1С".
Автор, проси схему XML и выкладывай файл XML вместе со схемой XML :)
Схему просил, говорят, что заполняют без схемы, хотя в заголовке файла присутствует это:
<!DO CTYPE yml_catalog SYSTEM "shops.dtd">
согласен, есть задача, в которой нет объектных данных (грубо говоря), но хотелось бы решить ее с помощью пакета XDTO,
как говорится век живи, век учись :)
Нет, гемор никому нормальному не нужен, данные только читаются и обрабатываются.
По поводу типов я не волнуюсь, мне не нужна десериализация, все типы это строка, дата, число (стандартные).
Ребят, offer это номенклатура, id как атрибут я получаю, дальше идет элемент name я его тоже получаю, а вот дальше...
param - это что-то типа дополнительный реквизит, атрибут name - это его название, ну и соответственно значение
находится перед закрывающимся тэгом.
<!DO CTYPE yml_catalog SYSTEM "shops.dtd">
но все типы строковые - как-то мало смысла...
согласен, есть задача, в которой нет объектных данных (грубо говоря), но хотелось бы решить ее с помощью пакета XDTO,
как говорится век живи, век учись :)
А в случае изменений файла поиметь геморой с пакетами.
Нет, гемор никому нормальному не нужен, данные только читаются и обрабатываются.
По поводу типов я не волнуюсь, мне не нужна десериализация, все типы это строка, дата, число (стандартные).
Ребят, offer это номенклатура, id как атрибут я получаю, дальше идет элемент name я его тоже получаю, а вот дальше...
param - это что-то типа дополнительный реквизит, атрибут name - это его название, ну и соответственно значение
находится перед закрывающимся тэгом.
(9) Вы можете прочитать XML в XDTO и без схемы, схема лишь существенно облегчит чтение спорных моментов (например, списков). И читайте напрямую из файла, нет смысла читать содержимое в память:
А еще лучше создайте схему для себя. dtd довольно ограниченная и устаревшая технология описания структуры xml
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(СтрокаXML);
ДанныеФайла = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
// в ДанныеФайла нетипизированный XDTO со всем содержимым файла
А еще лучше создайте схему для себя. dtd довольно ограниченная и устаревшая технология описания структуры xml
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот