|
XDTO : Установить в Неопределено реквизит объекта XDTO
Bad_Aleks, Группа неравнодушных, denk32, Мультук, mikecool, nick86, Волшебник, bvb, takefive, Terrixus, GreenDay1986, АгентБезопаснойНацио, okmail, Djelf, phabeZ, АнализДанных, НоваяВолна, Климов Сергей, Silgis, maxar, Hawk_1c, Кир Пластелинин, Dzenn, X Leshiy
| ☑ |
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
25.07.25
✎
15:56
|
(7) да там и попроще есть путь, не помню только наизусть
типа передвыгрузкой или как то так, доступен объект, который впоследствии выгружается
|
|
9
denk32
25.07.25
✎
16:15
|
(8) ПодготовитьЭлектронныйДокумент?
|
|