0. Evil Beaver 6351 28.01.13 12:38 Сейчас в теме

XDTO - часть 3

Мы продолжаем цикл статей по изучению подсистемы XDTO в 1С:Предприятие. Это третья часть, в которой мы будем работать непосредственно с подсистемой, рассмотрим главные строительные блоки подсистемы и рассмотрим небольшой пример кода.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
99. kpakaguJL 23.05.14 10:08 Сейчас в теме
(98)
Извини что напрягаю, но в комментах или модеры или какойто автофильтр удаляют ссылки, хотя на самом деле это же "типо-ссылки")

вот такой код у меня на выходе



а очень хочется видеть вот такой



этот мусор в тегах, к сожалению, мешает обработке
спасибо большое
101. Evil Beaver 6351 24.05.14 08:46 Сейчас в теме
(99) kpakaguJL, вы что-то не то делаете. Это не мусор, это важная информация о пространствах имен. Обработке он не мешает. Если, конечно, вы не обрабатываете XML, вручную выделяя подстроки функцией Сред.
Какой обработке это мешает, поясните, пожалуйста?
105. kpakaguJL 28.05.14 12:27 Сейчас в теме
(101) обмениваемся данными ide через провайдера. че он там с ним делает, я к сожалению не знаю, но делает он это не в 1с и судя по всему разбирает построчно.
100. kiruha 380 23.05.14 11:49 Сейчас в теме
Ожидается ли продолжение ?
Например выяснилось что непонятна информация со встроенном объектом ПакетXDTO - ТипыОбъектов/Определение типа ...
как они отображаются в XML, как делать чтобы в свойстве можно было содержать несколько разных типов и т.д.
102. Evil Beaver 6351 24.05.14 08:47 Сейчас в теме
(100) kiruha, продолжения не ожидается. А то, что вы спрашиваете, это уже черная магия по созданию пакетов на лету. Мне сложно придумать задачу, где это бы пригодилось реально.
103. kiruha 380 26.05.14 14:43 Сейчас в теме
(102)
Да обычный случай.
Загрузил сторонний пакет типов xsd - при загрузке схемы насоздавалить эти самые "ТипыОбъектов" "Определение типа"
104. Evil Beaver 6351 27.05.14 09:42 Сейчас в теме
(103) kiruha, вы так говорите, как будто, это что-то плохое :)
106. kiruha 380 29.05.14 16:07 Сейчас в теме
(104)
Просто не пойму что это )
В инете что то есть, но такое впечатление что информация добывается методом тыка )
107. kpakaguJL 02.06.14 18:54 Сейчас в теме
Подскажите, пожалуйста, как нужно задать схему чтобы прочитать подобного плана XML

<Параметри>
<Параметр ІД="1" назва="Дата ожидаемой поставки">2013-12-18</Параметр>
<Параметр ІД="2" назва="Валюта">Грн</Параметр>
<Параметр ІД="3" назва="Дата отправки документа">2013-12-17</Параметр>
</Параметри>


как бы не крутил, считывает только Ид и Название, а само значение не видит..
108. kpakaguJL 03.06.14 10:23 Сейчас в теме
я так понимаю это нужно делать через content
пробую - при записи в xml все работает отлично, а вот при обратной раскладке не получается( не видит поле content
109. dmnblg 10.07.14 10:41 Сейчас в теме
День добрый, подскажите пожлауйста, есть ли способ теперь получить текст XML без записи в файл?

ФабрикаXDTO.ЗаписатьXML() позволяет создать один из объектов:
ЗаписьУзловDOM, ЗаписьFastInfoset, ЗаписьXML

но не через один из них не могу добраться до самого текста XML.

Через сохранение файла, конечно, работает, но хотелось бы обойтись оперативной памятью.
Есть способ?
110. Evil Beaver 6351 10.07.14 11:19 Сейчас в теме
(109) dmnblg,
Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку() // показываем, что вывод будет в строку
Запись.ЗаписатьНачалоЭлемента("ТЫРПЫР"); // заполняем документ
//.....

// ВАЖНО: если вызывался метод "УстановитьСтроку", то "Запись.Закрыть()" возвратит результат записи.
ТекстXML = Запись.Закрыть();

Показать
111. magiker 05.08.14 10:40 Сейчас в теме
Добрый день. Подскажите, как быть в ситуации, когда в схеме определено пространство имен, а в самом XML-документе - нет. Кроме пространства имен документ полностью соответствует схеме, можно ли из него получить ОбъектXDTO? Сейчас ругается на несоответствие типов в документе схеме.
112. Evil Beaver 6351 05.08.14 21:59 Сейчас в теме
(111) magiker, ну первое, что приходит в голову - считать документ в DOM, и средствами DOM проставить атрибут xmlns="нужное пространство имен". Затем настроить ЧтениеУзловDOM на измененный документ и скормить это Чтение ФабрикеXDTO.
113. magiker 08.08.14 13:31 Сейчас в теме
(112) спасибо за ответ. Попробую и отпишусь о результате.
114. user_2010 439 10.12.14 11:40 Сейчас в теме
Добрый день!
Есть вопрос по XDTO:
когда в своем пакете XDTO описываем свои типы, у типов - описываем поля, то для каждого поля в свойствах можно настроить следующие параметры:
Имя
Ссылка
Тип
Мин колво
... и т.д.
Меня интересуют два параметра: Ссылка и Тип
что означает параметр Ссылка? - подозреваю, что признак, что данное поле будет содержать ссылку на объект конфигурации.
И как должен быть заполнен параметр Тип, если будет установлен параметр Ссылка = V?

В своем веб-сервисе я передаю ссылки в виде строки, полученной с помощью функции 1С: ЗначениеВСтрокуВнутр(ВыборкаДетальныеЗаписи.Ссылка)

Это правильно?

Спасибо!
115. Evil Beaver 6351 10.12.14 11:48 Сейчас в теме
(114) user_2010, нет, Ссылка в типе XDTO не имеет ничего общего со ссылками в метаданных.

Если вкратце, то это довольно мутный, но интересный способ комбинирования типов внутри XML-схем. Копайте в сторону xml-schema ref attribute. В рамках камента не объяснишь)
117. 987ww765 251 28.01.15 17:32 Сейчас в теме
(115) у меня есть один вопрос, который никак не дает покоя.

Кстати, конфигурацию-болванку можно заменить кодом из второго способа создания фабрики.

1.Создаем фабрику вторым конструктором (на основании НабораСхемXML)
2.Из этой фабрики выгружаем Model методом ЭкспортМоделиXDTO().
3.Получаем Model, для сохранения в макете и использования в боевом режиме.


У меня никак не получается это проделать. Видимо я некорректно трактую эти строки. Пытаюсь выполнить следующий код:
Чтение = Новый ЧтениеXML;
	Чтение.УстановитьСтроку(СтрокаXML);
	
	ПостроительDOM = Новый ПостроительDOM;
	Документ = ПостроительDOM.Прочитать(Чтение);

	ПостроительСхем = Новый ПостроительСхемXML;	
	Схема = ПостроительСхем.СоздатьСхемуXML(Документ);
	
	НаборСхем = Новый НаборСхемXML;
	НаборСхем.Добавить(Схема);
	Фабрика = Новый ФабрикаXDTO(НаборСхем);
	Модель = Фабрика.ЭкспортМоделиXDTO(ПространствоИмен);
Показать


СтрокаXML хранит полный текст XML-файла. В результате исполнения в переменную Схема возвращается Неопределено.
118. Evil Beaver 6351 28.01.15 23:15 Сейчас в теме
(117) 987ww765, дайте текст XML, который у вас записан в переменную СтрокаXML?
119. 987ww765 251 29.01.15 08:19 Сейчас в теме
(118)
<?xml version = "1.0" encoding="UTF-8"?>
<Result xmlns="http://MoeProstranstvoImen.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<recordsreturned>0</recordsreturned><Success>1</Success><Fai­lureReasons></FailureReasons><logged>29/01/2015 05:17:27</logged></Result>
120. 987ww765 251 29.01.15 08:23 Сейчас в теме
(118) там хравнится вот это
 <?xml version = "1.0" encoding="UTF-8"?>
<Result xmlns="http://MoeProstranstvoImen.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<recordsreturned>0</recordsreturned><Success>1</Success><Fai­lureReasons></FailureReasons><logged>29/01/2015 05:17:27</logged></Result>
121. Evil Beaver 6351 29.01.15 10:57 Сейчас в теме
(120) 987ww765, Ну вы жжоте, вообще... Это же не XML-схема. Зачем вы пытаетесь создать схему на основе этого документа?
122. 987ww765 251 29.01.15 11:46 Сейчас в теме
(121) прочитать файл с помощью xml-схемы документа у меня получилось, но вот саму Xml-схему я получаю инструментом XSD.exe из поставки VisualStudio. Я ему скармливаю файлик, а он возвращает мне Xsd. В данном случае я хотел отказать от посредника-утилитки и сделать все в рамках 1с с помощью метода ЭкспортМоделиXDTO(). Но видимо у меня ничего не выйдет. Можете тогда пояснить на конкретном примере вот эти строчки:
Кстати, конфигурацию-болванку можно заменить кодом из второго способа создания фабрики.

1.Создаем фабрику вторым конструктором (на основании НабораСхемXML)
2.Из этой фабрики выгружаем Model методом ЭкспортМоделиXDTO().
3.Получаем Model, для сохранения в макете и использования в боевом режиме.


Большое спасибо, что тратите свое время на мои вопросы.
invertercant; +1 Ответить
123. Evil Beaver 6351 29.01.15 18:28 Сейчас в теме
(122) 987ww765, все-таки, я не до конца понял. Откуда возникает сама схема XML? В виде документа. Что вы скармливаете Visual Studio? тот фрагмент, который привели ранее?
А он вам возвращает схему XML в виде какого-то файла, так?. Ну вот этот вот файл схемы и надо скармливать объекту ПостроительDOM

Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(СтрокаXML); // СтрокаXML - это тот самый xml, который вам вернул XSD.exe.
ПостроительDOM = Новый ПостроительDOM;
Документ = ПостроительDOM.Прочитать(Чтение);


И далее по тексту.
124. 987ww765 251 30.01.15 08:25 Сейчас в теме
(123) да, все верно. Я скармливаю XML, который привел выше, XSD.exe и он мне выдает схему XML. Эту схему я отдаю объекту DOM и все замечательно. Все работает. У меня вопрос в другом, как мне избавится от XSD.exe и получить схему XML средствами 1с? Только через болванку?
125. Evil Beaver 6351 30.01.15 17:35 Сейчас в теме
(124) 987ww765, Вам схему из документа нужно генерить разово? Если да, сделайте ее в xsd.exe и пользуйтесь. Если вам нужно постоянно генерить схемы из готовых документов, то:

а) зачем вам это нужно?
б) это ненадежно. Алгоритм выведения схемы из документа всегда эмпирически определяет возможную схему. Она нестабильна
в) в 1С такой возможности нет.
116. unichkin 15.12.14 16:37 Сейчас в теме
126. unichkin 06.02.15 15:04 Сейчас в теме
Добрый день. Не так давно работаю с XDTO, и ваши статьи внесли некоторую ясность - за что огромное спасибо, - но окончательно туман не рассеялся) Например у вас не описано как работать с свойствами объекта. У вас написано "Если мы посмотрим в стандартный редактор пакетов, то увидим строгое разделение на "Типы значений" и "Типы объектов"." (последний абзац в разделе "Устройство пакета"). Но не написано, что у объекта есть свойства, как с ними работать, и главное - во что они в итоге превратятся.
Взял для примера пакет XDTO из типовой конфигурации УТ УАС, пространство имен указано - "ZAKTPRM". Все что было дальше видно в прикрепленном скриншоте. Я создал объект XDTO "Файл", и в созданном объекте ожидал увидеть что-то типа х_Файл.Документ.КНД, с значением - пустой строкой. Дальше я наивно ожидал что установлю туда свое значение, например "МояСтрока", и это все выгрузится в нечто, типа такого:
<Файл>
...
<Документ КНД = "МояСтрока" />
...
</Файл>
Однако отладчик показывает что х_Файл.Документ - неопределено, а создать объект XDTO "Документ" по аналогии с объектом "Файл" - платформа не дает. Очевидно, потому что это свойство. Но что же мне с ним делать?) Пожалуйста, помогите разобраться?
Прикрепленные файлы:
127. unichkin 06.02.15 15:09 Сейчас в теме
+ Кроме того, у свойств объекта есть свои, вложенные свойства (см. скрин). А также свойства есть у самого *пакета* - находятся на одном уровне с объектам и значениями. Если можно, просветите еще вот по этому.
Прикрепленные файлы:
128. Andywar 06.02.15 15:52 Сейчас в теме
Как быть если при использовании внешнего сервиса в нем описаны не все нужные мне XDTO-пакеты. Но у меня есть XSD схемы присланные разработчиком. Могу ли я сформировать XDTO объект на основании импортированных в 1С схем и его передавать как параметр метода web-сервиса.
Если так сделать то пишет:

Неизвестная ошибка. Несоответствие типов XDTO:
Тип принадлежит пакету, входящему в состав другой фабрики типов XDTO


Разработчик веб-сервиса сделать импорт схемы в WSDL не может
А что делать в этом случае?
Armaggik; +1 Ответить
136. Evil Beaver 6351 09.02.15 23:37 Сейчас в теме
(128) Andywar, могу ошибаться, но по-моему, нельзя подменить wsdl, присылаемый удаленным веб-сервисом. Возможно, я не прав.
129. unichkin 06.02.15 16:00 Сейчас в теме
Кстати, к моему первому посту. Выгрузил пакет в файл xsd, и воспользовался вот этим замечательным сервисом - http://xsd2xml.com/. В итоге получил xml, где как и ожидал: свойство "Документ" - это субтег, подчиненный корневому тегу "Файл", а "КНД", "ДатаДок" и "ВремДок" - это его атрибуты простого типа.
invertercant; +1 Ответить
130. Evil Beaver 6351 06.02.15 18:04 Сейчас в теме
(129) zhuravlik, да, изменить пакет в этом случае проще, чем долбаться со свойствами.
131. unichkin 06.02.15 18:42 Сейчас в теме
(130) нет, проще - не вариант. У меня смысл в том, чтобы задолбаться до того состояния, пока понятно не станет. Вот, стараемся. Можете приоткрыть завесу в (126) посту? И в (127)...
132. Evil Beaver 6351 07.02.15 08:46 Сейчас в теме
(131) zhuravlik, Дайте готовый xsd, пожалуйста
133. unichkin 07.02.15 14:37 Сейчас в теме
(132) вот xsd схема, а это пример xml, который я сгенерировал на сайте http://xsd2xml.com/
143. Evil Beaver 6351 13.03.15 16:25 Сейчас в теме
(133) zhuravlik, Ответ на ваш вопрос также дан в (140)
134. unichkin 07.02.15 14:55 Сейчас в теме
Я уж раз начал, задач вам еще вопрос? Имхо, вы с таким сталкивались. Можно ли средствами XDTO сгенерировать вот такой xml:

<Одежда>
<Обувь>
Наименование = "Ботинки"
Качество = "Дырявые"
<Упаковка Наименование="Пара" Коэффициент="1"/>
<Упаковка Наименование="Коробка" Коэффициент="4"/>
<Упаковка Наименование="Паллета" Коэффициент="100"/>
</Обувь>
</Одежда>

Т.е. получается что в корневом теге "Одежда" указан субтег "Обувь", который имеет атрибуты, и в то-же время является списком. Насколько я сейчас понял с т.з XDTO - это некошерно?
Сам себе отвечу. При генерации xsd схемы в программе Altova XML Spy, атрибуты "Наименование" и "Качество" вместе с их значениями стали просто текстом, а субтег обувь - списком элементов "Упаковка".
Приложил скриншот, как это в итоге считалось в 1С.
Прикрепленные файлы:
135. Andywar 09.02.15 12:46 Сейчас в теме
Поделитесь, пожалуйста, хоть какими то идеями на пост 128
137. Andywar 10.02.15 11:30 Сейчас в теме
Спасибо, Evil Beaver
Похоже, что Вы абсолютно правы. По крайней мере ни где на просторах интернета я не нашел решение этого вопроса.
В документации 1С написано:
...глобальная XDTO фабрика (получаемая через свойство глобального контекста ФабрикаXDTO) не может быть использована для создания объектов и значений для передачи через прокси, даже если она содержит типы с такой же структурой и именами. Эти типы все равно будут считаться несовместимыми с типами данных web-сервиса.


Однако поставщик web-сервиса пишет:
напрямую сделать импорт схемы в WSDL не можем. WSDL описывает сервис универсальной системы обработки заявок, которая обрабатывает не только заявки из этой схемы и логически не может зависеть от них.


Будем общаться...
Armaggik; +1 Ответить
138. Alexei_fox 41 17.02.15 08:18 Сейчас в теме
Как с помощью XDTO получить вот такую строку в xml ? <Картинка Описание="Описание">путь к картинки относительно xml файла.jpg</Картинка>

Так то не проблема !!!
<Картинка>
<Описание>import_files/88/8868f46e-9d44-11e4-acb8-001e90f93bad_6098c20e-a850-11e4-85dc-001e90f93bad.jpeg</Описание>
</Картинка>

А разработчик приемника хочет именно <Картинка Описание="Описание">путь к картинки относительно xml файла.jpg</Картинка> ...

Есть мысли у кого ?
139. Dr.ZIG 27 11.03.15 12:45 Сейчас в теме
Имеется присланный файл .xsd (прикрепил к сообщению), добавил только пространство имён, загружается в 1С так, как на прикреплённом рисунке. То есть основа не типы объектов, как рассказывается в цикле статей, а дерево свойств, про которые я в статье информации не нашёл. Создать фабрику с типом-"свойством" не выходит. Можно где-то про свойства почитать?
Прикрепленные файлы:
запрос-получение части сведений об ОУ.xsd
140. Evil Beaver 6351 11.03.15 14:53 Сейчас в теме
(139) Dr.ZIG, здесь используется хитрый трюк:

1. Мы получаем родительский тип. В вашем случае - Root
2. У этого типа методом Свойства().Получить("AuthData") получаем свойство XDTO
3. У этого свойства есть метод Тип(). Он вернет вам некий анонимный тип, который можно передать в фабрику для создания объекта
4. Вызываете ФабрикаXDTO.Создать и передаете ей этот анонимный тип. Она вам возвращает экземпляр объекта этого типа.
141. spetzpozh 13.03.15 11:23 Сейчас в теме
Оплатил пример из уважения к автору и его труду
142. Evil Beaver 6351 13.03.15 16:23 Сейчас в теме
(141) spetzpozh, Спасибо за теплые слова и высокую оценку!
144. igo1 224 17.03.15 18:28 Сейчас в теме
Спасибо за статью.
Не подскажете как можно установить и объявить префикс пространства имен с помощью фабрики
145. Evil Beaver 6351 23.03.15 11:46 Сейчас в теме
(144) igo1, Если я правильно вас понял, то вы хотите избавиться от автоматических префиксов в стиле "d1p2"?
Фабрика этого не делает, вам нужно самостоятельно в объекте ЗаписьXML вывести префикс пространства имен в XML. Далее, фабрика сама подхватит ваш префикс.
146. Templ 07.05.15 11:46 Сейчас в теме
Здравствуйте

Если у объекта есть табличная часть как их связать вместе?

	Фабрика = СоздатьФабрикуXDTO("D:\1С\СтруктураКонечнойИБ.xsd",);

	ТипДокумента = Фабрика.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config", "DocumentObject.РеализацияТоваровИУслуг");
	ТипТаблЧасть = Фабрика.Тип("http://v8.1c.ru/8.1/data/enterprise/current-config", "DocumentTabularSectionRow.РеализацияТоваровИУслуг.Товары");  	
	
	РеализацияОбъект = Фабрика.Создать(ТипДокумента);
    ТабличнаяЧасть   = Фабрика.Создать(ТипТаблЧасть);



147. Evil Beaver 6351 08.05.15 08:33 Сейчас в теме
(146) Templ, какую задачу вы решаете?
148. engineer74 26.07.15 12:53 Сейчас в теме
Ошибка при создании собственного пакета Фабрики. Вопрос: Как в собственном пакете у свойства указать тип родной конфигурации (CatalogObject.Банки (http://v8.1c.ru/8.1/data/enterprise/current-config)). Мне выходит ошибка Ошибка проверки модели XDTO: xdto-objectType-3.2.1 тип: DocumentObject.Реестр пакет: my1c
Тип '{http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.Банки' свойства 'Банк' не определен
149. engineer74 26.07.15 14:45 Сейчас в теме
Хотелось бы увидеть раскрытие темы прикладной задачи: Обмен между различными конфигурациями, используя XDTO.
150. fineosun 28.07.15 14:56 Сейчас в теме
Evil Beaver, спасибо за статьи! И отдельное - за учебный пример. Вроде, ничего сложного, но некоторые вещи стали значительно понятнее.
151. Evil Beaver 6351 29.07.15 20:19 Сейчас в теме
(150) fineosun, и вам спасибо за приобретение!
152. kasper076 48 27.08.15 07:12 Сейчас в теме
В последних версиях платформы появилась возможность выгружать структуру конфигурации в файлы. Так вот при выполнении этой команды в том числе создается файл "Configuration.xml" с пространством имен "http://v8.1c.ru/8.3/MDClasses". При создании объекта модели с помощью прилагающейся здесь обработки не получается найти пакет соответствующий этому пространству имен. Думаю, что это логично, т.к. файл не содержит данных об объектах конфигурации и по сути не относится к XDTO. Файл содержит свойства самой конфигурации. А как-то получить XSD-схему описывающую характеристики самой конфигурации?
Если работать с файлом "Configuration.xml" полученным из этой же конфигурации, глобальная ФабрикаXDTO читает этот файл, видимо неявно применяя нужную схему. Но что если возникнет необходимость разобрать этот файл на другой версии платформы?
153. Evil Beaver 6351 28.08.15 11:01 Сейчас в теме
(152) kasper076,
А как-то получить XSD-схему описывающую характеристики самой конфигурации?

Никак. 1С не публикует эти схемы, насколько я знаю.
Если работать с файлом "Configuration.xml" полученным из этой же конфигурации, глобальная ФабрикаXDTO читает этот файл, видимо неявно применяя нужную схему.

Нет, ФабрикаXDTO просто читает, не применяя вообще никаких схем. Фабрика умеет читать любые файлы без наличия схемы, но это чтение будет не строго типизированным. Прочитанный объект будет типа anyType.
154. kasper076 48 30.08.15 12:31 Сейчас в теме
(153) да. Перечитав эту тему в n-й раз я узнал, что Фабрика легко читает любой XML-файл, но не типизирует значения полей. Еще раз спасибо.
172. SlavaKron 29.08.19 14:57 Сейчас в теме
(152) Какие-то xsd есть в ресурсах программы и доступны в коде:
Фабрика = СоздатьФабрикуXDTO("v8res://mngcore/logform.xsd");
или
НачатьКопированиеФайла(Новый ОписаниеОповещения("ПослеКопированияФайла", ЭтотОбъект), "v8res://mngcore/logform.xsd", "D:\logform.xsd");
Evil Beaver; +1 Ответить
155. Armaggik 09.10.15 18:16 Сейчас в теме
Evil Beaver, спасибо за Ваши статьи, многое прояснили. У меня такая же проблема, как и у Andywar. Есть открытый api сервиса заявок россельхознадзора: http://api.vetrf.ru/schema/platform/services/ApplicationManagementService_v1.2.wsdl
Разработчики дают набор XSD схем, в которых описаны все типы, в WSDL схеме описан минимум типов.
Так вот, если импортировать XSD схемы в конфигурацию 1С, то, естественно, при передаче такого объекта XDTO в параметре метода веб сервиса вызывается исключение о несовпадении типов, т.к. фабрики XDTO получаются разными.

В WSDL схеме описан грубо говоря 1 метод, который отправляет заявку (в WSDL это тип объекта ApplicationData - абстрактный), а по ее типу веб сервис понимает что нужно сделать. Например, в ApplicationData может быть передан объект registerProductiveBatchRequest

Нет ли у Вас хоть каких то идей на этот счет?
156. danjer74 1 07.01.16 21:48 Сейчас в теме
статьи очень полезные, многое стало ясно. Но возник вот такой вопрос. Не могу сообразить, как добавить в XDTO вложенный тег. Я пытался добавить, но не могу сообразить, как работать с "определение типа". Или же свойства использовать - тоже не могу сообразить, как теги добавить в xml. В схеме есть root - это главный узел, куда я все собираю. Есть еще item внутри - это номенклатура. Как бы в выходной xml файл загнать что-то типа вот такого:

<items>
<item>
Номенклатура 1
</item>
<item>
Номенклатура 2
</item>
<item>
Номенклатура 3
</item>
</items>

Все остальное заполняется нормально - застрял только тут.
На всякий случай прилагаю обработку и схему. обработка сделана для УТ10
Прикрепленные файлы:
upload.xsd
ОбработкаРТИУ10.epf
157. user_2010 439 15.07.16 12:22 Сейчас в теме
Проблема: создали свой XDTO, в нем свои типы, в состав типов входят свойства - строка и свойства Boolean.
Со строками проблем нет.
Но вот с Boolean - получается, что эти поля должны быть всегда заполнены? Иначе ругается:
Ошибка проверки данных XDTO:
Значение: '' не соответствует простому типу: {http://www.w3.org/2001/XMLSchema}boolean</faultstring>
Пробовали указать для этого свойства "значение по умолчанию" = False - все-равно ошибка.
Как это обойти?
Спасибо!
158. user_2010 439 18.07.16 11:27 Сейчас в теме
(157) user_2010, все таки надеюсь, что найдутся гуру веб-сервисов...

по сообщению выше: пришлось заменить все Boolean на строки - по другому не смогла победить. Вроде бы работает... но проблемы не кончились.

В фабрике XDTO определено 2 типа: Contr - это данные одного контрагента (наименование, ИНН, КПП...)
и ContrList - это список контрагентов, элементы которого имеют тип Contr

Веб-сервису передаем 2 параметра (входных-выходных): Contr и ContrList. Веб-сервис смотрит данные контрагента в Contr и если такой контрагент в базе уже есть - то возвращает всех найденных контрагентов в параметре ContrList.
Если смотреть работу веб-сервиса в SoupUI - то все работает - найденные контрагенты возвращаются.
Если вызывать веб-сервис из 1С - то ContrList - не возвращает... Не пойму почему???

Предполагаю - что-то с типами????
Где копать? Куда глядеть?
159. user_2010 439 18.07.16 14:51 Сейчас в теме
(158) user_2010, с проблемой разобралась - ошибка была в том, что я не заполняла одно из полей своего типа данных...
160. zerg17 25.11.16 16:38 Сейчас в теме
На вопросы 107 и 138 никто не знает ответа???
С той же бедой столкнулся: список идентификаторов из тега получаю, а само значение параметра не знаю как получить.
161. Serginio 798 25.11.16 17:51 Сейчас в теме
(169) Схему можно описать так
http://www.forum.mista.ru/topic.php?id=726414#18

И получить значение через Объ.__content
или
Объ.Последовательность().ПолучитьТекст(0))
162. zerg17 26.11.16 01:50 Сейчас в теме
(161) Спасибо огромное, через "Последовательность" получил.
Правда добирался обходными путями, в >чтение.УстановитьСтроку(стр);
что за строка "стр", откуда она?
163. karapuzzzz 63 21.09.17 17:10 Сейчас в теме
Кто-нибудь сталкивался с необходимостью использования секции CDATA?
165. extrim-style 7 23.06.18 11:44 Сейчас в теме
Нужно в XML заполнить список ПараметрыТовара элементами Товар. Не получается добавить новый элемент. Подскажите, как это сделать. Пробую так:

ПараметрТовараXMLТип = ПараметрыТовараXMLТип.Свойства.Получить("Параметр").Тип;
ПараметрТовараXML = ФабрикаXDTO.Создать(ПараметрТовараXMLТип);
ПараметрТовараXML.ПолноеИмяПараметра = НекоеНаименование;
ПараметрТовараXML.__content = ЗначениеПараметра;
ПараметрыТовараXML.Добавить(ФормаXML.Элемент, ПараметрТовараXML.Тип().URIПространстваИмен, "Параметр", ПараметрТовараXML);

Ошибка при вызове метода контекста (Добавить)
ПараметрыТовараXML.Добавить(ФормаXML.Элемент, ПараметрТовараXML.Тип().URIПространстваИмен, "Параметр", ПараметрТовараXML);
по причине:
Несоответствие типов XDTO:
Тип '' не соответствует типу '{ТутСсылкаНа-w3-org-2001-XMLShema-ПриветМодераторамХорошихВыходных!}anyType'
Тип свойства не соответствует типу значения

В XDTO-пакете для свойства Параметр после загрузки схемы никакой тип не установлен. Одно значение заполняется нормально. Но как добавить несколько?
166. extrim-style 7 23.06.18 13:17 Сейчас в теме
167. Negator 03.07.18 10:58 Сейчас в теме
Народ, а подскажите как используя XSD-схему собирать XML с несколькими корневыми свойствами?
Я создал фабрику XDTO, создал столько объектов сколько у меня корневых свойств (с соответствующими типами), заполнил их - как их теперь собрать в один XML-файл?
168. ids79 4225 10.12.18 09:14 Сейчас в теме
Добрый день.
Подскажите пожалуйста, а зачем вообще необходимо создавать собственные фабрики?
В каких случаях их удобнее использовать, чем предоставляемую платформой?
169. koln 17.12.18 16:21 Сейчас в теме
Спасибо автору за полезный материал!
171. maslennikov_ea 1 01.03.19 19:02 Сейчас в теме
Подскажите, пожалуйста, куда могут пропадать пакеты из ФабрикаXDTO? Уже у многих пользователей проблема проявляется. На партнерском форуме 1С молчит. Куда копать непонятно (
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Технический лидер, архитектор 1С, руководитель проектов
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Ведущий 1С консультант по БГУ
Омск
зарплата от 50 000 руб. до 95 000 руб.
Полный день

Специалист внедрения и сопровождения 1С
Омск
зарплата от 25 000 руб. до 50 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Ведущий программист 1С
Омск
зарплата от 70 000 руб. до 110 000 руб.
Полный день