mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-29 16:11:01 +03:00
Allows using "@path/to/file.sql" instead of inline query text. Path resolved relative to definition file, then CWD; absolute paths supported. Closes #9 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
219 lines
9.2 KiB
Markdown
219 lines
9.2 KiB
Markdown
---
|
|
name: skd-edit
|
|
description: Точечное редактирование схемы компоновки данных 1С (СКД). Используй когда нужно модифицировать существующую СКД — добавить поля, итоги, фильтры, параметры, изменить текст запроса
|
|
argument-hint: <TemplatePath> -Operation <op> -Value <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 "<path>" -Operation <op> -Value "<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 КАК Тест"
|
|
"ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура"
|
|
"Продажи: @queries/sales.sql"
|
|
```
|
|
|
|
`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 — полный текст запроса или `@path/to/file.sql` (ссылка на внешний файл). Путь разрешается относительно Template.xml, затем CWD.
|
|
|
|
### 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 <TemplatePath> — валидация структуры после редактирования
|
|
/skd-info <TemplatePath> — визуальная сводка
|
|
```
|