feat(form-decompile,form-compile): поля диаграмм из ring-3 (Chart/Gantt/GraphicalSchema/Planner/Period/Dendrogram)

Снят fast-fail на 6 chart-полях. Все — простые скелеты (как document/gauge),
кроме GanttChart с вложенной <Table> (ключ ganttTable, переиспользует
Decompile/Emit-Element — устранена коллизия тип-ключа table). Типы реквизитов
уже в special-type ns-карте (d5p1:Chart/GanttChart/FlowchartContextType/
GeographicalSchema, pl:Planner) + v8:StandardPeriod. Edit/WarningOnEditRepresentation
у GraphicalSchema — через готовые GENERIC_SCALARS.

Guard: реквизит с design-time конфигом диаграммы/планировщика
(<Settings xsi:type="d4p1:GanttChart"/"pl:Planner"/…> — третий вид Settings
после TypeDescription/DynamicList) → честный fail-ring3 (не теряем молча).
Planner несёт Settings всегда; Chart/Gantt — при настройке. Поля без Settings
(диаграмма из кода/график-схема/период/дендрограмма/гео) роундтрипятся полностью.

Выборка 2.17: ring3 4→0 (весь ring3 разобран!). Кейс chart-fields
(chart+graphicalSchema+period+ganttChart с ganttTable) сертифицирован в 1С.
Зеркало py байт-в-байт. Регресс 41/41 (ps1+py).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-09 22:40:48 +03:00
co-authored by Claude Opus 4.8
parent 5ebc02d0b3
commit 29f288fe1d
14 changed files with 640 additions and 9 deletions
@@ -1,4 +1,4 @@
# form-compile v1.101 — Compile 1C managed form from JSON or object metadata # form-compile v1.103 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
param( param(
[string]$JsonPath, [string]$JsonPath,
@@ -2564,6 +2564,18 @@ function Emit-Element {
"ПолеИндикатора" = "progressBar" "ПолеИндикатора" = "progressBar"
"TrackBarField" = "trackBar" "TrackBarField" = "trackBar"
"ПолеПолосыРегулирования" = "trackBar" "ПолеПолосыРегулирования" = "trackBar"
"ChartField" = "chart"
"ПолеДиаграммы" = "chart"
"GanttChartField" = "ganttChart"
"ПолеДиаграммыГанта" = "ganttChart"
"GraphicalSchemaField" = "graphicalSchema"
"ПолеГрафическойСхемы" = "graphicalSchema"
"PlannerField" = "planner"
"ПолеПланировщика" = "planner"
"PeriodField" = "periodField"
"ПолеПериода" = "periodField"
"DendrogramField" = "dendrogram"
"ПолеДендрограммы" = "dendrogram"
} }
foreach ($pair in $synonyms.GetEnumerator()) { foreach ($pair in $synonyms.GetEnumerator()) {
if ($null -ne $el.PSObject.Properties[$pair.Key] -and $null -eq $el.PSObject.Properties[$pair.Value]) { if ($null -ne $el.PSObject.Properties[$pair.Key] -and $null -eq $el.PSObject.Properties[$pair.Value]) {
@@ -2596,7 +2608,7 @@ function Emit-Element {
# у popup/button/cmdBar. Тип-ключ владельца (popup/button/…) должен выиграть. # у popup/button/cmdBar. Тип-ключ владельца (popup/button/…) должен выиграть.
# pages/page ПЕРЕД group: у Page/Pages ключ 'group' — это направление раскладки детей # pages/page ПЕРЕД group: у Page/Pages ключ 'group' — это направление раскладки детей
# (<Group>Horizontal</Group>), а не тип UsualGroup. Реальная UsualGroup ключа page/pages не несёт. # (<Group>Horizontal</Group>), а не тип UsualGroup. Реальная UsualGroup ключа page/pages не несёт.
foreach ($key in @("columnGroup","buttonGroup","pages","page","group","input","check","radio","label","labelField","table","button","calendar","cmdBar","popup","searchString","viewStatus","searchControl","picField","picture","spreadsheet","html","textDoc","formattedDoc","progressBar","trackBar")) { foreach ($key in @("columnGroup","buttonGroup","pages","page","group","input","check","radio","label","labelField","table","button","calendar","cmdBar","popup","searchString","viewStatus","searchControl","picField","picture","spreadsheet","html","textDoc","formattedDoc","progressBar","trackBar","chart","ganttChart","graphicalSchema","planner","periodField","dendrogram")) {
if ($el.$key -ne $null) { if ($el.$key -ne $null) {
$typeKey = $key $typeKey = $key
break break
@@ -2613,8 +2625,9 @@ function Emit-Element {
# type keys # type keys
"group"=1;"columnGroup"=1;"buttonGroup"=1;"input"=1;"check"=1;"radio"=1;"label"=1;"labelField"=1;"table"=1;"pages"=1;"page"=1 "group"=1;"columnGroup"=1;"buttonGroup"=1;"input"=1;"check"=1;"radio"=1;"label"=1;"labelField"=1;"table"=1;"pages"=1;"page"=1
"button"=1;"picture"=1;"picField"=1;"calendar"=1;"cmdBar"=1;"popup"=1 "button"=1;"picture"=1;"picField"=1;"calendar"=1;"cmdBar"=1;"popup"=1
# спец-поля (документ/датчик) — тип-ключи + типоспец. скаляры # спец-поля (документ/датчик/диаграмма) — тип-ключи + типоспец. скаляры
"spreadsheet"=1;"html"=1;"textDoc"=1;"formattedDoc"=1;"progressBar"=1;"trackBar"=1 "spreadsheet"=1;"html"=1;"textDoc"=1;"formattedDoc"=1;"progressBar"=1;"trackBar"=1
"chart"=1;"ganttChart"=1;"graphicalSchema"=1;"planner"=1;"periodField"=1;"dendrogram"=1;"ganttTable"=1
"showPercent"=1;"largeStep"=1;"markingStep"=1;"step"=1 "showPercent"=1;"largeStep"=1;"markingStep"=1;"step"=1
"horizontalScrollBar"=1;"viewScalingMode"=1;"output"=1;"selectionShowMode"=1;"protection"=1 "horizontalScrollBar"=1;"viewScalingMode"=1;"output"=1;"selectionShowMode"=1;"protection"=1
"edit"=1;"showGrid"=1;"showGroups"=1;"showHeaders"=1;"showRowAndColumnNames"=1;"showCellNames"=1 "edit"=1;"showGrid"=1;"showGroups"=1;"showHeaders"=1;"showRowAndColumnNames"=1;"showCellNames"=1
@@ -2739,6 +2752,12 @@ function Emit-Element {
"formattedDoc" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "FormattedDocumentField" -typeKey "formattedDoc" } "formattedDoc" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "FormattedDocumentField" -typeKey "formattedDoc" }
"progressBar" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "ProgressBarField" -typeKey "progressBar" } "progressBar" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "ProgressBarField" -typeKey "progressBar" }
"trackBar" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "TrackBarField" -typeKey "trackBar" } "trackBar" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "TrackBarField" -typeKey "trackBar" }
"chart" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "ChartField" -typeKey "chart" }
"graphicalSchema" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "GraphicalSchemaField" -typeKey "graphicalSchema" }
"planner" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "PlannerField" -typeKey "planner" }
"periodField" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "PeriodField" -typeKey "periodField" }
"dendrogram" { Emit-SimpleField -el $el -name $name -id $id -indent $indent -xmlTag "DendrogramField" -typeKey "dendrogram" }
"ganttChart" { Emit-GanttChart -el $el -name $name -id $id -indent $indent }
} }
} }
@@ -4302,6 +4321,26 @@ function Emit-SimpleField {
X "$indent</$xmlTag>" X "$indent</$xmlTag>"
} }
# GanttChartField — скелет поля + вложенная <Table> (полноценная таблица, через Emit-Element).
# Порядок (по корпусу): path/title/flags/titleLocation/layout/appearance, companions, Table, events.
function Emit-GanttChart {
param($el, [string]$name, [int]$id, [string]$indent)
X "$indent<GanttChartField name=`"$name`" id=`"$id`"$(DI-Attr $el)>"
$inner = "$indent`t"
if ($el.path) { X "$inner<DataPath>$($el.path)</DataPath>" }
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>" }
Emit-Layout -el $el -indent $inner
Emit-Appearance -el $el -indent $inner -profile 'field'
Emit-CompanionPanel -tag "ContextMenu" -name "${name}КонтекстноеМеню" -indent $inner -panel $el.contextMenu
Emit-Companion -tag "ExtendedTooltip" -name "${name}РасширеннаяПодсказка" -indent $inner -content $el.extendedTooltip
# Вложенная таблица диаграммы Ганта (стандартный Table — переиспользуем Emit-Element)
if ($el.ganttTable) { Emit-Element -el $el.ganttTable -indent $inner }
Emit-Events -el $el -elementName $name -indent $inner -typeKey "ganttChart"
X "$indent</GanttChartField>"
}
function Emit-CommandBar { function Emit-CommandBar {
param($el, [string]$name, [int]$id, [string]$indent) param($el, [string]$name, [int]$id, [string]$indent)
@@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# form-compile v1.101 — Compile 1C managed form from JSON or object metadata # form-compile v1.103 — Compile 1C managed form from JSON or object metadata
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
import argparse import argparse
import copy import copy
@@ -1832,8 +1832,9 @@ KNOWN_KEYS = {
"choiceForm", "choiceHistoryOnInput", "footerDataPath", "minValue", "maxValue", "choiceForm", "choiceHistoryOnInput", "footerDataPath", "minValue", "maxValue",
# Button — пометка toggle-кнопки # Button — пометка toggle-кнопки
"checked", "checked",
# спец-поля (документ/датчик) — тип-ключи + типоспец. скаляры # спец-поля (документ/датчик/диаграмма) — тип-ключи + типоспец. скаляры
"spreadsheet", "html", "textDoc", "formattedDoc", "progressBar", "trackBar", "spreadsheet", "html", "textDoc", "formattedDoc", "progressBar", "trackBar",
"chart", "ganttChart", "graphicalSchema", "planner", "periodField", "dendrogram", "ganttTable",
"showPercent", "largeStep", "markingStep", "step", "showPercent", "largeStep", "markingStep", "step",
"horizontalScrollBar", "viewScalingMode", "output", "selectionShowMode", "protection", "horizontalScrollBar", "viewScalingMode", "output", "selectionShowMode", "protection",
"edit", "showGrid", "showGroups", "showHeaders", "showRowAndColumnNames", "showCellNames", "edit", "showGrid", "showGroups", "showHeaders", "showRowAndColumnNames", "showCellNames",
@@ -1853,7 +1854,8 @@ KNOWN_KEYS = {
# (<Group>Horizontal</Group>), а не тип UsualGroup. Реальная UsualGroup ключа page/pages не несёт. # (<Group>Horizontal</Group>), а не тип UsualGroup. Реальная UsualGroup ключа page/pages не несёт.
TYPE_KEYS = ["columnGroup", "buttonGroup", "pages", "page", "group", "input", "check", "radio", "label", "labelField", "table", TYPE_KEYS = ["columnGroup", "buttonGroup", "pages", "page", "group", "input", "check", "radio", "label", "labelField", "table",
"button", "calendar", "cmdBar", "popup", "searchString", "viewStatus", "searchControl", "picField", "picture", "button", "calendar", "cmdBar", "popup", "searchString", "viewStatus", "searchControl", "picField", "picture",
"spreadsheet", "html", "textDoc", "formattedDoc", "progressBar", "trackBar"] "spreadsheet", "html", "textDoc", "formattedDoc", "progressBar", "trackBar",
"chart", "ganttChart", "graphicalSchema", "planner", "periodField", "dendrogram"]
# Synonyms: model often writes XML name or Russian (ПолеПереключателя/RadioButtonField → radio) # Synonyms: model often writes XML name or Russian (ПолеПереключателя/RadioButtonField → radio)
ELEMENT_TYPE_SYNONYMS = { ELEMENT_TYPE_SYNONYMS = {
@@ -1919,6 +1921,18 @@ ELEMENT_TYPE_SYNONYMS = {
"ПолеИндикатора": "progressBar", "ПолеИндикатора": "progressBar",
"TrackBarField": "trackBar", "TrackBarField": "trackBar",
"ПолеПолосыРегулирования": "trackBar", "ПолеПолосыРегулирования": "trackBar",
"ChartField": "chart",
"ПолеДиаграммы": "chart",
"GanttChartField": "ganttChart",
"ПолеДиаграммыГанта": "ganttChart",
"GraphicalSchemaField": "graphicalSchema",
"ПолеГрафическойСхемы": "graphicalSchema",
"PlannerField": "planner",
"ПолеПланировщика": "planner",
"PeriodField": "periodField",
"ПолеПериода": "periodField",
"DendrogramField": "dendrogram",
"ПолеДендрограммы": "dendrogram",
} }
# Тип-синонимы, применяемые ТОЛЬКО к строковому значению (имя элемента); объект/массив # Тип-синонимы, применяемые ТОЛЬКО к строковому значению (имя элемента); объект/массив
@@ -3163,6 +3177,12 @@ def emit_element(lines, el, indent, in_cmd_bar=False):
'formattedDoc': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'FormattedDocumentField', 'formattedDoc'), 'formattedDoc': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'FormattedDocumentField', 'formattedDoc'),
'progressBar': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'ProgressBarField', 'progressBar'), 'progressBar': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'ProgressBarField', 'progressBar'),
'trackBar': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'TrackBarField', 'trackBar'), 'trackBar': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'TrackBarField', 'trackBar'),
'chart': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'ChartField', 'chart'),
'graphicalSchema': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'GraphicalSchemaField', 'graphicalSchema'),
'planner': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'PlannerField', 'planner'),
'periodField': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'PeriodField', 'periodField'),
'dendrogram': lambda lines, el, name, eid, indent: emit_simple_field(lines, el, name, eid, indent, 'DendrogramField', 'dendrogram'),
'ganttChart': emit_gantt_chart,
} }
emitter = emitters.get(type_key) emitter = emitters.get(type_key)
@@ -3952,6 +3972,27 @@ def emit_simple_field(lines, el, name, eid, indent, xml_tag, type_key):
lines.append(f'{indent}</{xml_tag}>') lines.append(f'{indent}</{xml_tag}>')
def emit_gantt_chart(lines, el, name, eid, indent):
# GanttChartField — скелет поля + вложенная <Table> (полноценная таблица, через emit_element).
lines.append(f'{indent}<GanttChartField name="{name}" id="{eid}"{di_attr(el)}>')
inner = f'{indent}\t'
if el.get('path'):
lines.append(f'{inner}<DataPath>{el["path"]}</DataPath>')
emit_title(lines, el, name, inner, auto=not el.get('path'))
emit_common_flags(lines, el, inner)
if el.get('titleLocation'):
lines.append(f'{inner}<TitleLocation>{map_title_loc(el["titleLocation"])}</TitleLocation>')
emit_layout(lines, el, inner)
emit_appearance(lines, el, inner, 'field')
emit_companion_panel(lines, 'ContextMenu', f'{name}КонтекстноеМеню', inner, el.get('contextMenu'))
emit_companion(lines, 'ExtendedTooltip', f'{name}РасширеннаяПодсказка', inner, el.get('extendedTooltip'))
# Вложенная таблица диаграммы Ганта (стандартный Table — переиспользуем emit_element)
if el.get('ganttTable'):
emit_element(lines, el['ganttTable'], inner)
emit_events(lines, el, name, inner, 'ganttChart')
lines.append(f'{indent}</GanttChartField>')
def emit_calendar(lines, el, name, eid, indent): def emit_calendar(lines, el, name, eid, indent):
lines.append(f'{indent}<CalendarField name="{name}" id="{eid}"{di_attr(el)}>') lines.append(f'{indent}<CalendarField name="{name}" id="{eid}"{di_attr(el)}>')
inner = f'{indent}\t' inner = f'{indent}\t'
@@ -1,4 +1,4 @@
# form-decompile v0.77 — Decompile 1C managed Form.xml to JSON DSL (draft) # form-decompile v0.79 — Decompile 1C managed Form.xml to JSON DSL (draft)
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills # Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
# ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью. # ВНИМАНИЕ: раундтрип не гарантируется. Навык исключён из авто-использования моделью.
param( param(
@@ -147,6 +147,15 @@ function Fail-Ring3 {
} }
# ConditionalAppearance со scope (привязка к области) пока не воспроизводим — fail-ring3 только в этом случае. # ConditionalAppearance со scope (привязка к области) пока не воспроизводим — fail-ring3 только в этом случае.
foreach ($el in $xmlDoc.SelectNodes("//*[local-name()='ConditionalAppearance']/*[local-name()='item']/*[local-name()='scope'][node()]")) { Fail-Ring3 -kind "ConditionalAppearance со scope" -loc "form/ConditionalAppearance/item/scope" } foreach ($el in $xmlDoc.SelectNodes("//*[local-name()='ConditionalAppearance']/*[local-name()='item']/*[local-name()='scope'][node()]")) { Fail-Ring3 -kind "ConditionalAppearance со scope" -loc "form/ConditionalAppearance/item/scope" }
# Реквизит с design-time конфигурацией (<Settings> chart-типа: Диаграмма/ДиаграммаГанта/… —
# d4p1:GanttChart и т.п.). Поддержаны только TypeDescription (valueType) и DynamicList; прочие
# (встроенная конфигурация диаграммы) пока НЕ воспроизводим → честный скип, чтобы не потерять молча.
foreach ($s in $xmlDoc.SelectNodes("//*[local-name()='Attribute']/*[local-name()='Settings']")) {
$st = $s.GetAttribute("type", $NS_XSI)
if ($st -and $st -notmatch 'TypeDescription$' -and $st -notmatch 'DynamicList$') {
Fail-Ring3 -kind "Attribute>Settings типа '$st' (design-time конфигурация, напр. диаграмма)" -loc "Attribute/Settings"
}
}
# --- 1c. Compact JSON serializer (созвучно skd-decompile: 2-проб. indent, inline в пределах lineLimit) --- # --- 1c. Compact JSON serializer (созвучно skd-decompile: 2-проб. indent, inline в пределах lineLimit) ---
function Convert-StringToJsonLiteral { function Convert-StringToJsonLiteral {
@@ -1187,7 +1196,9 @@ $ELEMENT_KEY = @{
'Table'='table'; 'Pages'='pages'; 'Page'='page'; 'Button'='button'; 'CommandBar'='cmdBar'; 'Popup'='popup'; 'Table'='table'; 'Pages'='pages'; 'Page'='page'; 'Button'='button'; 'CommandBar'='cmdBar'; 'Popup'='popup';
'SearchStringAddition'='searchString'; 'ViewStatusAddition'='viewStatus'; 'SearchControlAddition'='searchControl'; 'SearchStringAddition'='searchString'; 'ViewStatusAddition'='viewStatus'; 'SearchControlAddition'='searchControl';
'SpreadSheetDocumentField'='spreadsheet'; 'HTMLDocumentField'='html'; 'TextDocumentField'='textDoc'; 'SpreadSheetDocumentField'='spreadsheet'; 'HTMLDocumentField'='html'; 'TextDocumentField'='textDoc';
'FormattedDocumentField'='formattedDoc'; 'ProgressBarField'='progressBar'; 'TrackBarField'='trackBar' 'FormattedDocumentField'='formattedDoc'; 'ProgressBarField'='progressBar'; 'TrackBarField'='trackBar';
'ChartField'='chart'; 'GraphicalSchemaField'='graphicalSchema'; 'PlannerField'='planner';
'PeriodField'='periodField'; 'DendrogramField'='dendrogram'; 'GanttChartField'='ganttChart'
} }
# Простые скаляры элемента (pass-through, зеркало $script:genericScalars компилятора). kind bool/value. # Простые скаляры элемента (pass-through, зеркало $script:genericScalars компилятора). kind bool/value.
@@ -1761,6 +1772,18 @@ function Decompile-Element {
'FormattedDocumentField' { Decompile-SimpleField $obj $node $name $key } 'FormattedDocumentField' { Decompile-SimpleField $obj $node $name $key }
'ProgressBarField' { Decompile-SimpleField $obj $node $name $key; Add-GaugeScalars $obj $node @('MinValue','MaxValue') } 'ProgressBarField' { Decompile-SimpleField $obj $node $name $key; Add-GaugeScalars $obj $node @('MinValue','MaxValue') }
'TrackBarField' { Decompile-SimpleField $obj $node $name $key; Add-GaugeScalars $obj $node @('MinValue','MaxValue','LargeStep','MarkingStep','Step') } 'TrackBarField' { Decompile-SimpleField $obj $node $name $key; Add-GaugeScalars $obj $node @('MinValue','MaxValue','LargeStep','MarkingStep','Step') }
'ChartField' { Decompile-SimpleField $obj $node $name $key }
'GraphicalSchemaField' { Decompile-SimpleField $obj $node $name $key }
'PlannerField' { Decompile-SimpleField $obj $node $name $key }
'PeriodField' { Decompile-SimpleField $obj $node $name $key }
'DendrogramField' { Decompile-SimpleField $obj $node $name $key }
'GanttChartField' {
Decompile-SimpleField $obj $node $name $key
# Вложенная <Table> (полноценная таблица) — переиспользуем общий Decompile-Element.
# Ключ ganttTable (не 'table' — во избежание коллизии с тип-ключом таблицы в диспетчере).
$tblNode = $node.SelectSingleNode("lf:Table", $ns)
if ($tblNode) { $obj['ganttTable'] = Decompile-Element $tblNode }
}
} }
# DisplayImportance — атрибут открывающего тега (адаптивная важность отображения), захват «как есть». # DisplayImportance — атрибут открывающего тега (адаптивная важность отображения), захват «как есть».
$di = $node.GetAttribute("DisplayImportance"); if ($di) { $obj['displayImportance'] = $di } $di = $node.GetAttribute("DisplayImportance"); if ($di) { $obj['displayImportance'] = $di }
+14 -1
View File
@@ -761,15 +761,28 @@ flags/layout/оформление/companions/события общий), плю
| `formattedDoc` | FormattedDocumentField | `fd:FormattedDocument` | `editMode` | | `formattedDoc` | FormattedDocumentField | `fd:FormattedDocument` | `editMode` |
| `progressBar` | ProgressBarField | число | `showPercent`, `minValue`/`maxValue` (без `xsi:type`, ≠ типизированных у `input`) | | `progressBar` | ProgressBarField | число | `showPercent`, `minValue`/`maxValue` (без `xsi:type`, ≠ типизированных у `input`) |
| `trackBar` | TrackBarField | число | `minValue`/`maxValue`/`largeStep`/`markingStep`/`step` (числовые), `markingAppearance` | | `trackBar` | TrackBarField | число | `minValue`/`maxValue`/`largeStep`/`markingStep`/`step` (числовые), `markingAppearance` |
| `chart` | ChartField | `d5p1:Chart` (Диаграмма) | — (скелет; `TitleFont`/`MaxWidth` через общий механизм) |
| `ganttChart` | GanttChartField | `d5p1:GanttChart` (ДиаграммаГанта) | `ganttTable` — вложенная `<Table>` (полноценная таблица, та же грамматика) |
| `graphicalSchema` | GraphicalSchemaField | `d5p1:FlowchartContextType` (ГрафическаяСхема) | `edit`, `warningOnEditRepresentation` |
| `planner` | PlannerField | `pl:Planner` (Планировщик) | — |
| `periodField` | PeriodField | `v8:StandardPeriod` (Период) | — |
| `dendrogram` | DendrogramField | (Дендрограмма) | — |
```json ```json
{ "spreadsheet": "ТаблицаОтчета", "path": "ТаблицаОтчета", "titleLocation": "none", "readOnly": true, "output": "Disable", "protection": true } { "spreadsheet": "ТаблицаОтчета", "path": "ТаблицаОтчета", "titleLocation": "none", "readOnly": true, "output": "Disable", "protection": true }
{ "trackBar": "Масштаб", "path": "Масштаб", "minValue": 20, "maxValue": 400, "markingStep": 20 } { "trackBar": "Масштаб", "path": "Масштаб", "minValue": 20, "maxValue": 400, "markingStep": 20 }
{ "ganttChart": "Ганта", "path": "Ганта", "ganttTable": { "table": "ТаблицаГанта", "path": "Ганта", "height": 3 } }
``` ```
Forgiving-синонимы типа: XML-имя (`SpreadSheetDocumentField`) и рус. (`ПолеТабличногоДокумента`, `ПолеИндикатора`, …). Forgiving-синонимы типа: XML-имя (`SpreadSheetDocumentField`) и рус. (`ПолеТабличногоДокумента`, `ПолеИндикатора`, `ПолеДиаграммы`, `ПолеДиаграммыГанта`, …).
Скаляры `output`/`protection`/… — generic pass-through; bool как `true`/`false`, enum verbatim. Скаляры `output`/`protection`/… — generic pass-through; bool как `true`/`false`, enum verbatim.
> **Ограничение — design-time конфигурация диаграмм/планировщика.** Реквизит chart-типа может нести
> `<Settings xsi:type="d4p1:GanttChart"/"pl:Planner"/…>` — встроенный конфиг диаграммы (серии/оси/цвета/планировщик).
> Planner несёт Settings ВСЕГДА (даже дефолтный), Chart/Gantt — при design-time настройке. Этот блок пока НЕ
> воспроизводится → декомпилятор делает честный fail-ring3 (не теряет молча). Поля без Settings (диаграмма,
> заполняемая в коде; график-схема; период) роундтрипятся полностью.
#### autoCmdBar — командная панель формы #### autoCmdBar — командная панель формы
Командная панель самой формы (`<AutoCommandBar id="-1">`). Задаётся как элемент в `elements`; компилятор автоматически вынимает его из дерева. Нужен только если в панель помещаются **явные** кнопки/группы или меняется выравнивание/автозаполнение — иначе панель формируется автоматически. Командная панель самой формы (`<AutoCommandBar id="-1">`). Задаётся как элемент в `elements`; компилятор автоматически вынимает его из дерева. Нужен только если в панель помещаются **явные** кнопки/группы или меняется выравнивание/автозаполнение — иначе панель формируется автоматически.
@@ -0,0 +1,33 @@
{
"name": "Форма с полями диаграмм (без design-time Settings)",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "DataProcessor", "name": "Диаграммы" },
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "form-add/scripts/form-add",
"args": { "-ObjectPath": "{workDir}/DataProcessors/Диаграммы.xml", "-FormName": "Форма" }
}
],
"params": { "outputPath": "DataProcessors/Диаграммы/Forms/Форма/Ext/Form.xml" },
"validatePath": "DataProcessors/Диаграммы/Forms/Форма/Ext/Form.xml",
"input": {
"title": "Диаграммы",
"elements": [
{ "chart": "Диаграмма", "path": "Диаграмма", "titleLocation": "none" },
{ "graphicalSchema": "Схема", "path": "Схема", "titleLocation": "none", "edit": false },
{ "periodField": "Период", "path": "Период", "titleLocation": "none" },
{ "ganttChart": "Ганта", "path": "Ганта", "titleLocation": "none",
"ganttTable": { "table": "ТаблицаГанта", "path": "Ганта", "height": 3 } }
],
"attributes": [
{ "name": "Объект", "type": "DataProcessorObject.Диаграммы", "main": true },
{ "name": "Диаграмма", "type": "d5p1:Chart" },
{ "name": "Схема", "type": "d5p1:FlowchartContextType" },
{ "name": "Период", "type": "v8:StandardPeriod" },
{ "name": "Ганта", "type": "d5p1:GanttChart" }
]
}
}
@@ -0,0 +1,252 @@
<?xml version="1.0" encoding="utf-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
<Configuration uuid="UUID-001">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>UUID-002</xr:ClassId>
<xr:ObjectId>UUID-003</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>UUID-004</xr:ClassId>
<xr:ObjectId>UUID-005</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>UUID-006</xr:ClassId>
<xr:ObjectId>UUID-007</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>UUID-008</xr:ClassId>
<xr:ObjectId>UUID-009</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>UUID-010</xr:ClassId>
<xr:ObjectId>UUID-011</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>UUID-012</xr:ClassId>
<xr:ObjectId>UUID-013</xr:ObjectId>
</xr:ContainedObject>
<xr:ContainedObject>
<xr:ClassId>UUID-014</xr:ClassId>
<xr:ObjectId>UUID-015</xr:ObjectId>
</xr:ContainedObject>
</InternalInfo>
<Properties>
<Name>TestConfig</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>TestConfig</v8:content>
</v8:item>
</Synonym>
<Comment />
<NamePrefix />
<ConfigurationExtensionCompatibilityMode>Version8_3_24</ConfigurationExtensionCompatibilityMode>
<DefaultRunMode>ManagedApplication</DefaultRunMode>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
</UsePurposes>
<ScriptVariant>Russian</ScriptVariant>
<DefaultRoles />
<Vendor></Vendor>
<Version></Version>
<UpdateCatalogAddress />
<IncludeHelpInContents>false</IncludeHelpInContents>
<UseManagedFormInOrdinaryApplication>false</UseManagedFormInOrdinaryApplication>
<UseOrdinaryFormInManagedApplication>false</UseOrdinaryFormInManagedApplication>
<AdditionalFullTextSearchDictionaries />
<CommonSettingsStorage />
<ReportsUserSettingsStorage />
<ReportsVariantsStorage />
<FormDataSettingsStorage />
<DynamicListsUserSettingsStorage />
<URLExternalDataStorage />
<Content />
<DefaultReportForm />
<DefaultReportVariantForm />
<DefaultReportSettingsForm />
<DefaultReportAppearanceTemplate />
<DefaultDynamicListSettingsForm />
<DefaultSearchForm />
<DefaultDataHistoryChangeHistoryForm />
<DefaultDataHistoryVersionDataForm />
<DefaultDataHistoryVersionDifferencesForm />
<DefaultCollaborationSystemUsersChoiceForm />
<RequiredMobileApplicationPermissions />
<UsedMobileApplicationFunctionalities>
<app:functionality>
<app:functionality>Biometrics</app:functionality>
<app:use>true</app:use>
</app:functionality>
<app:functionality>
<app:functionality>Location</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>BackgroundLocation</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>BluetoothPrinters</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>WiFiPrinters</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>Contacts</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>Calendars</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>PushNotifications</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>LocalNotifications</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>InAppPurchases</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>PersonalComputerFileExchange</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>Ads</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>NumberDialing</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>CallProcessing</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>CallLog</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>AutoSendSMS</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>ReceiveSMS</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>SMSLog</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>Camera</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>Microphone</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>MusicLibrary</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>PictureAndVideoLibraries</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>AudioPlaybackAndVibration</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>BackgroundAudioPlaybackAndVibration</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>InstallPackages</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>OSBackup</app:functionality>
<app:use>true</app:use>
</app:functionality>
<app:functionality>
<app:functionality>ApplicationUsageStatistics</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>BarcodeScanning</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>BackgroundAudioRecording</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>AllFilesAccess</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>Videoconferences</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>NFC</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>DocumentScanning</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>SpeechToText</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>Geofences</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>IncomingShareRequests</app:functionality>
<app:use>false</app:use>
</app:functionality>
<app:functionality>
<app:functionality>AllIncomingShareRequestsTypesProcessing</app:functionality>
<app:use>false</app:use>
</app:functionality>
</UsedMobileApplicationFunctionalities>
<StandaloneConfigurationRestrictionRoles />
<MobileApplicationURLs />
<AllowedIncomingShareRequestTypes />
<MainClientApplicationWindowMode>Normal</MainClientApplicationWindowMode>
<DefaultInterface />
<DefaultStyle />
<DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation />
<DetailedInformation />
<Copyright />
<VendorInformationAddress />
<ConfigurationInformationAddress />
<DataLockControlMode>Managed</DataLockControlMode>
<ObjectAutonumerationMode>NotAutoFree</ObjectAutonumerationMode>
<ModalityUseMode>DontUse</ModalityUseMode>
<SynchronousPlatformExtensionAndAddInCallUseMode>DontUse</SynchronousPlatformExtensionAndAddInCallUseMode>
<InterfaceCompatibilityMode>TaxiEnableVersion8_2</InterfaceCompatibilityMode>
<DatabaseTablespacesUseMode>DontUse</DatabaseTablespacesUseMode>
<CompatibilityMode>Version8_3_24</CompatibilityMode>
<DefaultConstantsForm />
</Properties>
<ChildObjects>
<Language>Русский</Language>
<DataProcessor>Диаграммы</DataProcessor>
</ChildObjects>
</Configuration>
</MetaDataObject>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
<DataProcessor uuid="UUID-001">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.Диаграммы" category="Object">
<xr:TypeId>UUID-002</xr:TypeId>
<xr:ValueId>UUID-003</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorManager.Диаграммы" category="Manager">
<xr:TypeId>UUID-004</xr:TypeId>
<xr:ValueId>UUID-005</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>Диаграммы</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Диаграммы</v8:content>
</v8:item>
</Synonym>
<Comment />
<UseStandardCommands>false</UseStandardCommands>
<DefaultForm>DataProcessor.Диаграммы.Form.Форма</DefaultForm>
<AuxiliaryForm />
<IncludeHelpInContents>false</IncludeHelpInContents>
<ExtendedPresentation />
<Explanation />
</Properties>
<ChildObjects>
<Form>Форма</Form>
</ChildObjects>
</DataProcessor>
</MetaDataObject>
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
<Form uuid="UUID-001">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>
@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Диаграммы</v8:content>
</v8:item>
</Title>
<AutoTitle>false</AutoTitle>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<ChartField name="Диаграмма" id="1">
<DataPath>Диаграмма</DataPath>
<TitleLocation>None</TitleLocation>
<ContextMenu name="ДиаграммаКонтекстноеМеню" id="2"/>
<ExtendedTooltip name="ДиаграммаРасширеннаяПодсказка" id="3"/>
</ChartField>
<GraphicalSchemaField name="Схема" id="4">
<DataPath>Схема</DataPath>
<TitleLocation>None</TitleLocation>
<Edit>false</Edit>
<ContextMenu name="СхемаКонтекстноеМеню" id="5"/>
<ExtendedTooltip name="СхемаРасширеннаяПодсказка" id="6"/>
</GraphicalSchemaField>
<PeriodField name="Период" id="7">
<DataPath>Период</DataPath>
<TitleLocation>None</TitleLocation>
<ContextMenu name="ПериодКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="ПериодРасширеннаяПодсказка" id="9"/>
</PeriodField>
<GanttChartField name="Ганта" id="10">
<DataPath>Ганта</DataPath>
<TitleLocation>None</TitleLocation>
<ContextMenu name="ГантаКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="ГантаРасширеннаяПодсказка" id="12"/>
<Table name="ТаблицаГанта" id="13">
<DataPath>Ганта</DataPath>
<Height>3</Height>
<ContextMenu name="ТаблицаГантаКонтекстноеМеню" id="14"/>
<AutoCommandBar name="ТаблицаГантаКоманднаяПанель" id="15"/>
<ExtendedTooltip name="ТаблицаГантаРасширеннаяПодсказка" id="16"/>
<SearchStringAddition name="ТаблицаГантаСтрокаПоиска" id="17">
<AdditionSource>
<Item>ТаблицаГанта</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ТаблицаГантаСтрокаПоискаКонтекстноеМеню" id="18"/>
<ExtendedTooltip name="ТаблицаГантаСтрокаПоискаРасширеннаяПодсказка" id="19"/>
</SearchStringAddition>
<ViewStatusAddition name="ТаблицаГантаСостояниеПросмотра" id="20">
<AdditionSource>
<Item>ТаблицаГанта</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ТаблицаГантаСостояниеПросмотраКонтекстноеМеню" id="21"/>
<ExtendedTooltip name="ТаблицаГантаСостояниеПросмотраРасширеннаяПодсказка" id="22"/>
</ViewStatusAddition>
<SearchControlAddition name="ТаблицаГантаУправлениеПоиском" id="23">
<AdditionSource>
<Item>ТаблицаГанта</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ТаблицаГантаУправлениеПоискомКонтекстноеМеню" id="24"/>
<ExtendedTooltip name="ТаблицаГантаУправлениеПоискомРасширеннаяПодсказка" id="25"/>
</SearchControlAddition>
</Table>
</GanttChartField>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="26">
<Type>
<v8:Type>cfg:DataProcessorObject.Диаграммы</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
<Attribute name="Диаграмма" id="27">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Диаграмма</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.2/data/chart">d5p1:Chart</v8:Type>
</Type>
</Attribute>
<Attribute name="Схема" id="28">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Схема</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.2/data/graphscheme">d5p1:FlowchartContextType</v8:Type>
</Type>
</Attribute>
<Attribute name="Период" id="29">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Период</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:StandardPeriod</v8:Type>
</Type>
</Attribute>
<Attribute name="Ганта" id="30">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ганта</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type xmlns:d5p1="http://v8.1c.ru/8.2/data/chart">d5p1:GanttChart</v8:Type>
</Type>
</Attribute>
</Attributes>
</Form>
@@ -0,0 +1,19 @@
#Область ОбработчикиСобытийФормы
#КонецОбласти
#Область ОбработчикиСобытийЭлементовФормы
#КонецОбласти
#Область ОбработчикиКомандФормы
#КонецОбласти
#Область ОбработчикиОповещений
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<ClientApplicationInterface xmlns="http://v8.1c.ru/8.2/managed-application/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="InterfaceLayouter">
<top>
<panel id="UUID-001">
<uuid>UUID-002</uuid>
</panel>
</top>
<left>
<panel id="UUID-003">
<uuid>UUID-004</uuid>
</panel>
</left>
<panelDef id="UUID-004"/>
<panelDef id="UUID-005"/>
<panelDef id="UUID-006"/>
<panelDef id="UUID-002"/>
<panelDef id="UUID-007"/>
</ClientApplicationInterface>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.17">
<Language uuid="UUID-001">
<Properties>
<Name>Русский</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Русский</v8:content>
</v8:item>
</Synonym>
<Comment/>
<LanguageCode>ru</LanguageCode>
</Properties>
</Language>
</MetaDataObject>