mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-17 08:15:16 +03:00
feat(form-decompile,form-compile): report-form свойства + 3 элементных скаляра (раскрыто из-под ring-3)
Закрытие спец-полей раскрыло пробелы в формах Report-объектов (доминируют среди SpreadSheet-форм). 6 форменных скаляров report-формы → KNOWN_FORM_PROPS (decompiler-only; компилятор уже эмитит через Emit-Properties): ReportResult/ DetailsData (имена реквизитов), ReportFormType (Main/Settings/Variant), AutoShowState (Auto/DontShow/ShowOnComposition), ReportResultViewMode/ ViewModeApplicationOnSetReportResult (всегда Auto). + 3 элементных generic-скаляра (обе стороны, +py): HorizontalSpacing (группа, 3592 в корпусе), RepresentationInContextMenu (кнопка, 1673), SettingsNamedItemDetailedRepresentation (таблица, 778). Выборка 2.17: TOTAL 101→23, match 166→170, diff 17→13 (ring3 37, 0 крашей). Кейсы groups/commands/table расширены и сертифицированы загрузкой в 1С. Регресс 40/40 (ps1+py). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# form-compile v1.95 — Compile 1C managed form from JSON or object metadata
|
||||
# form-compile v1.96 — Compile 1C managed form from JSON or object metadata
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[string]$JsonPath,
|
||||
@@ -2614,6 +2614,8 @@ function Emit-Element {
|
||||
"horizontalScrollBar"=1;"viewScalingMode"=1;"output"=1;"selectionShowMode"=1;"protection"=1
|
||||
"edit"=1;"showGrid"=1;"showGroups"=1;"showHeaders"=1;"showRowAndColumnNames"=1;"showCellNames"=1
|
||||
"pointerType"=1;"drawingSelectionShowMode"=1;"warningOnEditRepresentation"=1;"markingAppearance"=1
|
||||
# report-form контекст (generic-скаляры элементов)
|
||||
"horizontalSpacing"=1;"representationInContextMenu"=1;"settingsNamedItemDetailedRepresentation"=1
|
||||
# columnGroup-specific
|
||||
"showInHeader"=1
|
||||
# radio-specific
|
||||
@@ -2914,6 +2916,10 @@ $script:genericScalars = @(
|
||||
@{ Tag='ShowRowAndColumnNames'; Key='showRowAndColumnNames'; Kind='bool' }
|
||||
@{ Tag='ShowCellNames'; Key='showCellNames'; Kind='bool' }
|
||||
@{ Tag='ShowPercent'; Key='showPercent'; Kind='bool' }
|
||||
# Report-form контекст: интервал группы / представление кнопки в контекстном меню / детальное представление настройки таблицы
|
||||
@{ Tag='HorizontalSpacing'; Key='horizontalSpacing'; Kind='value' }
|
||||
@{ Tag='RepresentationInContextMenu'; Key='representationInContextMenu'; Kind='value' }
|
||||
@{ Tag='SettingsNamedItemDetailedRepresentation'; Key='settingsNamedItemDetailedRepresentation'; Kind='bool' }
|
||||
)
|
||||
|
||||
function Emit-GenericScalars {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# form-compile v1.95 — Compile 1C managed form from JSON or object metadata
|
||||
# form-compile v1.96 — Compile 1C managed form from JSON or object metadata
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import copy
|
||||
@@ -1835,6 +1835,8 @@ KNOWN_KEYS = {
|
||||
"horizontalScrollBar", "viewScalingMode", "output", "selectionShowMode", "protection",
|
||||
"edit", "showGrid", "showGroups", "showHeaders", "showRowAndColumnNames", "showCellNames",
|
||||
"pointerType", "drawingSelectionShowMode", "warningOnEditRepresentation", "markingAppearance",
|
||||
# report-form контекст (generic-скаляры элементов)
|
||||
"horizontalSpacing", "representationInContextMenu", "settingsNamedItemDetailedRepresentation",
|
||||
}
|
||||
|
||||
# picture/picField — НИЗКИЙ приоритет: 'picture' это и тип (PictureDecoration), и свойство-иконка
|
||||
@@ -2735,6 +2737,10 @@ GENERIC_SCALARS = [
|
||||
('ShowRowAndColumnNames', 'showRowAndColumnNames', 'bool'),
|
||||
('ShowCellNames', 'showCellNames', 'bool'),
|
||||
('ShowPercent', 'showPercent', 'bool'),
|
||||
# Report-form контекст: интервал группы / представление кнопки в контекстном меню / детальное представление настройки таблицы
|
||||
('HorizontalSpacing', 'horizontalSpacing', 'value'),
|
||||
('RepresentationInContextMenu', 'representationInContextMenu', 'value'),
|
||||
('SettingsNamedItemDetailedRepresentation', 'settingsNamedItemDetailedRepresentation', 'bool'),
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# form-decompile v0.71 — Decompile 1C managed Form.xml to JSON DSL (draft)
|
||||
# form-decompile v0.72 — Decompile 1C managed Form.xml to JSON DSL (draft)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
|
||||
param(
|
||||
@@ -1188,6 +1188,10 @@ $GENERIC_SCALARS = @(
|
||||
@{ Tag='ShowRowAndColumnNames'; Key='showRowAndColumnNames'; Kind='bool' }
|
||||
@{ Tag='ShowCellNames'; Key='showCellNames'; Kind='bool' }
|
||||
@{ Tag='ShowPercent'; Key='showPercent'; Kind='bool' }
|
||||
# Report-form контекст: интервал группы / представление кнопки в контекстном меню / детальное представление настройки таблицы
|
||||
@{ Tag='HorizontalSpacing'; Key='horizontalSpacing'; Kind='value' }
|
||||
@{ Tag='RepresentationInContextMenu'; Key='representationInContextMenu'; Kind='value' }
|
||||
@{ Tag='SettingsNamedItemDetailedRepresentation'; Key='settingsNamedItemDetailedRepresentation'; Kind='bool' }
|
||||
)
|
||||
|
||||
# Захват generic-скаляров. Специфичная обработка (если ключ уже задан) — побеждает.
|
||||
@@ -1758,7 +1762,7 @@ $titleNode = $root.SelectSingleNode("lf:Title", $ns)
|
||||
if ($titleNode) { $t = Get-LangText $titleNode; if ($null -ne $t) { $dsl['title'] = $t } }
|
||||
|
||||
# properties (прямые скаляры под <Form>, PascalCase → camelCase)
|
||||
$KNOWN_FORM_PROPS = @('AutoTitle','WindowOpeningMode','CommandBarLocation','SaveDataInSettings','AutoSaveDataInSettings','AutoTime','UsePostingMode','RepostOnWrite','AutoURL','AutoFillCheck','Customizable','EnterKeyBehavior','VerticalScroll','Width','Height','Group','UseForFoldersAndItems','SaveWindowSettings','ScalingMode','VerticalSpacing')
|
||||
$KNOWN_FORM_PROPS = @('AutoTitle','ReportResult','DetailsData','ReportFormType','AutoShowState','ReportResultViewMode','ViewModeApplicationOnSetReportResult','WindowOpeningMode','CommandBarLocation','SaveDataInSettings','AutoSaveDataInSettings','AutoTime','UsePostingMode','RepostOnWrite','AutoURL','AutoFillCheck','Customizable','EnterKeyBehavior','VerticalScroll','Width','Height','Group','UseForFoldersAndItems','SaveWindowSettings','ScalingMode','VerticalSpacing')
|
||||
$props = [ordered]@{}
|
||||
foreach ($pn in $KNOWN_FORM_PROPS) {
|
||||
$v = Get-Child $root $pn
|
||||
|
||||
Reference in New Issue
Block a user