![]() |
![]() |
![]() |
|
8.1 XDTO проблема при создании ЗначениеXDTO ₽ |
☑ | ||
---|---|---|---|---|
0
DS_SD
06.06.08
✎
17:23
|
Подскажите, пожалуйста, что делаю не так...
При сериализации справочника возникает проблема с реквизитами, которые имеют тип перечисления и не заполнены ОбъектXDTO.Проверка() выдает следующее: Структура объекта не соответствует типу: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ТипыЦенНоменклатуры Проверка свойства 'СпособРасчетаЦены': форма: Элемент имя: {http://v8.1c.ru/8.1/data/enterprise/current-config}СпособРасчетаЦены тип: {http://v8.1c.ru/8.1/data/enterprise/current-config}EnumRef.СпособыРасчетаЦены Отсутствует обязательное свойство Присваиваю значение свойству так: ОбъектXDTO.СпособРасчетаЦены = Фабрика.Создать(ТипЗначенияXDTO, Спр.СпособРасчетаЦены); ТипЗначенияXDTO содержит тип {http://v8.1c.ru/8.1/data/enterprise/current-config}EnumRef.СпособыРасчетаЦены |
|||
1
regniws
06.06.08
✎
17:43
|
ну, видимо потому что в схеме, данные поля обязательны для заполнения.
|
|||
2
DS_SD
06.06.08
✎
17:52
|
Если ты о свойстве "Возможно пустое". пробовал, менял - все одно и тоже.
Кстати, функция возвращает такую ошибку: {(1)}: Ошибка при вызове метода контекста (Создать): Ошибка проверки данных XDTO: Значение: '' не соответствует простому типу: {http://v8.1c.ru/8.1/data/enterprise/current-config}EnumRef.СпособыРасчетаЦены Значение не соответствует значениям фасета перечисления |
|||
3
regniws
06.06.08
✎
17:55
|
выгрузи пакет xdto в xsd схему и посмотри на нее глазками в разделе, где проверяются твои перечисления. Может на что тебя натолкнет.
Может глукануло и просто список доступных значений полей не соответствует тому, что есть в базе. |
|||
4
DS_SD
06.06.08
✎
18:07
|
Вот так объявляется перечисление:
<xsd:simpleType name="EnumRef.СпособыРасчетаЦены"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="ПоПроцентнойНаценкеНаБазовыйТип"/> <xsd:enumeration value="ПоВхождениюБазовойЦеныВДиапазон"/> </xsd:restriction> </xsd:simpleType> Вот так справочник: <xsd:complexType name="CatalogObject.ТипыЦенНоменклатуры"> <xsd:sequence> ... ... ... <xsd:element name="СпособРасчетаЦены" type="tns:EnumRef.СпособыРасчетаЦены"/> </xsd:sequence> </xsd:complexType> мысли уже кончились... |
|||
5
regniws
06.06.08
✎
18:11
|
хм.. ну, думаю, что ты у себя проверил, что всего два значения у тебя перечисления в конфигураторе!?
Кстати, в xsd твоем не сказано. что name="СпособРасчетаЦены" необязательно для заполнения. |
|||
6
DS_SD
06.06.08
✎
18:20
|
1) да, эта часть конфы идентична.
2) просто, поскольку это роли не сыграло, вернул взад... еще раз проверил, появилась строка : <xsd:element name="СпособРасчетаЦены" nillable="true" type="tns:EnumRef.СпособыРасчетаЦены"/> толку от нее не увидел |
|||
7
regniws
06.06.08
✎
18:23
|
хм.. а я знаю..
короче, нужно посмотреть, как сериализуется пустое значение перечисления. nilable = true, говорит, что его вообще можно не заполнять, но пустое значение и отсутствие значения - это разные вещи :))) например, если сериализуется в "", то это не nilable = true, и к тому же по рестрикшенам xsd <xsd:simpleType name="EnumRef.СпособыРасчетаЦены"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="ПоПроцентнойНаценкеНаБазовыйТип"/> <xsd:enumeration value="ПоВхождениюБазовойЦеныВДиапазон"/> </xsd:restriction> </xsd:simpleType> это тоже не допустимо попробуй в xsd Руками поправить <xsd:simpleType name="EnumRef.СпособыРасчетаЦены"> <xsd:restriction base="xsd:string"> <xsd:enumeration value=""/> <xsd:enumeration value="ПоПроцентнойНаценкеНаБазовыйТип"/> <xsd:enumeration value="ПоВхождениюБазовойЦеныВДиапазон"/> </xsd:restriction> </xsd:simpleType> или во что оно там сериализуется. |
|||
8
regniws
06.06.08
✎
18:23
|
а, ну и потом xsd загрузить обратно
|
|||
9
DS_SD
06.06.08
✎
18:30
|
))) Кошмар!!! Получилось! Спасибо тебе большое!
А если не ручками, а в конфигураторе, мышкой, такое получится? |
|||
10
regniws
06.06.08
✎
18:31
|
не знаю :)) никогда не работал с xdto :))))
|
|||
11
regniws
06.06.08
✎
18:32
|
да, и хотелось бы, так сказать, мужской комплемент :)
зачетный вопрос, инетерсно было разобраться :))) |
|||
12
DS_SD
06.06.08
✎
18:37
|
Похоже нет. Ничего подобного там не нашел... Ну 1С... :)) Ну такое то надо предусмотреть (при экспорте XML-схемы).
Ладно, теперь буду по аналогии мучать составные типы! Спасибо! |
|||
13
regniws
06.06.08
✎
18:39
|
:)
|
|||
14
DS_SD
06.06.08
✎
18:41
|
11 Спасибо ) надеюсь, ветка кому-н. еще пригодиться
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |