--- name: skd-edit description: Точечное редактирование схемы компоновки данных 1С (СКД). Используй когда нужно модифицировать существующую СКД — добавить поля, итоги, фильтры, параметры, изменить текст запроса argument-hint: -Operation -Value allowed-tools: - Bash - Read - Write - Glob --- # /skd-edit — точечное редактирование СКД (Template.xml) Атомарные операции модификации существующей схемы компоновки данных: добавление, удаление и модификация полей, итогов, фильтров, параметров, настроек варианта, управление структурой, замена запроса. ## Параметры и команда | Параметр | Описание | |----------|----------| | `TemplatePath` | Путь к Template.xml (или к папке — автодополнение Ext/Template.xml) | | `Operation` | Операция (см. список ниже) | | `Value` | Значение операции (shorthand-строка или текст запроса) | | `DataSet` | (опц.) Имя набора данных (умолч. первый) | | `Variant` | (опц.) Имя варианта настроек (умолч. первый) | | `NoSelection` | (опц.) Не добавлять поле в selection варианта | ```powershell powershell.exe -NoProfile -File .claude/skills/skd-edit/scripts/skd-edit.ps1 -TemplatePath "" -Operation -Value "" ``` ## Пакетный режим (batch) Несколько значений в одном вызове через разделитель `;;`: ```powershell -Operation add-field -Value "Цена: decimal(15,2) ;; Количество: decimal(15,3) ;; Сумма: decimal(15,2)" ``` Работает для всех операций кроме `set-query`, `set-structure` и `add-dataSet`. ## Операции ### add-field — добавить поле в набор данных Shorthand: `"Имя [Заголовок]: тип @роль #ограничение"`. ``` "Цена: decimal(15,2)" "Организация [Орг-ция]: CatalogRef.Организации @dimension" "Служебное: string #noFilter #noOrder" ``` Поле добавляется в набор и в selection варианта (если нет `-NoSelection`). Дубликат dataPath — предупреждение, пропуск. ### add-total — добавить итог ``` "Цена: Среднее" "Стоимость: Сумма(Кол * Цена)" ``` ### add-calculated-field — добавить вычисляемое поле Shorthand: `"Имя [Заголовок]: тип = Выражение"`. ``` "Маржа = Продажа - Закупка" "Наценка [Наценка, %]: decimal(10,2) = Маржа / Закупка * 100" ``` Также добавляется в selection варианта. ### add-parameter — добавить параметр ``` "Период: StandardPeriod = LastMonth @autoDates" "Организация: CatalogRef.Организации" ``` `@autoDates` генерирует `ДатаНачала` и `ДатаОкончания` автоматически. ### add-filter — добавить фильтр в вариант Shorthand: `"Поле оператор значение @флаги"`. Флаги: `@off`, `@user`, `@quickAccess`, `@normal`, `@inaccessible`. ``` "Номенклатура = _ @off @user" "Дата >= 2024-01-01T00:00:00" "Статус filled" ``` ### add-dataParameter — добавить параметр данных в вариант Shorthand: `"Имя [= значение] @флаги"`. ``` "Период = LastMonth @user" "Организация @off @user" ``` ### add-order — добавить сортировку Shorthand: `"Поле [desc]"`. По умолчанию asc. `Auto` — авто-элемент. ``` "Количество desc" "Auto" ``` ### add-selection — добавить элемент выборки ``` "Номенклатура" "Auto" ``` ### add-dataSetLink — добавить связь наборов данных Shorthand: `"Источник > Приёмник on ВырИсточника = ВырПриёмника [param Имя]"`. ``` "Набор1 > Набор2 on Поле1 = Поле2" "Набор1 > Набор2 on Поле1 = Поле2 [param Связь]" ``` ### add-dataSet — добавить набор данных Shorthand: `"Имя: ТЕКСТ_ЗАПРОСА"` или `"ТЕКСТ_ЗАПРОСА"` (авто-имя `НаборДанныхN`). ``` "Доп: ВЫБРАТЬ 1 КАК Тест" "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура" ``` `dataSource` берётся из первого существующего. Дубликат имени — предупреждение, пропуск. Не поддерживает пакетный режим (запрос может содержать `;;`). ### add-variant — добавить вариант настроек Shorthand: `"Имя [Представление]"`. Представление опционально, по умолчанию = имя. ``` "Детальный" "Детальный [Детальный отчёт]" ``` Создаёт вариант с Auto selection + detail group. Дубликат имени — предупреждение, пропуск. ### add-conditionalAppearance — добавить условное оформление Shorthand: `"Параметр = значение [when условие] [for Поле1, Поле2]"`. Блок `when` — синтаксис `add-filter` (Поле оператор значение). ``` "ЦветТекста = web:Red when Сумма < 0" "ЦветФона = web:LightGreen when Статус = Одобрен for Статус" "МинимальнаяШирина = 50 for Организация" "Формат = ЧДЦ=2 for Цена, Сумма" ``` Типы значений (автодетект): `web:*`/`style:*`/`win:*` → цвет, `true`/`false` → boolean, иначе строка. ### set-query — заменить текст запроса Не поддерживает пакетный режим. Value — полный текст запроса. ### set-outputParameter — установить параметр вывода ``` "Заголовок = Мой отчёт" "ВыводитьЗаголовок = true" ``` Если параметр уже существует — заменяет значение. ### set-structure — установить структуру варианта Shorthand: `"Поле1 > Поле2 > details"`. `details`/`детали` — детальные записи. Заменяет всю структуру. Не поддерживает пакетный режим. ``` "Организация > Номенклатура > details" "details" ``` ### modify-field — изменить существующее поле Тот же shorthand что и `add-field`. Находит по dataPath, объединяет свойства (непустые переопределяют), сохраняет позицию. ``` "Цена [Цена USD]: decimal(10,4) @dimension" ``` ### modify-filter — изменить существующий фильтр Тот же shorthand что и `add-filter`. Находит по полю, обновляет оператор/значение/флаги. ### modify-dataParameter — изменить параметр данных Тот же shorthand что и `add-dataParameter`. Находит по имени, обновляет значение/флаги. ### remove-* и clear-* | Операция | Value | Действие | |----------|-------|----------| | `remove-field` | dataPath | Удаляет поле из набора + из selection варианта | | `remove-total` | dataPath | Удаляет итог | | `remove-calculated-field` | dataPath | Удаляет вычисляемое поле + из selection | | `remove-parameter` | name | Удаляет параметр | | `remove-filter` | поле | Удаляет первый фильтр с указанным полем | | `clear-selection` | `*` | Очищает все элементы selection | | `clear-order` | `*` | Очищает все элементы order | | `clear-filter` | `*` | Очищает все элементы filter | ## Верификация ``` /skd-validate — валидация структуры после редактирования /skd-info — визуальная сводка ```