feat(skd-edit): add-drilldown operation for connecting DrillDown to DCS template resources

Adds DetailsAreaTemplateParameter + Расшифровка appearance binding
to all named templates for each specified resource. Comma-separated
value list, idempotent, nesting-aware template scan.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-04-08 20:36:50 +03:00
co-authored by Claude Opus 4.6
parent fdfe4ac2f4
commit 46e065adb9
6 changed files with 547 additions and 4 deletions
@@ -0,0 +1,9 @@
{
"name": "Добавление расшифровки ресурсов в шаблоны",
"setup": "fixture:drilldown-base",
"params": {
"templatePath": "Template.xml",
"operation": "add-drilldown",
"value": "Ресурс1, Ресурс2"
}
}
@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dataSource>
<name>Источник</name>
<dataSourceType>Local</dataSourceType>
</dataSource>
<dataSet xsi:type="DataSetQuery">
<name>Основной</name>
<field xsi:type="DataSetFieldField">
<dataPath>Ресурс1</dataPath>
<field>Ресурс1</field>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Ресурс2</dataPath>
<field>Ресурс2</field>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Счет</dataPath>
<field>Счет</field>
</field>
<dataSource>Источник</dataSource>
<query>ВЫБРАТЬ 1</query>
</dataSet>
<template>
<name>Макет1</name>
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
<dcsat:item xsi:type="dcsat:TableRow">
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заголовок</v8:content>
</v8:item>
</dcsat:value>
</dcsat:item>
</dcsat:tableCell>
</dcsat:item>
</template>
</template>
<template>
<name>Макет3</name>
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
<dcsat:item xsi:type="dcsat:TableRow">
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="dcscor:Parameter">Счет</dcsat:value>
</dcsat:item>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>Шрифт</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="dcscor:Parameter">Рес1</dcsat:value>
</dcsat:item>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>Шрифт</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="dcscor:Parameter">Рес2</dcsat:value>
</dcsat:item>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>Шрифт</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
</dcsat:item>
</template>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
<dcsat:name>Счет</dcsat:name>
<dcsat:expression>Представление(Счет)</dcsat:expression>
</parameter>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
<dcsat:name>Рес1</dcsat:name>
<dcsat:expression>Ресурс1</dcsat:expression>
</parameter>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
<dcsat:name>Рес2</dcsat:name>
<dcsat:expression>Ресурс2</dcsat:expression>
</parameter>
</template>
<settingsVariant>
<dcsset:name>Основной</dcsset:name>
<dcsset:settings />
</settingsVariant>
</dataCompositionSchema>
@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="utf-8"?>
<dataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dataSource>
<name>Источник</name>
<dataSourceType>Local</dataSourceType>
</dataSource>
<dataSet xsi:type="DataSetQuery">
<name>Основной</name>
<field xsi:type="DataSetFieldField">
<dataPath>Ресурс1</dataPath>
<field>Ресурс1</field>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Ресурс2</dataPath>
<field>Ресурс2</field>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>Счет</dataPath>
<field>Счет</field>
</field>
<dataSource>Источник</dataSource>
<query>ВЫБРАТЬ 1</query>
</dataSet>
<template>
<name>Макет1</name>
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
<dcsat:item xsi:type="dcsat:TableRow">
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Заголовок</v8:content>
</v8:item>
</dcsat:value>
</dcsat:item>
</dcsat:tableCell>
</dcsat:item>
</template>
</template>
<template>
<name>Макет3</name>
<template xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:AreaTemplate">
<dcsat:item xsi:type="dcsat:TableRow">
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="dcscor:Parameter">Счет</dcsat:value>
</dcsat:item>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>Шрифт</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="dcscor:Parameter">Рес1</dcsat:value>
</dcsat:item>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>Шрифт</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
</dcscor:item>
<dcscor:item>
<dcscor:parameter>Расшифровка</dcscor:parameter>
<dcscor:value xsi:type="dcscor:Parameter">Расшифровка_Ресурс1</dcscor:value>
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
<dcsat:tableCell>
<dcsat:item xsi:type="dcsat:Field">
<dcsat:value xsi:type="dcscor:Parameter">Рес2</dcsat:value>
</dcsat:item>
<dcsat:appearance>
<dcscor:item>
<dcscor:parameter>Шрифт</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Font" faceName="Arial" height="10" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100" />
</dcscor:item>
<dcscor:item>
<dcscor:parameter>Расшифровка</dcscor:parameter>
<dcscor:value xsi:type="dcscor:Parameter">Расшифровка_Ресурс2</dcscor:value>
</dcscor:item>
</dcsat:appearance>
</dcsat:tableCell>
</dcsat:item>
</template>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
<dcsat:name>Счет</dcsat:name>
<dcsat:expression>Представление(Счет)</dcsat:expression>
</parameter>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
<dcsat:name>Рес1</dcsat:name>
<dcsat:expression>Ресурс1</dcsat:expression>
</parameter>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:ExpressionAreaTemplateParameter">
<dcsat:name>Рес2</dcsat:name>
<dcsat:expression>Ресурс2</dcsat:expression>
</parameter>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:DetailsAreaTemplateParameter">
<dcsat:name>Расшифровка_Ресурс1</dcsat:name>
<dcsat:fieldExpression>
<dcsat:field>ИмяРесурса</dcsat:field>
<dcsat:expression>"Ресурс1"</dcsat:expression>
</dcsat:fieldExpression>
<dcsat:mainAction>DrillDown</dcsat:mainAction>
</parameter>
<parameter xmlns:dcsat="http://v8.1c.ru/8.1/data-composition-system/area-template" xsi:type="dcsat:DetailsAreaTemplateParameter">
<dcsat:name>Расшифровка_Ресурс2</dcsat:name>
<dcsat:fieldExpression>
<dcsat:field>ИмяРесурса</dcsat:field>
<dcsat:expression>"Ресурс2"</dcsat:expression>
</dcsat:fieldExpression>
<dcsat:mainAction>DrillDown</dcsat:mainAction>
</parameter>
</template>
<settingsVariant>
<dcsset:name>Основной</dcsset:name>
<dcsset:settings />
</settingsVariant>
</dataCompositionSchema>