mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-19 09:09:41 +03:00
feat(form-decompile,form-compile): TitleLocation у LabelField/PictureField/Table (кластер TitleLocation)
TitleLocation обрабатывался только у input (passthrough), check/radio (smart-default) и calendar. У LabelField (7362 в корпусе), PictureField (2479) и Table (381) тег молча терялся — ни декомпилятор, ни компилятор его не знали. Профиль доли элементов с тегом: Table 2.9%, LabelField 15.8%, PictureField 80.5% (но 20% без тега). Платформа НЕ всегда эмитит → выбран passthrough (эмитим при наличии ключа, как у input/calendar), не smart-default. Корректно и консистентно; переиспользован существующий ключ titleLocation + Map-TitleLoc. Декомпилятор (ps1): захват titleLocation в трёх ветках. Компилятор (ps1+py): эмиссия в Emit-LabelField/Emit-Table/Emit-PictureField в позиции по схеме. spec §4.1: titleLocation вынесен в общие свойства с пометкой охвата. Тест-покрытие добавлено в input-fields (labelField=left), picture-field (picField=none), table (table=top) — снэпшоты сертифицированы в 1С 8.3.24. Раундтрип 60 форм с TitleLocation на label/pic/table/radio: остатка нет. Регресс ps+py 33/33. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -115,6 +115,7 @@
|
||||
| `disabled` | bool | `true` → `<Enabled>false</Enabled>` |
|
||||
| `readOnly` | bool | `true` → `<ReadOnly>true</ReadOnly>` |
|
||||
| `events` | object | Обработчики событий: `{ "ИмяСобытия": "ИмяОбработчика" }` — тот же формат, что у событий формы (§3). Значение `null` → имя по конвенции (§4.2). См. §4.2 |
|
||||
| `titleLocation` | string | Расположение заголовка: `none`/`left`/`right`/`top`/`bottom`/`auto`. Эмитится при наличии (input, labelField, picField, table, calendar). У `check`/`radio` — особая семантика с умным дефолтом (см. их разделы) |
|
||||
|
||||
### 4.1a. Общие layout-свойства
|
||||
|
||||
|
||||
Reference in New Issue
Block a user