docs(skd): update specs for hidden, valueListAllowed, drilldown, groupHeaderTemplate

- skd-dsl-spec: @valueList, @hidden, field alias, dataParameters auto, drilldown, groupName/GroupHeader
- skd-guide: new parameter flags, dataParameters auto, groupName, drilldown
- 1c-dcs-spec: valueListAllowed element, DetailsAreaTemplateParameter, groupHeaderTemplate

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-04-06 14:36:04 +03:00
parent 1bc5e8f07a
commit 08688f5cab
3 changed files with 105 additions and 13 deletions
+43 -7
View File
@@ -515,6 +515,7 @@ DataCompositionSchema
| `useRestriction` | нет | `true` — параметр скрыт от пользователя, `false` — доступен |
| `expression` | нет | Выражение для автоматического вычисления (например, `&Период.ДатаНачала`) |
| `availableAsField` | нет | `false` — параметр недоступен как поле в отчёте |
| `valueListAllowed` | нет | `true` — разрешает передавать список значений в параметр |
| `use` | нет | Режим: `Always` (всегда), `Auto` (автоматически) |
### Типы значений параметров
@@ -562,26 +563,61 @@ DataCompositionSchema
|---|---|
| `name` | Имя макета (ссылаются groupTemplate) |
| `template` (вложенный) | Описание строк/ячеек (`dcsat:AreaTemplate`) |
| `parameter` | Параметры макета (`dcsat:ExpressionAreaTemplateParameter`) — выражения для подстановки |
| `parameter` (Expression) | Параметры макета (`dcsat:ExpressionAreaTemplateParameter`) — выражения для подстановки |
| `parameter` (Details) | Параметры расшифровки (`dcsat:DetailsAreaTemplateParameter`) — для drilldown |
#### DetailsAreaTemplateParameter
Параметр расшифровки — активирует drilldown при клике на ячейку:
```xml
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template"
xsi:type="dcsat:DetailsAreaTemplateParameter">
<dcsat:name>Расшифровка_ПоступлениеСырья</dcsat:name>
<dcsat:fieldExpression>
<dcsat:field>ИмяРесурса</dcsat:field>
<dcsat:expression>"ПоступлениеСырья"</dcsat:expression>
</dcsat:fieldExpression>
<dcsat:mainAction>DrillDown</dcsat:mainAction>
</parameter>
```
Привязка к ячейке — через appearance `Расшифровка`:
```xml
<dcscor:item>
<dcscor:parameter>Расшифровка</dcscor:parameter>
<dcscor:value xsi:type="dcscor:Parameter">Расшифровка_ПоступлениеСырья</dcscor:value>
</dcscor:item>
```
---
## 10. Привязки макетов группировок (groupTemplate)
## 10. Привязки макетов группировок (groupTemplate, groupHeaderTemplate)
Связывают группировку с пользовательским макетом:
Связывают группировку с пользовательским макетом. Два XML-элемента:
- `<groupTemplate>` — шаблон строки данных (`Header`) и итогов (`OverallHeader`)
- `<groupHeaderTemplate>` — шаблон заголовка группировки (шапка таблицы)
```xml
<groupTemplate>
<groupField>ТипЦен</groupField>
<groupHeaderTemplate>
<groupName>ДанныеОтчета</groupName>
<templateType>Header</templateType>
<template>Макет1</template>
</groupHeaderTemplate>
<groupTemplate>
<groupField>Счет</groupField>
<templateType>Header</templateType>
<template>Макет2</template>
</groupTemplate>
```
| Элемент | Описание |
|---|---|
| `groupField` | Имя поля группировки |
| `templateType` | Тип: `Header` (заголовок), `Footer` (подвал), `Overall` (общий) |
| `groupField` | Привязка к полю группировки |
| `groupName` | Привязка к именованной группировке в структуре варианта |
| `templateType` | `Header` (строки данных), `OverallHeader` (итоги) |
| `template` | Ссылка на имя template из раздела 9 |
---
+55 -3
View File
@@ -297,7 +297,7 @@ XML-маппинг — по `<group>` на каждый элемент:
### Shorthand
```
"<name>: <type> [= <default>] [@autoDates]"
"<name>: <type> [= <default>] [@autoDates] [@valueList] [@hidden]"
```
Примеры:
@@ -332,6 +332,25 @@ XML-маппинг — по `<group>` на каждый элемент:
"parameters": ["Период: StandardPeriod = LastMonth @autoDates"]
```
### @valueList
Флаг `@valueList` генерирует `<valueListAllowed>true</valueListAllowed>` — разрешает передавать список значений в параметр:
```json
"parameters": ["Организации: CatalogRef.Организации @valueList"]
```
### @hidden
Флаг `@hidden` — скрытый параметр. Автоматически ставит `availableAsField=false` и исключает параметр из автогенерируемых `dataParameters` при `"dataParameters": "auto"`:
```json
"parameters": [
{ "name": "Счет43", "type": "ChartOfAccountsRef.Хозрасчетный", "value": "...", "hidden": true },
"СкрытыйПараметр: string = test @hidden"
]
```
### Объектная форма
```json
@@ -355,6 +374,8 @@ XML-маппинг — по `<group>` на каждый элемент:
| `value` | Значение по умолчанию |
| `expression` | Выражение для вычисления |
| `availableAsField` | `false` — скрыть из полей |
| `valueListAllowed` | `true` — разрешить список значений |
| `hidden` | `true` — скрытый параметр (авто `availableAsField=false`, исключение из `dataParameters: auto`) |
| `useRestriction` | `true` — скрыть от пользователя |
| `use` | `"Always"`, `"Auto"` |
@@ -399,6 +420,8 @@ XML-маппинг — по `<group>` на каждый элемент:
}
```
Ключ `field` — алиас для `dataPath` (используется если `dataPath` не указан).
---
## 8. Связи наборов (dataSetLinks)
@@ -606,6 +629,14 @@ XML-маппинг — по `<group>` на каждый элемент:
### dataParameters
#### Автогенерация
```json
"dataParameters": "auto"
```
Генерирует записи `dataParameters` для всех не-hidden параметров с `userSettingID`. Скрытые параметры (`hidden: true` / `@hidden`) исключаются.
#### Shorthand-строка
```json
@@ -760,7 +791,7 @@ XML-маппинг — по `<group>` на каждый элемент:
| `style` | Именованный пресет оформления (по умолчанию `"data"`) |
| `widths` | Массив ширин колонок (применяется ко всем строкам) |
| `minHeight` | Минимальная высота первой строки (для шапок) |
| `parameters` | Параметры макета — выражения для подстановки |
| `parameters` | Параметры макета — выражения для подстановки (поддерживают `drilldown`) |
#### Синтаксис ячеек
@@ -820,14 +851,35 @@ XML-маппинг — по `<group>` на каждый элемент:
Детект: если есть `rows` — используется компактный DSL, иначе — raw XML из `template`.
#### Расшифровка (drilldown) в параметрах шаблона
Ключ `drilldown` в параметре шаблона автоматически генерирует:
1. `DetailsAreaTemplateParameter` с именем `Расшифровка_<значение>`, `fieldExpression` по полю `ИмяРесурса`, `mainAction=DrillDown`
2. Привязку `Расшифровка` в appearance ячеек, ссылающихся на этот параметр через `{Имя}`
```json
"parameters": [
{ "name": "Сырье", "expression": "ПоступлениеСырья", "drilldown": "ПоступлениеСырья" }
]
```
### groupTemplates
```json
"groupTemplates": [
{ "groupField": "ТипЦен", "templateType": "Header", "template": "Макет1" }
{ "groupName": "ДанныеОтчета", "templateType": "GroupHeader", "template": "Макет1" },
{ "groupField": "Счет", "templateType": "Header", "template": "Макет2" },
{ "groupField": "Счет", "templateType": "OverallHeader", "template": "Макет3" }
]
```
| Ключ | Описание |
|------|----------|
| `groupField` | Привязка к полю группировки → `<groupField>` |
| `groupName` | Привязка к именованной группировке в структуре варианта → `<groupName>` |
| `templateType` | `Header` / `OverallHeader``<groupTemplate>`, `GroupHeader``<groupHeaderTemplate>` |
| `template` | Имя макета |
---
## 11. Полный пример — минимальный
+7 -3
View File
@@ -71,7 +71,7 @@
]
```
`@autoDates` автоматически генерирует параметры `ДатаНачала`/`ДатаОкончания` (заменяет 5 строк на 1).
Флаги: `@autoDates` (авто ДатаНачала/ДатаОкончания), `@valueList` (разрешить список значений), `@hidden` (скрыть параметр, исключить из `dataParameters: auto`).
### Вычисляемые поля — shorthand
@@ -96,7 +96,7 @@
```
- **filter shorthand**: `"Поле оператор значение @флаги"` — флаги `@off`, `@user`, `@quickAccess`, `@normal`, `@inaccessible`
- **dataParameters shorthand**: `"Имя = значение @флаги"`
- **dataParameters shorthand**: `"Имя = значение @флаги"`, или `"auto"` — автогенерация для всех не-hidden параметров
- **structure shorthand**: `"Поле1 > Поле2 > details"``>` разделяет уровни группировки
- **conditionalAppearance**: условное оформление с автоопределением типов значений (Color, Boolean, LocalStringType)
@@ -125,13 +125,17 @@
}
],
"groupTemplates": [
{ "groupField": "Счет", "templateType": "GroupHeader", "template": "Макет1" },
{ "groupName": "ДанныеОтчета", "templateType": "GroupHeader", "template": "Макет1" },
{ "groupField": "Счет", "templateType": "Header", "template": "Макет2" }
]
```
Синтаксис ячеек: `"текст"` — статика, `"{Имя}"` — параметр, `"|"` — объединение с ячейкой выше, `null` — пустая.
Привязки: `groupField` — к полю, `groupName` — к именованной группировке. `templateType`: `Header`/`OverallHeader``<groupTemplate>`, `GroupHeader``<groupHeaderTemplate>`.
Расшифровка (drilldown): ключ `drilldown` в параметре шаблона генерирует `DetailsAreaTemplateParameter` и привязку `Расшифровка` в appearance ячеек.
Встроенные стили: `header` (фон, центр, перенос), `data` (фон группы), `subheader` (без фона, центр), `total` (без фона). Все — Arial 10, рамки Solid 1px, цвета через стили платформы. Пользовательские стили — через `skd-styles.json` в директории проекта.
### Объектная форма