Files
cc-1c-skills/.claude/skills/skd-info/modes-reference.md
T
Nick Shirokov c306d18648 Add templates mode for DCS template binding analysis
- Map (without -Name): field bindings with non-trivial expression
  detection, group bindings organized by group name (groupTemplate,
  groupHeaderTemplate, groupFooterTemplate, fieldTemplate)
- Detail (-Name <group|field>): template content with rows, cells
  (static text and parameters), non-trivial expressions only
- Trivial filter: Field=Field and Field=Представление(Field) hidden
- Updated overview: shows binding type counts, templates hint in Next

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 19:56:56 +03:00

9.9 KiB
Raw Blame History

/skd-info — полная справка по режимам

Компактное описание — в SKILL.md.

overview (по умолчанию) — карта схемы

Компактная навигационная карта (10-25 строк). Показывает структуру и подсказывает следующие шаги:

=== DCS: ОсновнаяСхемаКомпоновкиДанных (362 lines) ===

Sources: ИсточникДанных1 (Local)

Datasets:
  [Query]  НоменклатураСЦенами   7 fields, query 40 lines
Calculated: 1
Resources: 1
Templates: 1 templates, 1 group bindings
Params: (none)

Variants:
  [1] НоменклатураИЦены  "Номенклатура и цены"  Table(detail)  3 filters
  [2] НоменклатураБезЦен  "Номенклатура без цен"  Group(detail)  2 filters

Next:
  -Mode query             query text
  -Mode fields            field tables by dataset
  -Mode calculated        calculated field expressions
  -Mode resources         resource aggregation
  -Mode variant -Name <N> variant structure (1..2)

Для DataSetUnion — дерево наборов + связи:

Datasets:
  [Union] РасчетНалогаНаИмущество  52 fields
    ├─ [Query] РасчетНалогаНаИмущество   51 fields, query 181 lines
    ├─ [Query] ДанныеПоКадастровой   29 fields, query 40 lines
    ├─ [Query] ДанныеПоСреднегодовой   34 fields, query 41 lines
Links: РасчетНалогаНаИмущество -> СостояниеОС (2 fields)

Параметры разделяются на видимые/скрытые:

Params: 18 (7 visible, 11 hidden): Период, Ответственный, ...

query — текст запроса

-Name <набор> — имя DataSet (обязателен если наборов > 1).

Извлекает raw-текст запроса с деэкранированием XML (&amp;&, &gt;>). Для пакетных запросов — оглавление батчей:

=== Query: ДанныеТ13 (334 lines, 13 batches) ===
  Batch 1: lines 1-8     → ПОМЕСТИТЬ Представления_Периоды
  Batch 2: lines 9-26    → ПОМЕСТИТЬ Представления_СотрудникиОрганизации
  ...
--- Batch 1 ---
ВЫБРАТЬ
  ДАТАВРЕМЯ(1, 1, 1) КАК Период
ПОМЕСТИТЬ Представления_Периоды
...

Фильтр по номеру батча: -Batch 3 покажет только 3-й пакет.

fields — поля наборов данных

Без -Name — карта: имена полей по наборам:

=== Fields map ===
СостояниеОС [Query] (3): Организация, ОсновноеСредство, ДатаСостояния
РасчетНалогаНаИмущество [Union] (52): ДоляСтоимостиЧислитель, ...
  РасчетНалогаНаИмущество [Query] (51): КадастроваяСтоимость, ...

С -Name <поле> — детали конкретного поля:

=== Field: ДатаСостояния "Дата ввода в эксплуатацию" ===

Dataset: СостояниеОС [Query]
Format: ДФ=dd.MM.yyyy

Показывает: dataset, title, type, role, useRestriction, format, presentationExpression.

=== Links (4) ===

РасчетНалогаНаИмущество -> СостояниеОС :
  Организация -> Организация
  ОсновноеСредство -> ОсновноеСредство

Группирует по парам наборов. Показывает поля связи и параметры.

calculated — вычисляемые поля

Без -Name — карта: имена и заголовки:

=== Calculated fields (23) ===
  ДоляСтоимости  "Доля стоимости"
  КоэффициентКи  "Коэффициент Ки"
  ...

С -Name <поле> — полное выражение:

=== Calculated: ДоляСтоимости ===

Expression:
  ВЫБОР КОГДА ... ТОГДА "1" ИНАЧЕ ... КОНЕЦ
Title: Доля стоимости
Restrict: condition

resources — ресурсы (итоги по группировкам)

