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): функциональные опции + фиксы round-trip типов (ValueList/UUID/платформенные)
1) Функциональные опции (<FunctionalOptions><Item>FunctionalOption.X</Item>…>) у Attribute (4391) / Command (2385) / Column (1272) — не захватывались. Ключ functionalOptions (массив имён; forgiving "X"/"FunctionalOption.X"; GUID-опции расширений — как есть). Общий хелпер Emit/Decompile-FunctionalOptions (+py). Порядок: атрибут после FillChecking; команда после Action; колонка после Type. 2) ValueList round-trip баг: Decompile-Type switch без break → общий case ^(v8|v8ui|cfg): перетирал специфичный v8:ValueListType → выдавал «ValueListType» (голый), компилятор эмитил <v8:Type>ValueListType</v8:Type> без префикса. Добавлены break во все cases. 3) Платформенные типы без friendly-шортката (v8:UUID 3132, v8:StandardPeriod 233, v8:Null, v8:StandardBeginningDate, v8ui:VerticalAlign …) теряли префикс (декомпилятор снимал v8:, компилятор эмитил голый). Теперь декомпилятор оставляет префикс для не-friendly v8:/v8ui: типов (friendly — ValueTable/ValueTree/ValueList/ TypeDescription/FormattedString/Picture/Color/Font — шорткат), компилятор эмитит токены с префиксом (v8:/v8ui:/xs:/dcs*:) verbatim. Покрыт весь хвост. TOTAL diff lines выборки 2.17: 4068 → 3869 (-199). FunctionalOptions/ValueListType/UUID residual → 0. Снапшот attributes-types (+ValueList, +v8:UUID) сертифицирован в 1С (8.3.24). Регресс form-compile 33/33 зелёный на ps + python. decompile v0.35, compile v1.53. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -611,6 +611,7 @@ Pages поддерживает `pagesRepresentation`: `None`, `TabsOnTop`, `Tabs
|
||||
| `title` | string | Заголовок |
|
||||
| `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) |
|
||||
| `savedData` | bool | Сохраняемые данные |
|
||||
| `fillChecking` | string | `Show`, `DontShow` |
|
||||
| `columns` | array | Колонки для ValueTable/ValueTree |
|
||||
@@ -700,6 +701,7 @@ Pages поддерживает `pagesRepresentation`: `None`, `TabsOnTop`, `Tabs
|
||||
| `title` | string | Заголовок |
|
||||
| `tooltip` | string/object | Всплывающая подсказка команды (`<ToolTip>`) |
|
||||
| `use` | bool/object | Доступность команды по ролям (`<Use>`). См. §4.1c |
|
||||
| `functionalOptions` | array | Функциональные опции команды (см. §5) |
|
||||
| `currentRowUse` | string | Использование текущей строки: `Auto`, `DontUse`, `Use` |
|
||||
| `shortcut` | string | Клавиатурное сочетание |
|
||||
| `picture` | string | Ссылка на картинку |
|
||||
|
||||
Reference in New Issue
Block a user