docs(skd-dsl-spec): актуализация под фичи текущей сессии

Откатываем расширение SKILL.md (детальные формы расшифровки —
редкая необходимость) и переносим документацию в spec:

- selection folder placement (Horizontally/Vertically/...)
- groupBy field object-form: periodAdditionType +
  periodAdditionBegin/End (auto-detect xs:dateTime vs dcscor:Field)
- chart multi-series/multi-points (points/series как массив)
- template parameters drilldown форма A/B/C
- cell object-form { value, drilldown } override
- fieldTemplates секция
- choiceParameters values native bool/int/double/string
- filter valueType работает и для массива value
- dataParameters valueType=xs:string как nil-placeholder для use=false
This commit is contained in:
Nick Shirokov
2026-05-24 17:33:33 +03:00
parent c230142bf1
commit f34303f9ed
2 changed files with 73 additions and 43 deletions
+1 -34
View File
@@ -344,9 +344,8 @@ Raw XML (`"template": "<...>"`) остаётся как fallback. Детект:
### Расшифровка (drilldown) в параметрах шаблона
Ключ `drilldown` в параметре шаблона управляет генерацией `DetailsAreaTemplateParameter` и привязкой `Расшифровка` в appearance ячеек. Различает три формы по типу значения.
Ключ `drilldown` в параметре шаблона автоматически генерирует `DetailsAreaTemplateParameter` и привязку `Расшифровка` в appearance ячеек:
**Форма B (shortcut, строка) — расшифровка через `ИмяРесурса`/`DrillDown`:**
```json
"parameters": [
{ "name": "Сырье", "expression": "ПоступлениеСырья", "drilldown": "ПоступлениеСырья" }
@@ -355,38 +354,6 @@ Raw XML (`"template": "<...>"`) остаётся как fallback. Детект:
Генерирует: `ExpressionAreaTemplateParameter` (обычный) + `DetailsAreaTemplateParameter` с именем `Расшифровка_ПоступлениеСырья`, `fieldExpression` по полю `ИмяРесурса`, `mainAction=DrillDown`. Ячейки `{Сырье}` автоматически получают appearance `Расшифровка = Расшифровка_ПоступлениеСырья`.
**Форма C (объект) — произвольный `DetailsAreaTemplateParameter`:**
```json
"parameters": [
{ "name": "Номер", "expression": "МаршрутныйЛист.Номер" },
{ "name": "Дата", "expression": "МаршрутныйЛист.Дата" },
{ "name": "МаршрутныйЛист",
"drilldown": { "field": "МаршрутныйЛист", "expression": "МаршрутныйЛист", "action": "OpenValue" } }
]
```
Параметр без `expression` и с `drilldown` в виде объекта — это самостоятельный `DetailsAreaTemplateParameter` с именем `name`, `fieldExpression={field, expression}`, `mainAction=action` (по умолчанию `DrillDown`). Используется когда `mainAction=OpenValue` (открытие ссылки на data-параметр), либо когда расшифровка не привязана к `ИмяРесурса`.
**Override расшифровки на уровне ячейки:**
```json
"rows": [
[ { "value": "{Номер}", "drilldown": "МаршрутныйЛист" },
{ "value": "{Дата}", "drilldown": "МаршрутныйЛист" } ]
]
```
Object-форма ячейки `{ value, drilldown }`: appearance ячейки получит `Расшифровка → <drilldown>` (без префикса `Расшифровка_`). Используется когда несколько ячеек должны указывать на один и тот же параметр расшифровки, объявленный через форму C. Если в ячейке-строке `{X}` есть param X со shortcut form B — appearance подставляется автоматически, override не нужен.
### Привязка макета к полю — `fieldTemplates`
```json
"fieldTemplates": [
{ "field": "МаршрутныйЛист", "template": "Макет1" }
]
```
Эквивалент XML-секции `<fieldTemplate><field>X</field><template>Y</template></fieldTemplate>` — при выводе значения поля `X` используется именованный area-template `Y`.
### Привязки макетов к группировкам
```json