feat(form-decompile,form-compile): GanttChart design-time Settings из ring-3 (Фаза 3 кластера Chart-Settings)

GanttChart Settings (<Settings xsi:type="d4p1:GanttChart">) = вложенный
<d4p1:chart> (полный Chart-блок) + gantt-специфика (points/series/timeScale/
drawEmpty/…) — ТОТ ЖЕ d4p1-неймспейс, что и Chart. Переиспользован генерик-движок
Chart как есть (рекурсивный захват/эмит).

Изменения: параметризован xsi:type Settings (выводится из типа реквизита:
d5p1:GanttChart → d4p1:GanttChart); elseif декомпилятора и guard точек/осей
расширены на d4p1:(Gantt)?Chart. Зеркало py (ctype-параметр).

Все 16 форм Ганта корпуса 8.3.24 — раундтрип БАЙТ-В-БАЙТ (0 diff, 0 ring3).
Кейс chart-gantt-settings (полная диаграмма Ганта из эталона) сертифицирован
загрузкой в 1С. Регресс 43/43 (ps1+py).

Кластер Chart-Settings закрыт (Planner + Chart + GanttChart). Остаток —
только редкие диаграммы с точками/осями (типизир. значения/d4p1-ML) → честный
fail-ring3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-10 17:42:54 +03:00
parent 1333e09ff8
commit dd226697bf
14 changed files with 1076 additions and 20 deletions
+3 -1
View File
@@ -858,7 +858,9 @@ Forgiving-синонимы типа: XML-имя (`SpreadSheetDocumentField`) и
} }
```
> **Ограничение Phase 2:** диаграммы с **точками/осями** (`realPointData`/`realDataItems`, заполненные `valuesAxis`/`pointsAxis`) несут типизированные значения (`xsi:type`), `xsi:nil` и ML с префиксом `d4p1:` — генерик-движок их не сохраняет → декомпилятор делает честный fail-ring3 на таких формах (редкий вариант). Частые дашборд-диаграммы (серии/легенда/оформление/шкалы) поддержаны полностью. `GanttChart` (`d4p1:GanttChart`) — отдельная фаза.
**Диаграмма Ганта** (`type: "d5p1:GanttChart"`, `<Settings xsi:type="d4p1:GanttChart">`) использует ТОТ ЖЕ ключ `chart` и генерик-движок: внутри несёт вложенный `chart` (полный Chart-блок) + gantt-специфику (`points`/`series`/`timeScale`/`drawEmpty`/…). Тип Settings выводится из типа реквизита автоматически. Все 16 форм Ганта корпуса 8.3.24 — раундтрип бит-в-бит.
> **Ограничение:** диаграммы (Chart/Gantt) с **точками/осями** (`realPointData`/`realDataItems`, заполненные `valuesAxis`/`pointsAxis`) несут типизированные значения (`xsi:type`), `xsi:nil` и ML с префиксом `d4p1:` — генерик-движок их не сохраняет → декомпилятор делает честный fail-ring3 на таких формах (редкий вариант). Частые дашборд-диаграммы и диаграммы Ганта (серии/легенда/оформление/шкалы) поддержаны полностью.
### planner — design-time конфигурация планировщика