mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-14 06:45:17 +03:00
feat(meta-compile): type-подсказка для голых ref-значений choiceParameters (v1.24)
Раньше голое значение параметра выбора (["ПустаяСсылка","ТТН"]) тихо становилось xs:string вместо DTR — footgun для авторинга с нуля. Причина: у значения нет типа (тип задаёт поле-фильтр, не реквизит). Опциональный ключ `type` на элементе choiceParameters (напр. EnumRef.X / СправочникСсылка.X) разворачивает голые значения через ref-машинку: value ["EmptyRef","ТТН"] + type EnumRef.X → Enum.X.EmptyRef, Enum.X.EnumValue.ТТН. Полные пути и скаляры — без изменений; принимает Ref-форму и голый метатип (Enum.X), рус. корни. Только компилятор (декомпилятор пишет полные пути) → роундтрип не затронут (remaining=0). Кейс ТипТТН переведён на type+голые (снэпшот идентичен). Регресс 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:
@@ -158,7 +158,12 @@ JSON DSL для описания объектов метаданных конф
|
||||
`<Тип>.<Имя>.StandardAttribute.<EN>`;
|
||||
- обычный реквизит: имя (`Свойство`) → `<Тип>.<Имя>.Attribute.Свойство`;
|
||||
- частичное `StandardAttribute.X` / `Attribute.X` → добавит префикс `<Тип>.<Имя>`; полный путь — как есть.
|
||||
| `choiceParameters` | ChoiceParameters | пусто | параметры выбора: массив `{name, value?}` ИЛИ строк `"name=value"`. value — bool/число/строка/DTR-путь ИЛИ массив (→ FixedArray); без value → nil |
|
||||
| `choiceParameters` | ChoiceParameters | пусто | параметры выбора: массив `{name, type?, value?}` ИЛИ строк `"name=value"`. value — bool/число/строка/DTR-путь ИЛИ массив (→ FixedArray); без value → nil |
|
||||
|
||||
`value` в `choiceParameters` — ref-путь несёт тип в себе (`Enum.X.EmptyRef`, `Enum.X.EnumValue.Y`, рус. корни). Опц.
|
||||
ключ **`type`** (тип поля-фильтра, напр. `EnumRef.ТипыВЕТИС` / `СправочникСсылка.X`) разворачивает **голые** значения:
|
||||
`{name:"Отбор.Тип", type:"EnumRef.ТипыВЕТИС", value:["EmptyRef","ТТН"]}` → `Enum.ТипыВЕТИС.EmptyRef`,
|
||||
`Enum.ТипыВЕТИС.EnumValue.ТТН`. Без `type` голое имя (`ТТН`) остаётся **строкой** (`xs:string`) — для ссылки нужен путь.
|
||||
| `createOnInput` | CreateOnInput | Auto | Auto/Use/DontUse |
|
||||
| `quickChoice` | QuickChoice | Auto | Auto/Use/DontUse. Прощаем bool (форм-стиль): `true`→Use, `false`→DontUse |
|
||||
| `dataHistory` | DataHistory | Use | Use/DontUse |
|
||||
|
||||
Reference in New Issue
Block a user