Без -Name — карта: имена полей, * = есть формулы по группировкам:

=== Resources (51) ===
  НалоговаяБаза
  КоэффициентКи *
  ...
  * = has group-level formulas

С -Name <поле> — формулы агрегации:

=== Resource: ДатаСостояния ===

  [ОсновноеСредство] ЕстьNull(ДатаСостояния, "")

params — параметры схемы

=== Parameters (16) ===
  Name                       Type                   Default          Visible  Expression
  Период                     StandardPeriod         LastMonth        yes      -
  НачалоПериода              DateTime               -                hidden   &Период.ДатаНачала
  Организация                CatalogRef.Организации null             yes      -

variant — варианты отчёта

Без -Name — список вариантов:

=== Variants (2) ===
  [1] НоменклатураИЦены  "Номенклатура и цены"  Table(detail)  3 filters
  [2] НоменклатураБезЦен  "Номенклатура без цен"  Group(detail)  2 filters

С -Name <N|имя> — структура конкретного варианта:

=== Variant [1]: НоменклатураИЦены "Номенклатура и цены" ===

Structure:
  Table "Таблица"
  ├── Columns: [ТипЦен Items]
  │     Selection: Auto, Цена
  └── Rows: [Номенклатура Items]
        Selection: Номенклатура, УИД, Auto

Filter:
  [ ] Номенклатура InHierarchy  [user]
  [ ] ТипЦен Equal
  [x] ВАрхиве = false  "Исключая скрытые товары"

DataParams: КлючВарианта="НоменклатураИЦены"
Output: style=ЧерноБелый  groups=Separately  totalsH=None  totalsV=None

templates — привязки шаблонов вывода

Три типа привязок: fieldTemplate (к полю), groupTemplate (к группировке, Header/Footer), groupHeaderTemplate (заголовок группы).

Без -Name — карта привязок:

=== Templates (70 defined: 49 field, 37 group) ===

Field bindings (49): (all trivial)
  ОстаточнаяСтоимостьНа0101, ОстаточнаяСтоимостьНа0102, ...

Group bindings (37):
  ВидНалоговойБазы
    Header -> Макет3 (1 rows, 1 params)
  СреднегодоваяСтоимость2019
    Footer -> Макет50 (1 rows) spacer
    GroupHeader -> Макет40 (3 rows)

С -Name <группировка|поле> — содержимое шаблонов:

=== Templates: СреднегодоваяСтоимость2019 ===

Footer -> Макет50 [1 rows, 1 cells]:
  Row 1: (empty)

GroupHeader -> Макет40 [3 rows, 78 cells]:
  Row 1: "№ п/п" | "###Группировки1###" | "Инв. номер" | ...
  Row 2: "01.01" | "01.02" | ... | "31.12"
  Row 3: "1" | "2" | ... | "26"

Для field-привязок:

=== Field template: ОстаточнаяСтоимостьНа0101 -> Макет4 ===
[1 rows, 1 cells]
  Row 1: {ОстаточнаяСтоимостьНа0101}
  (all params trivial)

Тривиальность выражений: Поле = Поле и Поле = Представление(Поле) считаются тривиальными и НЕ выводятся. Показываются только нетривиальные — когда выражение содержит другое поле, вызов метода, пустую строку и т.д.

trace — трассировка поля от заголовка до запроса

Ищет поле по dataPath ИЛИ заголовку (включая подстроку) и показывает полную цепочку происхождения за один вызов:

=== Trace: КоэффициентКи "Коэффициент Ки" ===

Dataset: (schema-level only, not in dataset fields)

Calculated:
  ВЫБОР КОГДА ... ТОГДА 0 ИНАЧЕ ... КОНЕЦ
  Operands:
    КоличествоМесяцевИспользования -> РасчетНалогаНаИмущество [Query]
    КоличествоМесяцевВладения -> РасчетНалогаНаИмущество [Query]

Resource:
  [ОсновноеСредство] Сумма(КоэффициентКи)

Типичный сценарий: пользователь видит колонку "Коэффициент Ки" в отчёте и спрашивает как она считается. Один вызов trace показывает: формулу вычисления, откуда берутся операнды, как агрегируется в ресурс.

Что не выводится

  • XML namespace-декларации
  • Обёртки v8:item/v8:lang/v8:content (извлекаем чистый текст)
  • userSettingID (GUID-ы пользовательских настроек)
  • Дефолтные periodAdditionBegin/End = 0001-01-01
  • viewMode