Имя: Пароль:
1C
 
ОбъектXDTO не проходит поверку, после заполнения
0 Пип Пибип
 
28.11.19
15:31
День добрый.

ОбъектXDTO имеет 3 свойства: bic (Атрибут), name (Атрибут), __content (Текст).
Как ни пытался заполнить ОбъектXDTO, проверка объекта выводит сообщение вида:

"Проверка свойства '__content':
    форма: Текст
    имя: Текст
    тип: {<пространство имен>}AccNumType
Отсутствует обязательное свойство"

Подскажите, что я не учел?
1 Пип Пибип
 
28.11.19
15:33
При заполнении пробовал следующие конструкции:

"ЗаполнитьСвойствоXDTO(Account, "bic", БИК,  Истина, ТекстОшибки);
ЗаполнитьСвойствоXDTO(Account, "name", НаименованиеБанка, , ТекстОшибки);
ЗаполнитьСвойствоXDTO(Account, "__content", НомерСчета, Истина, ТекстОшибки);"
2 Пип Пибип
 
28.11.19
15:34
"ЗаполнитьСвойствоXDTO(Account, "bic", БИК,  Истина, ТекстОшибки);
ЗаполнитьСвойствоXDTO(Account, "name", НаименованиеБанка, , ТекстОшибки);
ИмяЭлемента = "__content";
Свойство = Account.Свойства().Получить(ИмяЭлемента);
ТипНовогоЭлемента = Свойство.Тип;
НовыйЭлемент = ФабрикаXDTOИзФайла.Создать(ТипНовогоЭлемента, НомерСчета);
Account.__content = НовыйЭлемент;"
3 Пип Пибип
 
28.11.19
15:36
И еще множество вариантов, уже не сохранившихся.
После заполнения, проверяю объект следующей конструкцией:

"Account.Проверить();"

И стабильно получаю ошибку, что отсутствует обязательное свойство (а именно, свойство '__content')
4 Пип Пибип
 
28.11.19
15:55
пип
5 Franchiser
 
гуру
28.11.19
16:43
ИнтеграцияВЕТИС.ЗаполнитьСвойствоXDTO(Штрихкод, "__content", ДанныеШтрихкода.Штрихкод, СообщениеXML);
6 Franchiser
 
гуру
28.11.19
16:49
ЗаполнитьСвойствоXDTO(ActiveOrHistoricCurrencyAndAmount, "__content", Сумма, , ТекстОшибки);
7 Пип Пибип
 
28.11.19
16:49
(5) а чуть выше там определение Штрихкод:

"Штрихкод = ИнтеграцияИС.ОбъектXDTOПоИмениТипа(ОписаниеУпаковки, "productMarks");"

Подобное тоже пробовал. И чем платформе мой вариант не по нраву...
Но за еще один пример функционала спасибо!
8 pechkin
 
28.11.19
16:52
ОбъектXDTO.__content = "123"
9 pechkin
 
28.11.19
16:54
ибо __content - это же обычный текст
10 Пип Пибип
 
28.11.19
17:00
(8), (9) так тоже пробовал. Поведение не меняется.
Более того, при всех опробованных вариантах заполнения, в табло отладчика необходимое свойство стабильно заполнено.

Тут что-то еще, что-то, что я не учел.
Уверен, кто-то уже сталкивался
11 Пип Пибип
 
28.11.19
17:10
Предположительно, платформа использует не тот XDTO-пакет, который я ей подсовываю.
Я загружаю XDTO-пакет из общего макета, подобно этому примеру:
создание пакетов XDTO из файлов XSD

У моего XDTO-пакета пространство имен сходится с одним из уже имеющихся в конфигурации XDTO-пакетов. И в этом имеющемся в конфигурации XDTO-пакете, свойства __content в нужном мне месте нет.

Буду продолжать наблюдения, да
12 Пип Пибип
 
28.11.19
17:36
Эмпирическим путем было установлено: если при создании Фабрики XDTO конструктором (на базе своего XML файла со схемой), Вы используете пространство имен, которое уже задействовано в конфигурации (в имеющихся XDTO-пакетах конфигурации) - тогда ваш файл со схемой игнорируется. Используется имеющийся в конфигурации XDTO-пакет, совпавшим по пространству имен с вашим.

Вот тема коллеги по цеху, на партнерском форуме:
https://partners.v8.1c.ru/forum/topic/1767048?createDateAscOrder=true
13 MaxS
 
28.11.19
19:04
(12) Только хотел напомнить про эту ссылку.
Не заметил в новой платформе обещанных доработок платформы, судя по описанию изменений.
Сталкивался с отличием схемы в 8.1 по сравнению с 8.2. Пришлось создать свою схему с отличающимся пространством имен, выгрузить в файл и там поменять пространство имен на 1С-овское, чтобы потом загрузить платформой 8.3.
14 Пип Пибип
 
28.11.19
19:10
(13) пока тоже думаем перед отправкой сообщения, подменить пространство имен на то, что нужно принимающей стороне. Что бы с нашей стороны пули все-таки вылетели

За тему на партнерском форуме спасибо, натолкнулся на нее благодаря этому:
Как с помощью расширения подменить XDTO пакет?