From 6e4fdb443a4cc1849170f284ca4624fe3433806d Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Thu, 11 Jun 2026 22:09:32 +0300 Subject: [PATCH] =?UTF-8?q?feat(form-decompile,form-compile):=20=D0=B1?= =?UTF-8?q?=D0=B0=D1=82=D1=87=20=D1=81=D0=BA=D0=B0=D0=BB=D1=8F=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=20(IncompleteChoiceMode/EqualColumnsWidth/ChildrenAlign/?= =?UTF-8?q?ImageScale/Zoomable/Shape/PictureLocation)=20+=20=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B5=D0=BD=D0=BD=D1=8B=D0=B5=20ShowCloseButton/Ho?= =?UTF-8?q?rizontalAlign/ChildrenAlign/ShowTitle=20+=20PictureDecoration?= =?UTF-8?q?=20NonselectedPictureText=20+=20ShowTitle=20factual?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Из топа list-iter2 (формы из корпуса): - Generic-скаляры (input/radio/group/picDecoration/button через Emit-Layout): IncompleteChoiceMode, EqualColumnsWidth(bool), ChildrenAlign, ImageScale, Zoomable(bool), Shape, PictureLocation. - Форменные свойства → KNOWN_FORM_PROPS (декомпилятор) + авто-PascalCase Emit-Properties: ShowCloseButton, HorizontalAlign, ChildrenAlign, ShowTitle. - PictureDecoration NonselectedPictureText (ML, как у picField; после Title). - ShowTitle factual у UsualGroup/Page/ColumnGroup — раньше ловили/эмитили только false, явный true> терялся (8989 в корпусе); теперь true/false при наличии. ⚠️ Table HeaderHeight/FooterHeight/CurrentRowUse НЕ добавлены: строгий Table-XSD требует точной позиции тегов (Representation→…→HeaderHeight→Footer→…→CurrentRowUse→RowFilter), generic-позиция ломает загрузку (XDTO exception) — отдельная задача по позициям в Emit-Table. Зеркало py. Выборка 82 формы: 0 корневых утечек батч-тегов (остаток — CFE-форма с потерянным контейнером расширения, не связано). Кейсы table/radio-tumbler-strings/groups/element-appearance/ input-fields расширены и сертифицированы в 1С (явный ShowTitle=true, форменные props, picDecoration NPT, button Shape/PictureLocation). Регресс 43/43 (ps1+py). Co-Authored-By: Claude Opus 4.8 (1M context) --- .../form-compile/scripts/form-compile.ps1 | 21 +++++++++++++--- .../form-compile/scripts/form-compile.py | 25 +++++++++++++------ .../form-decompile/scripts/form-decompile.ps1 | 19 ++++++++++---- docs/form-dsl-spec.md | 4 +++ .../form-compile/element-appearance.json | 2 ++ tests/skills/cases/form-compile/groups.json | 3 ++- .../cases/form-compile/input-fields.json | 2 +- .../form-compile/radio-tumbler-strings.json | 2 ++ .../Товары/Forms/ФормаЭлемента/Ext/Form.xml | 10 ++++++++ .../СГруппами/Forms/Форма/Ext/Form.xml | 5 ++++ .../ПоляВвода/Forms/Форма/Ext/Form.xml | 1 + .../ТестТумблер/Forms/Форма/Ext/Form.xml | 2 ++ 12 files changed, 78 insertions(+), 18 deletions(-) diff --git a/.claude/skills/form-compile/scripts/form-compile.ps1 b/.claude/skills/form-compile/scripts/form-compile.ps1 index d2047561..66231d88 100644 --- a/.claude/skills/form-compile/scripts/form-compile.ps1 +++ b/.claude/skills/form-compile/scripts/form-compile.ps1 @@ -1,4 +1,4 @@ -# form-compile v1.124 — Compile 1C managed form from JSON or object metadata +# form-compile v1.125 — Compile 1C managed form from JSON or object metadata # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills param( [string]$JsonPath, @@ -3024,6 +3024,17 @@ $script:genericScalars = @( @{ Tag='ScrollOnCompress'; Key='scrollOnCompress'; Kind='bool' } # Сочетание клавиш — общее свойство (input/group/radio/page/picField/label/table/check; команда — отд. путь, §7) @{ Tag='Shortcut'; Key='shortcut'; Kind='value' } + # Батч простых скаляров (input/radio/group/picDecoration/button): режим выбора незаполненного, + # равная ширина колонок, выравнивание детей, масштаб/зум картинки, форма/положение картинки кнопки. + # (Table HeaderHeight/FooterHeight/CurrentRowUse — НЕ здесь: строгий Table-XSD требует точной + # позиции, generic-позиция ломает загрузку; отдельная задача в Emit-Table.) + @{ Tag='IncompleteChoiceMode'; Key='incompleteChoiceMode'; Kind='value' } + @{ Tag='EqualColumnsWidth'; Key='equalColumnsWidth'; Kind='bool' } + @{ Tag='ChildrenAlign'; Key='childrenAlign'; Kind='value' } + @{ Tag='ImageScale'; Key='imageScale'; Kind='value' } + @{ Tag='Zoomable'; Key='zoomable'; Kind='bool' } + @{ Tag='Shape'; Key='shape'; Kind='value' } + @{ Tag='PictureLocation'; Key='pictureLocation'; Kind='value' } ) function Emit-GenericScalars { @@ -3511,7 +3522,7 @@ function Emit-Group { } # ShowTitle - if ($el.showTitle -eq $false) { X "$innerfalse" } + if ($null -ne $el.showTitle) { X "$inner$(if ($el.showTitle){'true'}else{'false'})" } # Заголовок свёрнутого представления (collapsible/popup) — мультиязычный текст if ($el.collapsedTitle) { Emit-MLText -tag "CollapsedRepresentationTitle" -text $el.collapsedTitle -indent $inner } @@ -3557,7 +3568,7 @@ function Emit-ColumnGroup { } if ($orientation) { X "$inner$orientation" } - if ($el.showTitle -eq $false) { X "$innerfalse" } + if ($null -ne $el.showTitle) { X "$inner$(if ($el.showTitle){'true'}else{'false'})" } # showInHeader эмитится общим Emit-CommonElementProps (через Emit-Layout) Emit-CommonFlags -el $el -indent $inner @@ -4407,7 +4418,7 @@ function Emit-Page { } if ($orientation) { X "$inner$orientation" } } - if ($el.showTitle -eq $false) { X "$innerfalse" } + if ($null -ne $el.showTitle) { X "$inner$(if ($el.showTitle){'true'}else{'false'})" } Emit-Layout -el $el -indent $inner # Оформление страницы (BackColor / TitleTextColor / TitleFont) — после ShowTitle, перед компаньоном @@ -4533,6 +4544,8 @@ function Emit-PictureDecoration { $inner = "$indent`t" Emit-DecorationTitle -el $el -name $name -indent $inner + # Текст при невыбранной картинке (NonselectedPictureText) — после Title (порядок корпуса) + if ($null -ne $el.nonselectedPictureText) { Emit-MLText -tag "NonselectedPictureText" -text $el.nonselectedPictureText -indent $inner } Emit-CommonFlags -el $el -indent $inner # Источник картинки — ТОЛЬКО $el.src (у PictureDecoration ключ 'picture' = тип/имя элемента, не источник). diff --git a/.claude/skills/form-compile/scripts/form-compile.py b/.claude/skills/form-compile/scripts/form-compile.py index f452f0a2..84322f25 100644 --- a/.claude/skills/form-compile/scripts/form-compile.py +++ b/.claude/skills/form-compile/scripts/form-compile.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# form-compile v1.124 — Compile 1C managed form from JSON or object metadata +# form-compile v1.125 — Compile 1C managed form from JSON or object metadata # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills import argparse import copy @@ -3142,6 +3142,14 @@ GENERIC_SCALARS = [ ('ScrollOnCompress', 'scrollOnCompress', 'bool'), # Сочетание клавиш — общее свойство (команда — отдельный путь) ('Shortcut', 'shortcut', 'value'), + # Батч простых скаляров (input/radio/group/picDecoration/button; Table-специфичные — отдельно) + ('IncompleteChoiceMode', 'incompleteChoiceMode', 'value'), + ('EqualColumnsWidth', 'equalColumnsWidth', 'bool'), + ('ChildrenAlign', 'childrenAlign', 'value'), + ('ImageScale', 'imageScale', 'value'), + ('Zoomable', 'zoomable', 'bool'), + ('Shape', 'shape', 'value'), + ('PictureLocation', 'pictureLocation', 'value'), ] @@ -3606,8 +3614,8 @@ def emit_group(lines, el, name, eid, indent): lines.append(f'{inner}{repr_val}') # ShowTitle - if el.get('showTitle') is False: - lines.append(f'{inner}false') + if el.get('showTitle') is not None: + lines.append(f'{inner}{"true" if el["showTitle"] else "false"}') # Заголовок свёрнутого представления (collapsible/popup) — мультиязычный текст if el.get('collapsedTitle'): emit_mltext(lines, inner, 'CollapsedRepresentationTitle', el['collapsedTitle']) @@ -3651,8 +3659,8 @@ def emit_column_group(lines, el, name, eid, indent): if orientation: lines.append(f'{inner}{orientation}') - if el.get('showTitle') is False: - lines.append(f'{inner}false') + if el.get('showTitle') is not None: + lines.append(f'{inner}{"true" if el["showTitle"] else "false"}') # showInHeader эмитится общим emit_common_element_props (через emit_layout) emit_common_flags(lines, el, inner) @@ -4134,8 +4142,8 @@ def emit_page(lines, el, name, eid, indent): orientation = orientation_map.get(str(el['group'])) if orientation: lines.append(f'{inner}{orientation}') - if el.get('showTitle') is False: - lines.append(f'{inner}false') + if el.get('showTitle') is not None: + lines.append(f'{inner}{"true" if el["showTitle"] else "false"}') emit_layout(lines, el, inner) # \u041e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b (BackColor / TitleTextColor / TitleFont) \u2014 \u043f\u043e\u0441\u043b\u0435 ShowTitle, \u043f\u0435\u0440\u0435\u0434 \u043a\u043e\u043c\u043f\u0430\u043d\u044c\u043e\u043d\u043e\u043c @@ -4246,6 +4254,9 @@ def emit_picture_decoration(lines, el, name, eid, indent): inner = f'{indent}\t' emit_decoration_title(lines, el, name, inner) + # Текст при невыбранной картинке (NonselectedPictureText) — после Title (порядок корпуса) + if el.get('nonselectedPictureText') is not None: + emit_mltext(lines, inner, 'NonselectedPictureText', el['nonselectedPictureText']) emit_common_flags(lines, el, inner) # Источник картинки — ТОЛЬКО src (ключ 'picture' = тип/имя элемента, не источник). diff --git a/.claude/skills/form-decompile/scripts/form-decompile.ps1 b/.claude/skills/form-decompile/scripts/form-decompile.ps1 index 5f91da08..aa7cbe3f 100644 --- a/.claude/skills/form-decompile/scripts/form-decompile.ps1 +++ b/.claude/skills/form-decompile/scripts/form-decompile.ps1 @@ -1,4 +1,4 @@ -# form-decompile v0.98 — Decompile 1C managed Form.xml to JSON DSL (draft) +# form-decompile v0.99 — Decompile 1C managed Form.xml to JSON DSL (draft) # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью. param( @@ -1348,6 +1348,14 @@ $GENERIC_SCALARS = @( @{ Tag='ScrollOnCompress'; Key='scrollOnCompress'; Kind='bool' } # Сочетание клавиш — общее свойство элемента (команда — отдельный путь) @{ Tag='Shortcut'; Key='shortcut'; Kind='value' } + # Батч простых скаляров (зеркало компилятора; Table HeaderHeight/FooterHeight/CurrentRowUse — отдельно) + @{ Tag='IncompleteChoiceMode'; Key='incompleteChoiceMode'; Kind='value' } + @{ Tag='EqualColumnsWidth'; Key='equalColumnsWidth'; Kind='bool' } + @{ Tag='ChildrenAlign'; Key='childrenAlign'; Kind='value' } + @{ Tag='ImageScale'; Key='imageScale'; Kind='value' } + @{ Tag='Zoomable'; Key='zoomable'; Kind='bool' } + @{ Tag='Shape'; Key='shape'; Kind='value' } + @{ Tag='PictureLocation'; Key='pictureLocation'; Kind='value' } ) # Захват generic-скаляров. Специфичная обработка (если ключ уже задан) — побеждает. @@ -1586,7 +1594,7 @@ function Decompile-Element { Add-CommonProps $obj $node $name $rep = Get-Child $node 'Representation' if ($rep) { $repmap=@{'None'='none';'NormalSeparation'='normal';'WeakSeparation'='weak';'StrongSeparation'='strong'}; if ($repmap.ContainsKey($rep)) { $obj['representation']=$repmap[$rep] } else { $obj['representation']=$rep } } - if ((Get-Child $node 'ShowTitle') -eq 'false') { $obj['showTitle'] = $false } + $st = Get-Child $node 'ShowTitle'; if ($null -ne $st) { $obj['showTitle'] = ($st -eq 'true') } # факт. значение (явный true тоже) $crt = $node.SelectSingleNode("lf:CollapsedRepresentationTitle", $ns); if ($crt) { $ct = Get-LangText $crt; if ($null -ne $ct -and $ct -ne '') { $obj['collapsedTitle'] = $ct } } if ((Get-Child $node 'United') -eq 'false') { $obj['united'] = $false } if ((Get-Child $node 'Collapsed') -eq 'true') { $obj['collapsed'] = $true } @@ -1601,7 +1609,7 @@ function Decompile-Element { if ($g -and $gmap.ContainsKey($g)) { $obj[$key] = $gmap[$g] } else { $obj[$key] = '' } $obj['name'] = $name Add-CommonProps $obj $node $name - if ((Get-Child $node 'ShowTitle') -eq 'false') { $obj['showTitle'] = $false } + $st = Get-Child $node 'ShowTitle'; if ($null -ne $st) { $obj['showTitle'] = ($st -eq 'true') } # факт. значение (явный true тоже) $sih = Get-Child $node 'ShowInHeader'; if ($null -ne $sih) { $obj['showInHeader'] = (To-Bool $sih) } $kids = Decompile-Children $node if ($kids) { $obj['children'] = $kids } @@ -1707,6 +1715,7 @@ function Decompile-Element { # title декорации — единая ML-text форма с formatted (атрибут у PictureDecoration) $tiNode = $node.SelectSingleNode("lf:Title", $ns) if ($tiNode) { $tv = Get-MLFormattedValue $tiNode; if ($null -ne $tv) { $obj['title'] = $tv } } + $npt = $node.SelectSingleNode("lf:NonselectedPictureText", $ns); if ($npt) { $t = Get-LangText $npt; if ($null -ne $t) { $obj['nonselectedPictureText'] = $t } } $ref = $node.SelectSingleNode("lf:Picture/xr:Ref", $ns) $abs = $node.SelectSingleNode("lf:Picture/xr:Abs", $ns) if ($ref) { $obj['src'] = $ref.InnerText } elseif ($abs) { $obj['src'] = "abs:$($abs.InnerText)" } # встроенная картинка → префикс abs: @@ -1820,7 +1829,7 @@ function Decompile-Element { if ($g -and $gmap.ContainsKey($g)) { $obj['group'] = $gmap[$g] } # Картинка страницы (иконка вкладки) — конвенция ValuesPicture (дефолт LoadTransparent=false) $pp = Get-PictureRef $node 'Picture'; if ($null -ne $pp) { $obj['picture'] = $pp } - if ((Get-Child $node 'ShowTitle') -eq 'false') { $obj['showTitle'] = $false } + $st = Get-Child $node 'ShowTitle'; if ($null -ne $st) { $obj['showTitle'] = ($st -eq 'true') } # факт. значение (явный true тоже) $kids = Decompile-Children $node if ($kids) { $obj['children'] = $kids } } @@ -2178,7 +2187,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','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','VariantAppearance') +$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','VariantAppearance','ShowCloseButton','HorizontalAlign','ChildrenAlign','ShowTitle') $props = [ordered]@{} foreach ($pn in $KNOWN_FORM_PROPS) { $v = Get-Child $root $pn diff --git a/docs/form-dsl-spec.md b/docs/form-dsl-spec.md index 922a9fb4..9dfa8c9f 100644 --- a/docs/form-dsl-spec.md +++ b/docs/form-dsl-spec.md @@ -74,6 +74,10 @@ | `reportResultViewMode` | `<ReportResultViewMode>` | `Auto` | | `viewModeApplicationOnSetReportResult` | `<ViewModeApplicationOnSetReportResult>` | `Auto` | | `variantAppearance` | `<VariantAppearance>` | Имя реквизита оформления варианта (форма отчёта) | +| `showCloseButton` | `<ShowCloseButton>` | `true` / `false` — показывать кнопку закрытия | +| `horizontalAlign` | `<HorizontalAlign>` | `Left`, `Center`, `Right` — горизонтальное выравнивание формы | +| `childrenAlign` | `<ChildrenAlign>` | Выравнивание элементов/заголовков (`ItemsLeftTitlesLeft`, `ItemsRightTitlesLeft`, `None`, …) | +| `showTitle` | `<ShowTitle>` | `true` / `false` — показывать заголовок формы | Нераспознанные ключи преобразуются с автоматическим PascalCase (первая буква в верхний регистр). diff --git a/tests/skills/cases/form-compile/element-appearance.json b/tests/skills/cases/form-compile/element-appearance.json index 3496bf7d..a8c6a483 100644 --- a/tests/skills/cases/form-compile/element-appearance.json +++ b/tests/skills/cases/form-compile/element-appearance.json @@ -31,6 +31,7 @@ "font": "style:NormalTextFont", "border": "style:ControlBorder" }, { "button": "ОК", "title": "ОК", + "shape": "Oval", "pictureLocation": "Right", "backColor": "web:Honeydew", "borderColor": "style:BorderColor", "font": "style:NormalTextFont" }, @@ -38,6 +39,7 @@ { "input": "Цена2", "path": "Объект.Цена", "textColor": "web:DimGray" } ]}, { "picture": "Логотип", "src": "StdPicture.Print", + "imageScale": 150, "zoomable": true, "nonselectedPictureText": "Нет изображения", "textColor": "web:FireBrick", "font": "style:NormalTextFont", "border": { "width": 1, "style": "Single" } } ] diff --git a/tests/skills/cases/form-compile/groups.json b/tests/skills/cases/form-compile/groups.json index bc17985a..a7b0848a 100644 --- a/tests/skills/cases/form-compile/groups.json +++ b/tests/skills/cases/form-compile/groups.json @@ -15,9 +15,10 @@ "validatePath": "DataProcessors/СГруппами/Forms/Форма/Ext/Form.xml", "input": { "title": "Группы", + "properties": { "showCloseButton": false, "horizontalAlign": "Left", "childrenAlign": "ItemsLeftTitlesLeft" }, "elements": [ { "cmdBar": "КоманднаяПанель", "autofill": true }, - { "group": "horizontal", "name": "ГруппаШапка", "behavior": "usual", "showTitle": true, "title": "Шапка", "shortcut": "Ctrl+G", "horizontalStretch": true, "groupHorizontalAlign": "Right", "throughAlign": "Use", "verticalAlign": "Top", "childItemsWidth": "Equal", "horizontalSpacing": "None", "children": [ + { "group": "horizontal", "name": "ГруппаШапка", "behavior": "usual", "showTitle": true, "title": "Шапка", "shortcut": "Ctrl+G", "childrenAlign": "ItemsRightTitlesLeft", "horizontalStretch": true, "groupHorizontalAlign": "Right", "throughAlign": "Use", "verticalAlign": "Top", "childItemsWidth": "Equal", "horizontalSpacing": "None", "children": [ { "input": "Поле1", "path": "Поле1", "title": "Поле 1", "width": 20, "skipOnInput": true, "mask": "999-999" }, { "input": "Поле2", "path": "Поле2", "title": "Поле 2" }, { "labelField": "Метка", "path": "Поле1", "groupVerticalAlign": "Center" } diff --git a/tests/skills/cases/form-compile/input-fields.json b/tests/skills/cases/form-compile/input-fields.json index 9b9ce1fa..6ad314ab 100644 --- a/tests/skills/cases/form-compile/input-fields.json +++ b/tests/skills/cases/form-compile/input-fields.json @@ -21,7 +21,7 @@ { "input": "МногострочноеПоле", "path": "МногострочноеПоле", "multiLine": true, "height": 5, "title": "Комментарий", "wrap": false, "showInHeader": false, "showInFooter": false, "autoCellHeight": true, "footerHorizontalAlign": "Right", "openButton": false, "chooseType": false }, { "input": "ПолеПароля", "path": "ПолеПароля", "passwordMode": true, "title": "Пароль" }, { "input": "ЧисловоеПоле", "path": "ЧисловоеПоле", "title": "Число", "minValue": 1, "maxValue": 100, "displayImportance": "VeryHigh" }, - { "input": "ПолеСКнопками", "path": "ПолеСКнопками", "choiceButton": true, "clearButton": true, "dropListButton": false, "spinButton": true, "choiceListButton": true, "quickChoice": false, "autoChoiceIncomplete": true, "choiceHistoryOnInput": "DontUse", "choiceForm": "DataProcessor.ПоляВвода.Form.Форма", "title": "Выбор" }, + { "input": "ПолеСКнопками", "path": "ПолеСКнопками", "choiceButton": true, "clearButton": true, "dropListButton": false, "spinButton": true, "choiceListButton": true, "quickChoice": false, "autoChoiceIncomplete": true, "incompleteChoiceMode": "OnActivate", "choiceHistoryOnInput": "DontUse", "choiceForm": "DataProcessor.ПоляВвода.Form.Форма", "title": "Выбор" }, { "input": "ПолеСписокВыбора", "path": "ПолеСписокВыбора", "title": "Список выбора", "choiceList": [ { "value": "", "presentation": "Все" }, { "value": "Первый" }, diff --git a/tests/skills/cases/form-compile/radio-tumbler-strings.json b/tests/skills/cases/form-compile/radio-tumbler-strings.json index 829e3557..04efd6e8 100644 --- a/tests/skills/cases/form-compile/radio-tumbler-strings.json +++ b/tests/skills/cases/form-compile/radio-tumbler-strings.json @@ -35,6 +35,8 @@ }, { "radio": "ВидСчета", + "equalColumnsWidth": true, + "columnsCount": 1, "choiceList": [ { "value": "Active", "valueType": "ent:AccountType", "presentation": "Активный" }, { "value": "Passive", "valueType": "ent:AccountType", "presentation": "Пассивный" }, diff --git a/tests/skills/cases/form-compile/snapshots/element-appearance/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/element-appearance/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml index 8ff4dafd..4055d0f5 100644 --- a/tests/skills/cases/form-compile/snapshots/element-appearance/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml +++ b/tests/skills/cases/form-compile/snapshots/element-appearance/Catalogs/Товары/Forms/ФормаЭлемента/Ext/Form.xml @@ -51,6 +51,8 @@ <v8:content>ОК</v8:content> </v8:item> + Oval + Right web:Honeydew style:BorderColor @@ -69,10 +71,18 @@ + + + ru + Нет изображения + + StdPicture.Print false + 150 + true web:FireBrick diff --git a/tests/skills/cases/form-compile/snapshots/groups/DataProcessors/СГруппами/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/groups/DataProcessors/СГруппами/Forms/Форма/Ext/Form.xml index cffa7b27..bb11d13d 100644 --- a/tests/skills/cases/form-compile/snapshots/groups/DataProcessors/СГруппами/Forms/Форма/Ext/Form.xml +++ b/tests/skills/cases/form-compile/snapshots/groups/DataProcessors/СГруппами/Forms/Форма/Ext/Form.xml @@ -7,6 +7,9 @@ false + false + Left + ItemsLeftTitlesLeft false @@ -24,6 +27,7 @@ Horizontal Usual + true true Right Top @@ -31,6 +35,7 @@ Equal None Ctrl+G + ItemsRightTitlesLeft diff --git a/tests/skills/cases/form-compile/snapshots/input-fields/DataProcessors/ПоляВвода/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/input-fields/DataProcessors/ПоляВвода/Forms/Форма/Ext/Form.xml index 737594da..618dfa34 100644 --- a/tests/skills/cases/form-compile/snapshots/input-fields/DataProcessors/ПоляВвода/Forms/Форма/Ext/Form.xml +++ b/tests/skills/cases/form-compile/snapshots/input-fields/DataProcessors/ПоляВвода/Forms/Форма/Ext/Form.xml @@ -143,6 +143,7 @@ true DataProcessor.ПоляВвода.Form.Форма DontUse + OnActivate diff --git a/tests/skills/cases/form-compile/snapshots/radio-tumbler-strings/DataProcessors/ТестТумблер/Forms/Форма/Ext/Form.xml b/tests/skills/cases/form-compile/snapshots/radio-tumbler-strings/DataProcessors/ТестТумблер/Forms/Форма/Ext/Form.xml index d6ae242f..6e5491ea 100644 --- a/tests/skills/cases/form-compile/snapshots/radio-tumbler-strings/DataProcessors/ТестТумблер/Forms/Форма/Ext/Form.xml +++ b/tests/skills/cases/form-compile/snapshots/radio-tumbler-strings/DataProcessors/ТестТумблер/Forms/Форма/Ext/Form.xml @@ -60,6 +60,7 @@ None Auto + 1 @@ -101,6 +102,7 @@ + true