Files
cc-1c-skills/tests/skills/cases/meta-compile/catalog-stdattr-custom.json
T
Nick Shirokov e95fb6b619 feat(meta-compile,meta-decompile): кастомизация стандартных реквизитов — FillValue/ChoiceParameterLinks/… (v1.27/v0.18)
Внутри StandardAttributes стандартные реквизиты кастомизируются теми же
свойствами, что и обычные — профиль их не захватывал. Расширен override:
fillValue (DTR-путь/строка/bool через Normalize-ChoiceValue, дефолт nil),
choiceParameterLinks/choiceParameters (переиспользованы эмиттеры реквизита с
xr:-тегом; dataPath — self-резолв Ссылка→StandardAttribute.Ref), comment,
mask, choiceForm. Декомпилятор: парсинг вынесен в Parse-ChoiceParameter*
(namespace-параметр md:/xr:), захват в override.

Закрыто на выборке: ChoiceParameterLinks/Parameters/Comment/Mask=0;
FillValue — DTR-путь(863)/empty-string(150)/bool(21)/string(4). Регресс 45/45
ps1+py, ps1↔py identical. spec §7.1.1, кейс catalog-stdattr-custom.

NOT COVERED (вырожденные, редкие): fillValue стандартного реквизита как
xs:string из пробелов (119, теряется при PreserveWhitespace=false) и пустой
xr:DesignTimeRef (49).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 13:12:52 +03:00

21 lines
836 B
JSON

{
"name": "Кастомизация стандартных реквизитов (FillValue/ChoiceParameterLinks/Comment/Mask)",
"input": {
"type": "Catalog",
"name": "Договоры",
"owners": ["Catalog.Контрагенты"],
"standardAttributes": {
"Owner": {
"choiceParameterLinks": [ { "name": "Отбор.Владелец", "dataPath": "Ссылка", "valueChange": "Clear" } ],
"choiceParameters": [ { "name": "Отбор.ЭтоГруппа", "value": false } ]
},
"Code": { "fillValue": "0000000000", "comment": "префикс кода", "mask": "!9999999999" },
"Description": { "fillValue": "Catalog.Контрагенты.EmptyRef" }
}
},
"validatePath": "Catalogs/Договоры",
"expect": {
"files": ["Catalogs/Договоры.xml"]
}
}