mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-15 02:14:57 +03:00
feat(form-decompile,form-compile): заголовок реквизита — суппресс-маркер "" + omit авто-вывода (кластер Attribute>Title)
Компилятор для не-main реквизита БЕЗ ключа title додумывал <Title> из имени, хотя платформа реквизит без синонима хранит без <Title>. На корпусе (295609 реквизитов): 22% без <Title> — всем додумывался заголовок (ADDED Attribute>Title = 170 в выборке). Компилятор (ps1+py): эмиссия Title реквизита приведена к логике Emit-Title — нет ключа → авто-вывод (кроме main); title "" → подавить (раньше "" был falsy и уходил в авто-вывод — это и был баг); непустой → как есть. Декомпилятор (ps1): нет <Title> → title:"" (суппресс-маркер); ru-only заголовок, равный авто-выводу из имени → опускаем ключ (компилятор воспроизведёт, 35% = 103908 реквизитов корпуса); иначе → явный. Скопировано точное зеркало Title-FromName для сверки. Регресс: attributes-types.json — реквизит с title:"" (подавление) рядом с авто-выводом + снэпшот. spec §реквизиты обновлён. TOTAL diff lines выборки 2.17: 2255 → 1750 (−505); cascade ADDED 292 → 33. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -623,7 +623,7 @@ Pages поддерживает `pagesRepresentation`: `None`, `TabsOnTop`, `Tabs
|
||||
| `name` | string | Имя реквизита (обязательно) |
|
||||
| `type` | string | Тип (shorthand) |
|
||||
| `main` | bool | Основной реквизит формы |
|
||||
| `title` | string | Заголовок |
|
||||
| `title` | string/object | Заголовок. **Нет ключа** → авто-вывод из имени (как у элементов; кроме `main`). **`""`** → подавить (`<Title>` не эмитится — так платформа и хранит реквизит без синонима). Строка → ru; объект `{ru,en}` → мультиязычный. Декомпилятор опускает ключ, когда ru-заголовок совпадает с авто-выводом из имени |
|
||||
| `view` | bool/object | Просмотр по ролям (`<View>`). См. §4.1c |
|
||||
| `edit` | bool/object | Редактирование по ролям (`<Edit>`). См. §4.1c |
|
||||
| `functionalOptions` | array | Функциональные опции (`<FunctionalOptions><Item>FunctionalOption.X</Item>…`). Массив имён; forgiving: `"X"`/`"FunctionalOption.X"`. Также у колонок (`columns[*]`) и команд (§7) |
|
||||
|
||||
Reference in New Issue
Block a user