XDTO пакеты

1. user645801_yyyuuu123q 14.12.19 16:41 Сейчас в теме
Здравствуйте друзья. Третий день читаю разбираюсь но понимание не приходит. А точнее приходит но не до конца.
Есть XML файл. Во вложении
Создаю XDTO пакет. Во вложении

выдает ошибку.

по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://schemas.xmlsoap.org/soap/envelope/}Envelope - [1,503]
Проверка дополнительного свойства:
	форма: Элемент
	имя: {http://service.siw.pktbcki.rzd/}Body
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://schemas.xmlsoap.org/soap/envelope/}Envelope
Показать


Что делаю не так, может кто углубился уже в тему и ориентируется подскажет.
Запутался с пакетами
Прикрепленные файлы:
ОдинВаг.xml
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user645801_yyyuuu123q 15.12.19 03:20 Сейчас в теме
Может пример у кого есть, какой был XML и как он сделал пакет для его чтения
3. user645801_yyyuuu123q 15.12.19 07:17 Сейчас в теме
Может как то иначе это делается? Может кто то объяснить Мне для понимания, пожалуйста
4. Xershi 1555 15.12.19 10:51 Сейчас в теме
Задача в чем?
Файл хмл это структура.
Он должен формироваться по файлу схемы. Я так понимаю у вас его нет.
5. user645801_yyyuuu123q 15.12.19 10:53 Сейчас в теме
(4)
Да схема не проблема. По хмл можно легко получить. Вот только даже если Я загружаю схему по хмл файлу.
Вроде выглядит красиво а Мой Xml не читает выдает ошибки
6. Xershi 1555 15.12.19 10:55 Сейчас в теме
(5) раз ошибка значит хмл кривой и сделан не по схеме или наоборот схема не для хмл.
7. user645801_yyyuuu123q 15.12.19 10:57 Сейчас в теме
(6)Я уже и рукам хсд сделал и программой ошибки одни теже.
Я вот уже думаю сделаю сам пакет XDTO руками.
Но понимания мало как это делается
10. Xershi 1555 15.12.19 12:01 Сейчас в теме
(7) схему руками никто не делает. Только дорабатывают. Зайди в 1С. Там есть инструмент, потом просто экспортируй.
8. user645801_yyyuuu123q 15.12.19 11:00 Сейчас в теме
Мне бы понять что Я не так делаю
9. user645801_yyyuuu123q 15.12.19 11:48 Сейчас в теме
Может у кого есть опыт и понимание
11. HAMAZ 7 15.12.19 20:12 Сейчас в теме
Судя по тексту ошибки, чтение не может найти в XDTO пакете как интерпретировать html тэги
12. HAMAZ 7 15.12.19 20:18 Сейчас в теме
И да, мил человек, задача-то какая? Прочитать xml или сформировать? Без куска кода, где происходит ошибка трудно угадать что не так. Читать мысли на расстоянии запрещает шариат). Код в студию!!!
13. user645801_yyyuuu123q 16.12.19 03:39 Сейчас в теме
Прочитать хочу.

ТипЗначенияXDTO = ФабрикаXDTO.Тип("http://service.siw.pktbcki.rzd/","reference14ASUResponse");
	ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ФабрикаXDTO.Тип("http://service.siw.pktbcki.rzd/","getReference14ASUResponse"));
	Для каждого ЗначениеXDTO Из ОбъектXDTO.Body.getReference14ASUResponse.return.reference14ASU.row Цикл



Можно прочитать так
ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);


Но тогда в некоторых местах встречается "ОбъектXDTO" не обрабатывается никак. Приходится костылями читать.
А хотелось бы через фабрику XDTO
14. HAMAZ 7 16.12.19 08:51 Сейчас в теме
Проверка дополнительного свойства:
форма: Элемент
имя: {<noindex><a class="is-fancybox" href="/redirect.php?url=aHR0cDovL3NlcnZpY2Uuc2l3LnBrdGJja2kucnpkLw==" target="_blank" rel="nofollow">http://service.siw.pktbcki.rzd/}Body
по причине:


повторюсь - пытается html прочитать как xml
15. user645801_yyyuuu123q 17.12.19 04:03 Сейчас в теме
(14)
по причине:
{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(39)}: Ошибка при вызове метода контекста (ПрочитатьXML)

по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://service.siw.pktbcki.rzd/}reference14ASUResponse - [1,511]
Проверка дополнительного свойства:
	форма: Элемент
	имя: {http://service.siw.pktbcki.rzd/}row
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://service.siw.pktbcki.rzd/}reference14ASUResponse
Показать

Теперь как xml читает но разница не меняется)
16. user645801_yyyuuu123q 17.12.19 04:19 Сейчас в теме
(14)
Ошибка инициализации модуля: ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта
по причине:
{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(39)}: Ошибка при вызове метода контекста (ПрочитатьXML)

по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {http://service.siw.pktbcki.rzd/}getReference14ASUResponse - [1,504]
Проверка дополнительного свойства:
форма: Элемент
имя: return
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {http://service.siw.pktbcki.rzd/}getReference14ASUResponse
Прикрепленные файлы:
17. VKislitsin 1013 17.12.19 19:42 Сейчас в теме
(16)
У Вас в ФабрикеXDTO нет пакета с нужным нэймспейсом "http://service.siw.pktbcki.rzd/",
Директивой импорта указано что нужно брать схемы с "http://service.siw.pktbcki.rzd/".
Поэтому Платформа идет в буквальном смысле на этот адрес и пытается прочитать оттуда схему. Но схемы там нет, там отдается страница ошибки в HTML-виде. Просто попробуйте браузером открыть, чтобы убедиться.
И соответственно, тип getReference14ASUResponse Фабрика не знает из чего строить.
Вам нужно либо явно в Конфигурацию загрузить такой пакет.
Либо программно создать свою собственную Фабрику по схеме - конструктором
Новый ФабрикаXDTO(<НаборСхемXML>, <Пакеты>)
18. VKislitsin 1013 17.12.19 19:47 Сейчас в теме
(17)
Если пакет не создан явно, то он должен быть в свойстве Пакеты Фабрики.
Независимо от того, как Вы его туда добавите - программно или он будет импортирован.
Пакеты, созданные явным образом в Конфигурации здесь не отображаются.

Приложил скриншот.
Прикрепленные файлы:
19. user645801_yyyuuu123q 18.12.19 03:32 Сейчас в теме
(18)
Я указал пространств имен
Или что еще надо?
Прикрепленные файлы:
20. aaguselnikova 20 18.12.19 06:36 Сейчас в теме
В личку пиши, есть обработка использует пакет XDTO, только она старая.
21. user645801_yyyuuu123q 18.12.19 07:14 Сейчас в теме
(20)
Не отправляется вам личное сообщение
22. aaguselnikova 20 18.12.19 08:26 Сейчас в теме
23. user645801_yyyuuu123q 18.12.19 09:52 Сейчас в теме
24. starik-2005 3088 18.12.19 10:49 Сейчас в теме
Хмл = новый ЧтениеXML;
...Открыть файло
ОбъектХДТО = ФабрикаХДТО.ПрочитатьXML( хмл, );

Тут в объектХдто упасти должен объектный интерфейс типа файла, который был открыт Но! Хмл - это формат, в котором все открытые теги должны быть закрыты. И он не прочитается, если это не ьак. В хтмл - там могут быть "послабления" типа незакрытых тегов BR или IMG, но в правильном файле и они должны юыть закрыты, т.е когда видишь что в хтмл написано
< BR / > 
- это не пиженство а строгое следлвание стандарту, чтобы потом можно было разобрать такой файл с помощью таких вот библиотек, котооые юзают разрабы 1С.
25. user645801_yyyuuu123q 19.12.19 08:49 Сейчас в теме
Понимаю, что тема довольна сложная.
Но вот еще вопрос, у Меня есть хсд схемы. Некоторые схемы берут данные из других и имеют признак
<xs:import namespace="http://intellex.ru/Etran/ASUASU/Categories

При загрузки пишет, что в какой-то из схем не указн
таргетнеймспейс
. Я даже вижу в какой.
Это так и должно быть, или разработчик что то не доделал? И Можно ли указать какой нибудь свой таргет и не будет ли как то влиять это на работу пакетов?
28. aaguselnikova 20 20.12.19 11:01 Сейчас в теме
29. aaguselnikova 20 20.12.19 11:04 Сейчас в теме
https://infostart.ru/public/1122579/ преобразование в xml в дерево значений.
user645801_yyyuuu123q; +1 Ответить
30. user645801_yyyuuu123q 21.12.19 04:37 Сейчас в теме
(29) Спасибо за темы. Тогда теперь такой вопрос.
Структура пакета во вложении. По чуть чуть начинаю разбираться и понимать. Спасибо тем кто помогает в теме

Мой код:
ПакетGetInform = ФабрикаXDTO.Пакеты.Получить("Nikita");
СвойствоGetInform = ПакетGetInform.КорневыеСвойства.Получить("GetInform");
//Создадим сам объект для тела запроса
ОбъектGetInform = ФабрикаXDTO.Создать(СвойствоGetInform.Тип);
ОбъектGetInform.UseGZIPBinary = "1";
//XML файл	
 ЗаписьXML = Новый ЗаписьXML;
 ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8");
 ЗаписьXML.УстановитьСтроку(ПараметрыЗаписиXML);
 ЗаписьXML.ЗаписатьОбъявлениеXML();
 ЗаписьXML.ЗаписатьНачалоЭлемента("GetInform","");
 //ОбъектGetInform.UseGZIPBinary = "1"; 
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектGetInform, СвойствоGetInform.ЛокальноеИмя);
ЗаписьXML.ЗаписатьКонецЭлемента();
XMLЗапрос = Новый Структура();
XMLЗапрос.Вставить("XMLTекст", ЗаписьXML.Закрыть());
Показать


Результат.
<?xml version="1.0" encoding="UTF-8"?>
<GetInform>
<GetInform xmlns="Nikita" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<UseGZIPBinary>1</UseGZIPBinary>
</GetInform>
</GetInform>


А Нужен такой результат:


<?xml version="1.0" encoding="UTF-8"?>
<GetInform>
<UseGZIPBinary>1</UseGZIPBinary>
</GetInform>
Что не так Я делаю?
Прикрепленные файлы:
31. aaguselnikova 20 23.12.19 04:04 Сейчас в теме
Доброго времени суток. Если ты о том,что у тебя пишется в файл, то тебе в конфигуратор, к точкам останова...
33. user645801_yyyuuu123q 25.12.19 09:36 Сейчас в теме
(31) мало о чем говорит)
Я сделал все как по учебнику. ЧТо пишется знаю. Вопрос как сделать чтобы писалось правильно. Может у Меня учебник не тот.
32. user645801_yyyuuu123q 24.12.19 09:13 Сейчас в теме
не у кого мыслей нет на этот счет?
34. aaguselnikova 20 25.12.19 10:23 Сейчас в теме
35. aaguselnikova 20 25.12.19 11:06 Сейчас в теме
Тестирование, отладка, Сервис-параметры-дополнительные- нужно галочки проставить, чтоб отладка работала, затем при запуске в сервисе тоже выбрать параметры запуска и в интернете почитай. там с картинками.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот