mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-18 07:35:52 +03:00
Рецепт для вложенного объекта учил окольной форме там, где она не нужна. Именованный тип берётся так же, как корневой — ФабрикаXDTO.Тип(ns, имя); через Свойства.Получить(...).Тип идут только к анонимному, у которого имени нет. Теперь строка выдаётся по факту: для именованного одна форма, для анонимного другая, и обе с настоящими именами из пакета. Убрано утверждение «Узел = ФабрикаXDTO.Создать(ТипУзла, Значение)» для типа со значением элемента. По синтакс-помощнику Создать(<Тип>, <Значение>) принимает ТипЗначенияXDTO, а такой узел — объектный тип, то есть форма была просто неверной. Вместо неё проверяемый факт: значение лежит в свойстве __content. Зато для типа значения эта форма как раз корректна, а рецепта там не было вовсе — добавлен. Попутно: строка-заглушка «(раскрыт выше)» создавалась без новых ключей, и py-порт падал с KeyError там, где PowerShell молча возвращает $null на отсутствующем свойстве. Ключи добавлены, доступ переведён на .get(). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
23 lines
1.6 KiB
Plaintext
23 lines
1.6 KiB
Plaintext
=== Тип XDTO: Документ === (глубина 3)
|
|
Пакет: nested · urn:test:nested
|
|
|
|
Свойства: обязательных 2 из 3 (-RequiredOnly; скрыто строк: 2)
|
|
Реквизиты объект Реквизиты [обязательный]
|
|
Наименование Строка [обязательный]
|
|
Встроенный объект (анонимный) [обязательный]
|
|
Ид Строка [обязательный]
|
|
__content Дата [обязательный, значение элемента]
|
|
|
|
Обозначения:
|
|
объект X — присвоить вложенный объект XDTO, состав раскрывает -Depth
|
|
значение элемента — собственное значение узла XML
|
|
|
|
Создание:
|
|
Тип = ФабрикаXDTO.Тип("urn:test:nested", "Документ");
|
|
Объект = ФабрикаXDTO.Создать(Тип);
|
|
// вложенный именованный тип — так же, как корневой:
|
|
Реквизиты = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn:test:nested", "Реквизиты"));
|
|
// у анонимного типа нет имени — только через свойство владельца:
|
|
Встроенный = ФабрикаXDTO.Создать(Тип.Свойства.Получить("Встроенный").Тип);
|
|
// собственное значение узла лежит в свойстве __content
|