Выгрузка в XDTO объектов, ссылающихся друг на друга
Пытаюсь выгрузить в XDTO два справочника — Companies и Contracts.
В справочнике Companies есть ссылка на элемент справочника Contracts, и каждый элемент справочника Contracts, в свою очередь, принадлежит элементу справочника Companies.
В XDTO схеме справочники представлены двумя объектами:http://take.ms/8MgSi
Проблема в том, что когда я начинаю сериализировать (например) договор, то по ссылке на владельца пытается выгрузиться контрагент, а у этого контрагента внутри есть ссылка на тот же самый договор. В результате объекты циклически выгружаются, пока не переполняется стек.
Как правильно обойти эту проблему?
В справочнике Companies есть ссылка на элемент справочника Contracts, и каждый элемент справочника Contracts, в свою очередь, принадлежит элементу справочника Companies.
В XDTO схеме справочники представлены двумя объектами:
Проблема в том, что когда я начинаю сериализировать (например) договор, то по ссылке на владельца пытается выгрузиться контрагент, а у этого контрагента внутри есть ссылка на тот же самый договор. В результате объекты циклически выгружаются, пока не переполняется стек.
Как правильно обойти эту проблему?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Каким образом? Через схему? Не могу подобрать соответствующего свойства.
Выгрузкой занимается процедура, она всегда выгружает объект по ссылке полностью. Как я понимаю, отсюда проблема. Если взять два других справочника, получается что-то вроде:
Здесь Owner — это ссылка на другой объект схемы. Соответственно, я не могу (как я понимаю) в каком-то из случаев вместо вложенной структуры объекта Owner указать ссылку, т.к. такая структура не пройдет валидацию схемы. Или я неверно понимаю?
Выгрузкой занимается процедура, она всегда выгружает объект по ссылке полностью. Как я понимаю, отсюда проблема. Если взять два других справочника, получается что-то вроде:
<Ob jects xsi:type="Addresses">
<Name>OCP Address</Name>
<ID>c38aa0c1-d64b-11e7-8931-bc5ff491675e</ID>
<DeletionMark>false</DeletionMark>
<Owner>
<Name>OCP</Name>
<ID>6c02dc1a-a7fa-11e7-b8bc-bc5ff491675e</ID>
<DeletionMark>false</DeletionMark>
<FullDescription>OCP</FullDescription>
<IsFolder>false</IsFolder>
<Comment/>
</Owner>
</Objects>
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот