mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-27 21:49: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:
co-authored by
Claude Opus 4.8
parent
8998c0b5db
commit
c43041c0b7
@@ -1,4 +1,4 @@
|
||||
# form-compile v1.33 — Compile 1C managed form from JSON or object metadata
|
||||
# form-compile v1.34 — Compile 1C managed form from JSON or object metadata
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$JsonPath,
|
||||
@@ -2551,6 +2551,7 @@ function Emit-LabelField {
|
||||
Emit-Title -el $el -name $name -indent $inner -auto:(-not $el.path)
|
||||
Emit-CommonFlags -el $el -indent $inner
|
||||
|
||||
if ($el.titleLocation) { X "$inner<TitleLocation>$(Map-TitleLoc "$($el.titleLocation)")</TitleLocation>" }
|
||||
if ($el.editMode) { X "$inner<EditMode>$($el.editMode)</EditMode>" }
|
||||
# ВНИМАНИЕ: у LabelField платформенный тег именно <Hiperlink> (опечатка 1С), не <Hyperlink>.
|
||||
if ($el.hyperlink -eq $true) { X "$inner<Hiperlink>true</Hiperlink>" }
|
||||
@@ -2579,6 +2580,7 @@ function Emit-Table {
|
||||
if ($el.representation) {
|
||||
X "$inner<Representation>$($el.representation)</Representation>"
|
||||
}
|
||||
if ($el.titleLocation) { X "$inner<TitleLocation>$(Map-TitleLoc "$($el.titleLocation)")</TitleLocation>" }
|
||||
if ($el.changeRowSet -eq $true) { X "$inner<ChangeRowSet>true</ChangeRowSet>" }
|
||||
if ($el.changeRowOrder -eq $true) { X "$inner<ChangeRowOrder>true</ChangeRowOrder>" }
|
||||
if ($el.height) { X "$inner<HeightInTableRows>$($el.height)</HeightInTableRows>" }
|
||||
@@ -2833,6 +2835,8 @@ function Emit-PictureField {
|
||||
Emit-Title -el $el -name $name -indent $inner
|
||||
Emit-CommonFlags -el $el -indent $inner
|
||||
|
||||
if ($el.titleLocation) { X "$inner<TitleLocation>$(Map-TitleLoc "$($el.titleLocation)")</TitleLocation>" }
|
||||
|
||||
# ValuesPicture — picture (collection) used to render the field's value.
|
||||
# Required for a Boolean-bound PictureField to actually show an icon.
|
||||
# loadTransparent emitted only when true (1С default is false).
|
||||
|
||||
Reference in New Issue
Block a user