From 08688f5cab89d556eabbf71e8c1fd7563c568c90 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Mon, 6 Apr 2026 14:36:04 +0300 Subject: [PATCH] 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) --- docs/1c-dcs-spec.md | 50 ++++++++++++++++++++++++++++++++------ docs/skd-dsl-spec.md | 58 +++++++++++++++++++++++++++++++++++++++++--- docs/skd-guide.md | 10 +++++--- 3 files changed, 105 insertions(+), 13 deletions(-) diff --git a/docs/1c-dcs-spec.md b/docs/1c-dcs-spec.md index cb0ca398..1dbe89a2 100644 --- a/docs/1c-dcs-spec.md +++ b/docs/1c-dcs-spec.md @@ -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 + + Расшифровка_ПоступлениеСырья + + ИмяРесурса + "ПоступлениеСырья" + + DrillDown + +``` + +Привязка к ячейке — через appearance `Расшифровка`: + +```xml + + Расшифровка + Расшифровка_ПоступлениеСырья + +``` --- -## 10. Привязки макетов группировок (groupTemplate) +## 10. Привязки макетов группировок (groupTemplate, groupHeaderTemplate) -Связывают группировку с пользовательским макетом: +Связывают группировку с пользовательским макетом. Два XML-элемента: + +- `` — шаблон строки данных (`Header`) и итогов (`OverallHeader`) +- `` — шаблон заголовка группировки (шапка таблицы) ```xml - - ТипЦен + + ДанныеОтчета Header + + + Счет + Header + ``` | Элемент | Описание | |---|---| -| `groupField` | Имя поля группировки | -| `templateType` | Тип: `Header` (заголовок), `Footer` (подвал), `Overall` (общий) | +| `groupField` | Привязка к полю группировки | +| `groupName` | Привязка к именованной группировке в структуре варианта | +| `templateType` | `Header` (строки данных), `OverallHeader` (итоги) | | `template` | Ссылка на имя template из раздела 9 | --- diff --git a/docs/skd-dsl-spec.md b/docs/skd-dsl-spec.md index a3dcb43f..1d9f1467 100644 --- a/docs/skd-dsl-spec.md +++ b/docs/skd-dsl-spec.md @@ -297,7 +297,7 @@ XML-маппинг — по `` на каждый элемент: ### Shorthand ``` -": [= ] [@autoDates]" +": [= ] [@autoDates] [@valueList] [@hidden]" ``` Примеры: @@ -332,6 +332,25 @@ XML-маппинг — по `` на каждый элемент: "parameters": ["Период: StandardPeriod = LastMonth @autoDates"] ``` +### @valueList + +Флаг `@valueList` генерирует `true` — разрешает передавать список значений в параметр: + +```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-маппинг — по `` на каждый элемент: | `value` | Значение по умолчанию | | `expression` | Выражение для вычисления | | `availableAsField` | `false` — скрыть из полей | +| `valueListAllowed` | `true` — разрешить список значений | +| `hidden` | `true` — скрытый параметр (авто `availableAsField=false`, исключение из `dataParameters: auto`) | | `useRestriction` | `true` — скрыть от пользователя | | `use` | `"Always"`, `"Auto"` | @@ -399,6 +420,8 @@ XML-маппинг — по `` на каждый элемент: } ``` +Ключ `field` — алиас для `dataPath` (используется если `dataPath` не указан). + --- ## 8. Связи наборов (dataSetLinks) @@ -606,6 +629,14 @@ XML-маппинг — по `` на каждый элемент: ### dataParameters +#### Автогенерация + +```json +"dataParameters": "auto" +``` + +Генерирует записи `dataParameters` для всех не-hidden параметров с `userSettingID`. Скрытые параметры (`hidden: true` / `@hidden`) исключаются. + #### Shorthand-строка ```json @@ -760,7 +791,7 @@ XML-маппинг — по `` на каждый элемент: | `style` | Именованный пресет оформления (по умолчанию `"data"`) | | `widths` | Массив ширин колонок (применяется ко всем строкам) | | `minHeight` | Минимальная высота первой строки (для шапок) | -| `parameters` | Параметры макета — выражения для подстановки | +| `parameters` | Параметры макета — выражения для подстановки (поддерживают `drilldown`) | #### Синтаксис ячеек @@ -820,14 +851,35 @@ XML-маппинг — по `` на каждый элемент: Детект: если есть `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` | Привязка к полю группировки → `` | +| `groupName` | Привязка к именованной группировке в структуре варианта → `` | +| `templateType` | `Header` / `OverallHeader` → ``, `GroupHeader` → `` | +| `template` | Имя макета | + --- ## 11. Полный пример — минимальный diff --git a/docs/skd-guide.md b/docs/skd-guide.md index 65cb07e2..cda86ddb 100644 --- a/docs/skd-guide.md +++ b/docs/skd-guide.md @@ -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` → ``, `GroupHeader` → ``. + +Расшифровка (drilldown): ключ `drilldown` в параметре шаблона генерирует `DetailsAreaTemplateParameter` и привязку `Расшифровка` в appearance ячеек. + Встроенные стили: `header` (фон, центр, перенос), `data` (фон группы), `subheader` (без фона, центр), `total` (без фона). Все — Arial 10, рамки Solid 1px, цвета через стили платформы. Пользовательские стили — через `skd-styles.json` в директории проекта. ### Объектная форма