![]() |
![]() |
![]() |
|
XDTO : Установить в Неопределено реквизит объекта XDTO | ☑ | ||
---|---|---|---|---|
0
bvb
25.07.25
✎
11:02
|
Добрый день
Нужно в процедуре, получив параметром объект XDTO очистить его реквизиты (свойства) установленные как строки Я пытаюсь это сделать так : Процедура ОчиститьЗначениеXDTO(Элемент, ИмяРеквизита) //Элемент.Свойства().Получить("ИмяРеквизита") Если Элемент[ИмяРеквизита] <> Неопределено Тогда Элемент[ИмяРеквизита] = Неопределено; Но он не очищает и ругается на то , что у свойства установлен фасет
|
|||
1
mikecool
25.07.25
✎
11:09
|
емнип - нельзя установить значение, не соответствующее ограничению поля
|
|||
2
bvb
25.07.25
✎
11:59
|
(1) Походу, да.
Но мне очень нужно. И да, мне доступен только сам объект XDTO. Метод .Очистить для него не работает. Может можно подправить типизацию через Элемент.Свойства().Получить("ИмяРеквизита") ? |
|||
3
АнализДанных
25.07.25
✎
11:48
|
(0) Очень мало информации. Если нужен xml, который сделан по схеме XSD, но при этом ты хочешь изменить какие-то значения, которые противоречат схеме, то можно сделать так:
Сначала сохранить объект XDTO в xml файл, потом прочить это xml, через фабрикуXDTO, но при этом не указывать схему, тогда можно будет зачистить нужные поля. Правда при сохранении что-то в файле может сохраниться иначе, например, если в схеме есть список, но он с одной строкой, то он сохранится не как список, а как какой-то одинарный тип. |
|||
4
bvb
25.07.25
✎
12:21
|
(3) Если подробно - мне нужно отредактировать контент Utd820SellerContent исходящего документа в Контур Диадок в части адресов продавца и покупателя (грузополучатель норм)
Проблема в том, что нужно взять подробный юридический адрес строкой из представления юр. адреса. Первоначально контент адреса заполнен из полей. В юр адресе заполнены поля и представление. Очищать стандартные поля я не хочу (это на крайний случай) Я подставляю текстовое представление но если, не очистить поля, то для выгружаемого документа, приоритетнее значения из полей Вот я и пытаюсь очистить поля оставив заполненным только AdressText. |
|||
5
denk32
25.07.25
✎
15:51
|
(0) можно попробовать создать новый объект xdto, заполнить как нужно и его присвоить:
НовыйОбъектXDTO = ГенерацияXML.НовыйProtoОбъектXDTO( "AddressInfo970", Ложь ); ГенерацияXML - это встроенная обработка в макет КонтурДиадокГенерацияXML |
|||
6
mikecool
25.07.25
✎
15:53
|
(4) а нельзя это сделать в подключаемом модуле и пользоваться объектной моделью?
|
|||
7
denk32
25.07.25
✎
15:54
|
+ из подключаемого модуля можно создать так:
Ядро = ПолучитьИзВременногоХранилища(ОсновнойМодуль.ОбщийКонтекстКлиентСервер.АдресОбработкиЯдра); ГенерацияXML = Ядро.Модуль_ГенерацияXML(Ядро) |
|||
8
mikecool
26.07.25
✎
10:32
|
(7) да там и попроще есть путь, не помню только наизусть
типа передвыгрузкой или как-то так, доступен объект, который впоследствии выгружается |
|||
9
denk32
25.07.25
✎
16:15
|
(8) ПодготовитьЭлектронныйДокумент?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |