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 1473 15.12.19 10:51 Сейчас в теме
Задача в чем?
Файл хмл это структура.
Он должен формироваться по файлу схемы. Я так понимаю у вас его нет.
5. user645801_yyyuuu123q 15.12.19 10:53 Сейчас в теме
(4)
Да схема не проблема. По хмл можно легко получить. Вот только даже если Я загружаю схему по хмл файлу.
Вроде выглядит красиво а Мой Xml не читает выдает ошибки
6. Xershi 1473 15.12.19 10:55 Сейчас в теме
(5) раз ошибка значит хмл кривой и сделан не по схеме или наоборот схема не для хмл.
7. user645801_yyyuuu123q 15.12.19 10:57 Сейчас в теме
(6)Я уже и рукам хсд сделал и программой ошибки одни теже.
Я вот уже думаю сделаю сам пакет XDTO руками.
Но понимания мало как это делается
10. Xershi 1473 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 958 17.12.19 19:42 Сейчас в теме
(16)
У Вас в ФабрикеXDTO нет пакета с нужным нэймспейсом "http://service.siw.pktbcki.rzd/",
Директивой импорта указано что нужно брать схемы с "http://service.siw.pktbcki.rzd/".
Поэтому Платформа идет в буквальном смысле на этот адрес и пытается прочитать оттуда схему. Но схемы там нет, там отдается страница ошибки в HTML-виде. Просто попробуйте браузером открыть, чтобы убедиться.
И соответственно, тип getReference14ASUResponse Фабрика не знает из чего строить.
Вам нужно либо явно в Конфигурацию загрузить такой пакет.
Либо программно создать свою собственную Фабрику по схеме - конструктором
Новый ФабрикаXDTO(<НаборСхемXML>, <Пакеты>)
18. VKislitsin 958 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 3031 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 Сейчас в теме
Тестирование, отладка, Сервис-параметры-дополнительные- нужно галочки проставить, чтоб отладка работала, затем при запуске в сервисе тоже выбрать параметры запуска и в интернете почитай. там с картинками.
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день