feat(meta-compile): короткая запись dataPath в linkByType/choiceParameterLinks (v1.23)

dataPath ссылается на реквизит самого объекта — прощающий ввод (компилятор
разворачивает по $objType/$objName):
  • стандартный (Ссылка/Ref, Наименование/Description, Владелец/Owner, …) →
    <Тип>.<Имя>.StandardAttribute.<EN> (RU→EN);
  • обычный (Свойство) → <Тип>.<Имя>.Attribute.Свойство;
  • частичное StandardAttribute.X/Attribute.X → +префикс; полный путь → verbatim.

Только компилятор (декомпилятор пишет полный путь) → роундтрип не затронут
(remaining=0 сохраняется). Кейсы choice-params/typeset-linkbytype переведены
на короткую запись (снэпшоты идентичны). Регресс 43/43 ps1+py, ps1↔py identical.
spec §4.2.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-03 21:46:14 +03:00
parent c706b92b03
commit 7cf910396b
5 changed files with 79 additions and 8 deletions
@@ -5,13 +5,13 @@
"name": "ТестВыбора",
"attributes": [
{ "name": "Счет", "type": "CatalogRef.БанковскиеСчета",
"choiceParameterLinks": [ { "name": "Отбор.Владелец", "dataPath": "Catalog.ТестВыбора.StandardAttribute.Ref", "valueChange": "Clear" } ] },
"choiceParameterLinks": [ { "name": "Отбор.Владелец", "dataPath": "Ссылка", "valueChange": "Clear" } ] },
{ "name": "Партнер", "type": "CatalogRef.Партнеры",
"choiceParameters": "Отбор.ЭтоГруппа=false" },
{ "name": "ТипТТН", "type": "CatalogRef.ВидыТранспорта",
"choiceParameters": [ { "name": "Отбор.Тип", "value": ["Enum.ТипыВЕТИС.EmptyRef", "Enum.ТипыВЕТИС.EnumValue.ТТН"] } ] },
{ "name": "Валюта", "type": "CatalogRef.Валюты",
"choiceParameterLinks": "Отбор.Владелец=Catalog.ТестВыбора.StandardAttribute.Ref" }
"choiceParameterLinks": "Отбор.Владелец=Ссылка" }
]
},
"validatePath": "Catalogs/ТестВыбора",
@@ -6,10 +6,10 @@
"attributes": [
{ "name": "Свойство", "type": "ChartOfCharacteristicTypesRef.ДополнительныеРеквизиты" },
{ "name": "Значение", "type": "Characteristic.ДополнительныеРеквизиты",
"linkByType": { "dataPath": "Catalog.ТестХарактеристик.Attribute.Свойство", "linkItem": 1 } },
"linkByType": { "dataPath": "Свойство", "linkItem": 1 } },
{ "name": "ЗначениеОпредТип", "type": "DefinedType.Сумма" },
{ "name": "СвязьСтрокой", "type": "Characteristic.ВидыСубконто",
"linkByType": "Catalog.ТестХарактеристик.Attribute.Свойство" }
"linkByType": "Свойство" }
]
},
"validatePath": "Catalogs/ТестХарактеристик",