Тип: СписокXDTO, Произвольный, ОбъектXDTO. Набор свойств содержит значения свойств объекта XDTO. Конкретный состав свойств зависит от типа объекта метаданных.
Полное описание, параметры и ограничения
ОбъектXDTO.<Имя свойства> (XDTODataObject.<Property name>)
ОбъектXDTO (XDTODataObject)
<Имя свойства> (<Property name>)
Доступен, начиная с версии 8.1.
Использование:
Чтение и запись.
Описание:
Тип: СписокXDTO, Произвольный, ОбъектXDTO.
Набор свойств содержит значения свойств объекта XDTO. Конкретный состав свойств зависит от типа объекта метаданных.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Заполнить динамические свойства собственного типа XDTO Book
Динамическое свойство появляется из явно созданной структуры, элемента или контракта. Перед обращением показан реальный источник имён, а не неизвестный входной объект.
Где и как запускать
Серверный учебный модуль / собственная обработка толстого клиента; указанные макеты и функция фабрики подготовлены отдельно.
Подготовка
Используйте серверную процедуру собственного учебного общего модуля или обработку в толстом клиенте. Основной блок вставьте в тело своей процедуры, не как отдельный getter неизвестного объекта.
В тот же серверный общий модуль добавьте функцию из дополнительного блока. Она создаёт фабрику по собственной XSD в памяти; сетевые схемы не загружаются.
Схема заранее определяет Book с обязательными name и quantity. Эти динамические свойства не угадываются по внешнему JSON.
ФабрикаКниги = СоздатьФабрикуКниги();
ТипКниги = ФабрикаКниги.Тип("urn:lesson:book", "Book");
Книга = ФабрикаКниги.Создать(ТипКниги);
Книга.name = "Учебная книга";
Книга.quantity = 3;
Книга.Проверить();
Сообщить(Книга.name);
Сообщить("Экземпляров: " + Строка(Книга.quantity));Тот же серверный модуль: собственный контракт и фабрика
Функция СоздатьФабрикуКниги()
XSD = "<xs:schema xmlns:xs=""http://www.w3.org/2001/XMLSchema""
| targetNamespace=""urn:lesson:book"" elementFormDefault=""qualified"">
| <xs:complexType name=""Book""><xs:sequence>
| <xs:element name=""name"" type=""xs:string""/>
| <xs:element name=""quantity"" type=""xs:nonNegativeInteger""/>
| </xs:sequence></xs:complexType></xs:schema>";
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(XSD);
Попытка
ДокументСхемы = Новый ПостроительDOM;
DOM = ДокументСхемы.Прочитать(Чтение);
Чтение.Закрыть();
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Построитель = Новый ПостроительСхемXML;
Схема = Построитель.СоздатьСхемуXML(DOM.ЭлементДокумента);
Набор = Новый НаборСхемXML;
Набор.Добавить(Схема);
Если Не Набор.Проверить() Тогда
ВызватьИсключение "Собственная схема книги не прошла проверку";
КонецЕсли;
Возврат Новый ФабрикаXDTO(Набор);
КонецФункцииРазбор по шагам
Создаём собственную структуру / объект либо подготавливаем указанный именованный макет.
Обращаемся через точку по имени, которое действительно определено в этой подготовке.
Проверяем конкретный текст / число / имя; readonly-элемент коллекции не заменяем присваиванием.
Как проверить результат
Проверить проходит для name=Учебная книга и quantity=3; читаются настоящие свойства собственного типа XDTO.
Если задать quantity=-1, проверка собственного nonNegativeInteger должна сообщить нарушение. Это не контракт Avito или другой внешней системы.
Ожидаемый результат
Именованный доступ связан с известным собственным производителем данных и точным типом элемента.
На что обратить внимание
Отсутствующее имя приводит к ошибке, а не к автоматическому созданию произвольного поля.
Схема полей DBF, тип XDTO, имя рисунка, области и элемента графической схемы — разные источники динамических имён.
Код 1С не выполнялся при сборке HTML. Реальные файлы и метаданные пользователем создаются только при ручной проверке урока.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.