# /skd-info — полная справка по режимам Компактное описание — в [SKILL.md](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 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 (`&`→`&`, `>`→`>`). Для пакетных запросов — оглавление батчей: ``` === 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 — связи наборов данных ``` === 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 ` — структура конкретного варианта: ``` === 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