mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-13 22:35:16 +03:00
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:
+14
-1
@@ -761,15 +761,28 @@ flags/layout/оформление/companions/события общий), плю
|
||||
| `formattedDoc` | FormattedDocumentField | `fd:FormattedDocument` | `editMode` |
|
||||
| `progressBar` | ProgressBarField | число | `showPercent`, `minValue`/`maxValue` (без `xsi:type`, ≠ типизированных у `input`) |
|
||||
| `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
|
||||
{ "spreadsheet": "ТаблицаОтчета", "path": "ТаблицаОтчета", "titleLocation": "none", "readOnly": true, "output": "Disable", "protection": true }
|
||||
{ "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.
|
||||
|
||||
> **Ограничение — design-time конфигурация диаграмм/планировщика.** Реквизит chart-типа может нести
|
||||
> `<Settings xsi:type="d4p1:GanttChart"/"pl:Planner"/…>` — встроенный конфиг диаграммы (серии/оси/цвета/планировщик).
|
||||
> Planner несёт Settings ВСЕГДА (даже дефолтный), Chart/Gantt — при design-time настройке. Этот блок пока НЕ
|
||||
> воспроизводится → декомпилятор делает честный fail-ring3 (не теряет молча). Поля без Settings (диаграмма,
|
||||
> заполняемая в коде; график-схема; период) роундтрипятся полностью.
|
||||
|
||||
#### autoCmdBar — командная панель формы
|
||||
|
||||
Командная панель самой формы (`<AutoCommandBar id="-1">`). Задаётся как элемент в `elements`; компилятор автоматически вынимает его из дерева. Нужен только если в панель помещаются **явные** кнопки/группы или меняется выравнивание/автозаполнение — иначе панель формируется автоматически.
|
||||
|
||||
Reference in New Issue
Block a user