|
XDTO пакет (типы значений) | ☑ | ||
---|---|---|---|---|
0
zoran
06.12.21
✎
13:48
|
Доброго дня, уважаемые форумчане!
Обращаюсь за советом к специалистам по XDTO пакетам, т.к. не работал с XDTO пакетами, а поиск в интернете ничего не дал. Есть схема документа, в котором одно из свойств объекта document описано следующим образом: <xs:element name="status" type="documentStatus" minOccurs="0"/>. Далее описание других полей. В конце: <xs:simpleType name="documentStatus"> <xs:restriction base="xs:string"> <xs:enumeration value="NEW"/> <xs:enumeration value="PROCESSED"/> <xs:enumeration value="DELETED"/> </xs:restriction> </xs:simpleType> Импортировал данную схему в XDTO пакет. В разделе "Типы значений" появился documentStatus -> Перечисление со значениями (NEW, PROCESSED, DELETED). В свойстве status объекта document выбрал этот самый тип documentStatus. Далее прописываю в коде: ТипНакладнаяXDTO = ФабрикаXDTO.Тип("http://iiko.ru/xml/iiko_outgoinginvoice", "document"); НакладнаяXDTO = ФабрикаXDTO.Создать(ТипНакладнаяXDTO); НакладнаяXDTO.documentNumber = СтруктураНакладной.Номер; НакладнаяXDTO.dateIncoming = СтруктураНакладной.Дата; Вопрос заключается в том, как присваивать значение status? НакладнаяXDTO.status = ??? Буду признателен за помощь. |
|||
1
azernot
06.12.21
✎
13:58
|
НакладнаяXDTO.status = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://iiko.ru/xml/iiko_outgoinginvoice", "documentStatus"), XMLСтрока(СтруктураНакладной.СтатусНакладной));
|
|||
2
azernot
06.12.21
✎
14:00
|
+(1) Где XMLСтрока(СтруктураНакладной.СтатусНакладной) = NEW, PROCESSED, DELETED
|
|||
3
PROGRAM1S
06.12.21
✎
14:31
|
(0) Так как базовый тип string, то можно просто указать строку:
НакладнаяXDTO.status = "NEW"; или явно создать тип значения: Тип = ФабрикаXDTO.Тип("http://iiko.ru/xml/iiko_outgoinginvoice", "documentStatus"); Значение = ФабрикаXDTO.Создать(Тип, "NEW"); НакладнаяXDTO.status = Значение; |
|||
4
zoran
06.12.21
✎
14:41
|
Да, у documentStatus базовый тип string, только не http://iiko.ru/xml/iiko_outgoinginvoice , а http://www.w3.org/2001/XMLSchema.
Пишу: НакладнаяXDTO.status = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "documentStatus"), "PROCESSED"); Выдает: Ошибка при вызове метода контекста (Создать): Несоответствие типов (параметр номер '1') |
|||
5
azernot
06.12.21
✎
15:10
|
(4) А синтаксис-помощник у вас украли?
http://iiko.ru/xml/iiko_outgoinginvoice - это пространство имен. У вас вот этот тип <xs:simpleType name="documentStatus"> <xs:restriction base="xs:string"> <xs:enumeration value="NEW"/> <xs:enumeration value="PROCESSED"/> <xs:enumeration value="DELETED"/> </xs:restriction> </xs:simpleType> В каком пространстве имён определён? |
|||
6
zoran
06.12.21
✎
15:26
|
(5) Виноват, я еще не разобрался с этими пакетами, поэтому думал, что тут "ФабикаXDTO.Тип" указывается тип из свойства. Поменял на http://iiko.ru/xml/iiko_outgoinginvoice - создалось без ошибок.
|
|||
7
zoran
07.12.21
✎
09:09
|
Всем откликнувшимся большое спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |