mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-16 18:53:18 +03:00
feat(form-decompile,form-compile): AutoShowOpen/ClearButtonMode (input) + EnableDrag на PictureDecoration
(1) AutoShowOpenButtonMode (input, enum Auto/Always/FilledOnly, 14) + AutoShowClearButtonMode (3) — листовые скаляры → GENERIC_SCALARS (обе стороны + py). (2) PictureDecoration>EnableDrag (7) — декомпилятор ловил generic-ом (Add-CommonProps), но EnableDrag эмитился ТОЛЬКО в Emit-Table/SpreadSheet (Emit-Layout его не выводит) → PictureDecoration терял. Добавлен явный emit в Emit-PictureDecoration (после Emit-Layout). Generic-перенос enableDrag в Emit-Layout отклонён: сдвигает позицию в сертифицированных Table/SpreadSheet-снэпшотах (EnableDrag может быть XDTO-позиционно-чувствителен, как HeaderHeight/CurrentRowUse) — точечный фикс безопаснее. Выборка 22 формы: match 19 (целевые AutoShow*/PictureDecoration>EnableDrag закрыты; остаток 3 — SpellCheckingOnTextInput + value). ps1==py байт-в-байт. Регресс 43/43. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# form-compile v1.160 — Compile 1C managed form from JSON or object metadata
|
||||
# form-compile v1.161 — Compile 1C managed form from JSON or object metadata
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$JsonPath,
|
||||
@@ -3260,6 +3260,9 @@ $script:genericScalars = @(
|
||||
@{ Tag='ShowCheckBoxesInDropList'; Key='showCheckBoxesInDropList'; Kind='bool' }
|
||||
@{ Tag='MultipleValueDataPath'; Key='multipleValueDataPath'; Kind='value' }
|
||||
@{ Tag='MultipleValuePresentDataPath'; Key='multipleValuePresentDataPath'; Kind='value' }
|
||||
# Режим авто-показа кнопок открытия/очистки (input, enum Auto/Always/FilledOnly/…)
|
||||
@{ Tag='AutoShowOpenButtonMode'; Key='autoShowOpenButtonMode'; Kind='value' }
|
||||
@{ Tag='AutoShowClearButtonMode'; Key='autoShowClearButtonMode'; Kind='value' }
|
||||
# Оформление/картинка множественного выбора (input, редко; цвета — текст-контент, не атрибуты)
|
||||
@{ Tag='MultipleValuesTextColor'; Key='multipleValuesTextColor'; Kind='value' }
|
||||
@{ Tag='MultipleValuesBackColor'; Key='multipleValuesBackColor'; Kind='value' }
|
||||
@@ -4834,6 +4837,8 @@ function Emit-PictureDecoration {
|
||||
|
||||
if ($el.hyperlink -eq $true) { X "$inner<Hyperlink>true</Hyperlink>" }
|
||||
Emit-Layout -el $el -indent $inner
|
||||
# EnableDrag — фактическое значение (декорация-картинка перетаскиваема; декомпилятор ловит generic-ом)
|
||||
if ($null -ne $el.enableDrag) { X "$inner<EnableDrag>$(if ($el.enableDrag){'true'}else{'false'})</EnableDrag>" }
|
||||
|
||||
# Оформление (цвета/шрифт/граница) — профиль декорации (1С толерантна к порядку appearance)
|
||||
Emit-Appearance -el $el -indent $inner -profile 'decoration'
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# form-compile v1.160 — Compile 1C managed form from JSON or object metadata
|
||||
# form-compile v1.161 — Compile 1C managed form from JSON or object metadata
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import copy
|
||||
@@ -3377,6 +3377,9 @@ GENERIC_SCALARS = [
|
||||
('ShowCheckBoxesInDropList', 'showCheckBoxesInDropList', 'bool'),
|
||||
('MultipleValueDataPath', 'multipleValueDataPath', 'value'),
|
||||
('MultipleValuePresentDataPath', 'multipleValuePresentDataPath', 'value'),
|
||||
# Режим авто-показа кнопок открытия/очистки (input, enum)
|
||||
('AutoShowOpenButtonMode', 'autoShowOpenButtonMode', 'value'),
|
||||
('AutoShowClearButtonMode', 'autoShowClearButtonMode', 'value'),
|
||||
# Оформление/картинка множественного выбора (input, редко; цвета — текст-контент)
|
||||
('MultipleValuesTextColor', 'multipleValuesTextColor', 'value'),
|
||||
('MultipleValuesBackColor', 'multipleValuesBackColor', 'value'),
|
||||
@@ -4562,6 +4565,9 @@ def emit_picture_decoration(lines, el, name, eid, indent):
|
||||
if el.get('hyperlink') is True:
|
||||
lines.append(f'{inner}<Hyperlink>true</Hyperlink>')
|
||||
emit_layout(lines, el, inner)
|
||||
# EnableDrag — фактическое значение (декорация-картинка перетаскиваема; декомпилятор ловит generic-ом)
|
||||
if el.get('enableDrag') is not None:
|
||||
lines.append(f'{inner}<EnableDrag>{"true" if el["enableDrag"] else "false"}</EnableDrag>')
|
||||
|
||||
# Оформление (цвета/шрифт/граница) — профиль декорации (1С толерантна к порядку appearance)
|
||||
emit_appearance(lines, el, inner, 'decoration')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# form-decompile v0.134 — Decompile 1C managed Form.xml to JSON DSL (draft)
|
||||
# form-decompile v0.135 — Decompile 1C managed Form.xml to JSON DSL (draft)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
|
||||
param(
|
||||
@@ -1616,6 +1616,9 @@ $GENERIC_SCALARS = @(
|
||||
@{ Tag='ShowCheckBoxesInDropList'; Key='showCheckBoxesInDropList'; Kind='bool' }
|
||||
@{ Tag='MultipleValueDataPath'; Key='multipleValueDataPath'; Kind='value' }
|
||||
@{ Tag='MultipleValuePresentDataPath'; Key='multipleValuePresentDataPath'; Kind='value' }
|
||||
# Режим авто-показа кнопок открытия/очистки (input, enum)
|
||||
@{ Tag='AutoShowOpenButtonMode'; Key='autoShowOpenButtonMode'; Kind='value' }
|
||||
@{ Tag='AutoShowClearButtonMode'; Key='autoShowClearButtonMode'; Kind='value' }
|
||||
# Оформление/картинка множественного выбора (input, редко; цвета — текст-контент)
|
||||
@{ Tag='MultipleValuesTextColor'; Key='multipleValuesTextColor'; Kind='value' }
|
||||
@{ Tag='MultipleValuesBackColor'; Key='multipleValuesBackColor'; Kind='value' }
|
||||
|
||||
Reference in New Issue
Block a user