Чтение XML ошибка если тип у реквизита состовной

1. b-k-v 28.03.23 12:13 Сейчас в теме
Добрый день.

Если код примерно такой:

ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);

Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
Данные = ПрочитатьXML(ЧтениеXML)
...

И XML примерно такая

<DocumentObject.ПоступлениеТоваровУслуг>
<Ref>7f1c378c-cc83-11ed-bbc4-b80d54af843b</Ref>
<КодВидаОперации>01</КодВидаОперации>
<КодСпособаПолучения>0</КодСпособаПолучения>
<Основание>00000000-0000-0000-0000-000000000000</Основание>
...

Так во возникает ошибка "Значения данного типа не могут быть представлены в XML"
Проблема в том что реквизит "Основание" составного типа, если его сделать не составным то проблема уйдет.

Подскажите пожалуйста как обойти такую проблему?
Найденные решения
9. b-k-v 29.03.23 12:35 Сейчас в теме
Вопрос как оказалось можно решить. С составным реквизитом запись делать нужно так:

<Основание xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="DocumentRef.ПоступлениеТоваровУслуг">7f1c378c-cc83-11ed-bbc4-b80d54af843b</Основание>
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 28.03.23 13:22 Сейчас в теме
(1)Если реквизит составного типа, то пустое значение будет типа Неопределено, а не ПустаяСсылка, как делаете вы.
3. b-k-v 28.03.23 15:16 Сейчас в теме
(2) Хорошо, а если мне все равно необходимо туда записать значение? Как быть?
4. nomad_irk 76 28.03.23 15:35 Сейчас в теме
(3)
если мне все равно необходимо туда записать значение?

ЗачемЪ?
Пустое значение в вашем случае будет отсутствие значения в XML, т.е.
<Основание/>

Вы лучше подумайте над тем, каким образом вы будете тип значения указывать для случая, когда ссылка на основание будет таки указана.
6. b-k-v 28.03.23 16:42 Сейчас в теме
(4)
Вы лучше подумайте над тем, каким образом вы будете тип значения указывать для случая, когда ссылка на основание будет таки указана.


В общем то это был основной вопрос. Основание всегда будет заполнено, не понятно как обойти эту ситуацию.
7. user1863362 28.03.23 16:55 Сейчас в теме
(6) Если тип приемника отличается от типа источника - в источнике тип составной, а в приемнике обычная ссылка, то платформенное чтение в объекты из пространства имен в8куррентконфиг (или как его там) работать не будет.

Пилите полностью свои запись/чтение для обхода. С фабриками, пространствами имен и т. п.
8. b-k-v 29.03.23 10:28 Сейчас в теме
(7)

Пилите полностью свои запись/чтение для обхода. С фабриками, пространствами имен и т. п.

Спасибо.
5. glek 119 28.03.23 15:35 Сейчас в теме
(3) Это считается ошибкой: когда составной тип записан с пустым определенным типом - в запросе потом не получится отфильтровать по пустому значению. Поэтому перед записью для таких реквизитов устанавливается неопределено.
9. b-k-v 29.03.23 12:35 Сейчас в теме
Вопрос как оказалось можно решить. С составным реквизитом запись делать нужно так:

<Основание xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="DocumentRef.ПоступлениеТоваровУслуг">7f1c378c-cc83-11ed-bbc4-b80d54af843b</Основание>
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот