|
XDTO - как сделать свойство объекта обязательным? | ☑ | ||
---|---|---|---|---|
0
antgenp
10.07.17
✎
11:38
|
Добрый день!
Преамбула проблемы: ЕГАИС перешел на версию 2 документооборота, немного изменились схемы обмена с УТМ. Амбула: хотя 1С во многом постаралась за меня и проблем с переходом на 2-ю версию было немного, есть один косяк сразу на нескольких платформах: учетной системой полагается, что при получении документа WayBill_v2 узел Transport будет обязательно заполнен, в то время, как в схемах он как раз перестал быть обязательным. Как это выглядит в старой и новой схемах соответственно: <xs:element name="Transport" type="ns:TransportType" minOccurs="1" maxOccurs="1"> и <xs:element name="Transport" type="ns:TransportType" minOccurs="0" maxOccurs="1"> т.е. если раньше элемент не был заполнен, то в WayBill была запись <Transport\>, а сейчас, в новой версии, её не будет, что не даст клиенту с указанной ошибкой в модуле загрузить накладную. Что хочу сделать: если это возможно, хотелось бы после получения ТТНXDTO = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "WayBillType_v2")); ШапкаXDTO = ОбъектXDTOПоИмениСвойства(ПространствоИмен, "Header", ТТНXDTO); менять для свойства Transport нижнюю границу с 0 на 1. Как это сделать и возможно ли это? Пытался сделать прямое присвоение ШапкаXDTO.Тип().Свойства.Получить("Transport").НижняяГраница = 1 получил ошибку, что "Поле объекта недоступно для записи". Так же крутил/вертел метод "Установить", но безрезультатно до сего момента. Если это сделать это так нельзя, то, возможно, есть какие-то другие красивые способы решения проблемы? Ссылка на коллекцию свойств, получаемых через ШапкаXDTO.Тип().Свойства: http://radikal.ru/big/cqd06leyaxf2e |
|||
1
antgenp
10.07.17
✎
12:37
|
ап
|
|||
2
Широкий
10.07.17
✎
13:23
|
Почему бы схему не поправить?
|
|||
3
Лефмихалыч
10.07.17
✎
13:26
|
может исправить просто указанную ошибку в модуле?..
|
|||
4
antgenp
10.07.17
✎
13:57
|
(3) я у себя то поправил, у клиентов править не спешат, а каждый раз править руками не хочется
(2) я с XTDO не очень, даже не думал, что схема где-то у меня может хранится, думал, что грузится сама. Сейчас посмотрю - попробую |
|||
5
antgenp
10.07.17
✎
14:17
|
(2) (4) Посмотрел, насколько я понял, схема подтягивается автоматом:
ТТНXDTO = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "WayBillType_v2")); здесь ПространствоИмен = "http://fsrar.ru/WEGAIS/TTNSingle_v2" |
|||
6
тарам пам пам
10.07.17
✎
14:36
|
(5) у тебя фабрика ХДТО используется глобальная, судя по всему, т. е. пакеты импортированы прямо в конфигурацию (раздел Общие - XDTO-пакеты). Вот прям там и исправь, кода вообще никакого не нужно.
|
|||
7
antgenp
10.07.17
✎
14:46
|
(6) оО
Спасибо, нашел, сейчас внесу в конфигурацию - проверю. |
|||
8
antgenp
10.07.17
✎
16:28
|
(6) Внес изменения, проверил - пока всё отлично.
Ещё раз огромное спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |