![]() |
|
XDTO-пакеты | ☑ | ||
---|---|---|---|---|
0
PuhUfa
19.01.16
✎
08:48
|
Есть сторонний xsd. На основании него, импортом делаю новый XDTO-пакет.
https://pp.vk.me/c633123/v633123674/107af/iiftg4Ezy-c.jpg При попытке выполнить ФабрикаXDTO.Тип("OMS-Tomsk", "ZL_LIST") Получаю Неопределено. Что я не так делаю? |
|||
1
Записьдампа
19.01.16
✎
09:02
|
Пытается использовать имя свойства вместо имени типа.
|
|||
2
PuhUfa
19.01.16
✎
09:15
|
(1) т.е. такая схема не взлетит?
|
|||
3
Записьдампа
19.01.16
✎
09:19
|
(2) Понятия не имею. На картинке выглядит неплохо, если конечно не фотошоп.
|
|||
4
PuhUfa
19.01.16
✎
09:33
|
(3) могу на мыло кинуть -)
Если руками создаю со структурой вида: https://pp.vk.me/c633123/v633123674/107b6/-GDtapEmzjI.jpg то все нормально а со структурой из (0) не хочет -( |
|||
5
Записьдампа
19.01.16
✎
09:44
|
(4) Естественно. Там же вполне по русски написано - на первой картинке ZL_LIST это имя свойства, а на второй - имя типа.
Нельзя создать тип, если его нет. Так-то! =) |
|||
6
PuhUfa
19.01.16
✎
09:48
|
(5) я твой посыл в (1) понял -)
вопрос можно ли это обойти что бы не переносить схему рукам а использовать импортированную. ФабрикаXDTO.Создать(<Тип>) требует "тип" и как его получить для схемы вида (0) я не знаю -( |
|||
7
Записьдампа
19.01.16
✎
09:48
|
В чем вопрос-то? Почему возвращается неопределено?
|
|||
8
Записьдампа
19.01.16
✎
09:49
|
(6) А. Получи у пакета свойство по имени и возьми у него тип, там метод есть. Будет вполне себе анонимный тип
|
|||
9
RomaH
naïve
19.01.16
✎
09:52
|
(0) это нормально
для того что бы типы понимало их надо РУКАМИ описывать но, поверь - оно тебе не надо package = ПолучитьСтруктуруТиповXDTOПакета(ФабрикаXDTO.Тип(ИмяПакета,"package")); КорневойРаздел = ФабрикаXDTO.Создать(package.Тип); КорневойРаздел.body = ЗаполнитьДокумент(РезультатЗапросаПоДокументам, package.body,ПериодОтчета,ИмяПакета); // Возвращает структуру со всеми типами: // каждое имя структуры содержит обязательное поле Тип // и необязательное поле с подчинённой структурой следующего типа // например: package.Тип - тип корневого элемента // package.body - подчинённый элемент // package.body.Тип - тип элемента body // package.body.bill - подчинённый элемент // package.body.bill.Тип - тип элемента bill Функция ПолучитьСтруктуруТиповXDTOПакета(ТекущийЭлемент) ТипЭлемента = Новый Структура("Тип", ТекущийЭлемент); Для каждого Свойство из ТекущийЭлемент.Свойства Цикл Если Свойство.Форма = ФормаXML.Элемент Тогда ТипЭлемента.Вставить(Свойство.Имя, ПолучитьСтруктуруТиповXDTOПакета(Свойство.Тип)); КонецЕсли; КонецЦикла; Возврат ТипЭлемента; КонецФункции |
|||
10
RomaH
naïve
19.01.16
✎
09:54
|
||||
11
RomaH
naïve
19.01.16
✎
09:56
|
(0) на кого работаешь?
|
|||
12
RomaH
naïve
19.01.16
✎
10:00
|
у нас получилось из исходником вытянуть вот такую структуру
http://cloud.screenpresso.com/tW6ic/2016-01-19_09h59_51.png |
|||
13
Записьдампа
19.01.16
✎
10:04
|
(6) Как-то типа
Пакет = ФабрикаXDTO.Пакеты.Получить("OMS-Tomsk");
Или Тип() это метод, не помню, надо в СП подглядеть. |
|||
14
PuhUfa
19.01.16
✎
10:05
|
(10)(12) Для других регионов есть и такие схемы. А вот ТФОМС Томска прислал схему вида (0).
(11) у нас сеть клиник по РФ. В каждом регионе все по своему. |
|||
15
PuhUfa
19.01.16
✎
10:13
|
(13) Спс. Так взлетает.
|
|||
16
RomaH
naïve
19.01.16
✎
10:42
|
(14) мы её регекспами к такому виду привели
|
|||
17
PuhUfa
19.01.16
✎
12:05
|
(16) понял. спс
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |