1.
user645801_yyyuuu123q
14.12.19 16:41 Сейчас в теме
Здравствуйте друзья. Третий день читаю разбираюсь но понимание не приходит. А точнее приходит но не до конца.
Есть XML файл. Во вложении
Создаю XDTO пакет. Во вложении
5.
user645801_yyyuuu123q
15.12.19 10:53 Сейчас в теме
(4)
Да схема не проблема. По хмл можно легко получить. Вот только даже если Я загружаю схему по хмл файлу.
Вроде выглядит красиво а Мой Xml не читает выдает ошибки
И да, мил человек, задача-то какая? Прочитать 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
по причине:
{ВнешняяОбработка.ВнешняяОбработка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
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
(16)
У Вас в ФабрикеXDTO нет пакета с нужным нэймспейсом "http://service.siw.pktbcki.rzd/",
Директивой импорта указано что нужно брать схемы с "http://service.siw.pktbcki.rzd/".
Поэтому Платформа идет в буквальном смысле на этот адрес и пытается прочитать оттуда схему. Но схемы там нет, там отдается страница ошибки в HTML-виде. Просто попробуйте браузером открыть, чтобы убедиться.
И соответственно, тип getReference14ASUResponse Фабрика не знает из чего строить.
Вам нужно либо явно в Конфигурацию загрузить такой пакет.
Либо программно создать свою собственную Фабрику по схеме - конструктором
Новый ФабрикаXDTO(<НаборСхемXML>, <Пакеты>)
(17)
Если пакет не создан явно, то он должен быть в свойстве Пакеты Фабрики.
Независимо от того, как Вы его туда добавите - программно или он будет импортирован.
Пакеты, созданные явным образом в Конфигурации здесь не отображаются.
Тут в объектХдто упасти должен объектный интерфейс типа файла, который был открыт Но! Хмл - это формат, в котором все открытые теги должны быть закрыты. И он не прочитается, если это не ьак. В хтмл - там могут быть "послабления" типа незакрытых тегов BR или IMG, но в правильном файле и они должны юыть закрыты, т.е когда видишь что в хтмл написано
< BR / >
- это не пиженство а строгое следлвание стандарту, чтобы потом можно было разобрать такой файл с помощью таких вот библиотек, котооые юзают разрабы 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.Закрыть());
Тестирование, отладка, Сервис-параметры-дополнительные- нужно галочки проставить, чтоб отладка работала, затем при запуске в сервисе тоже выбрать параметры запуска и в интернете почитай. там с картинками.