Files
cc-1c-skills/.claude/skills/skd-edit/SKILL.md
T
Nick ShirokovandClaude Opus 4.6 6404016afb feat(skd-edit): add-selection @group= targets named StructureItemGroup
- add-selection supports @group=Name to add selection items to a named grouping instead of variant level
- Finds StructureItemGroup by dcsset:name, falls back to variant level if not found
- Document @group= in SKILL.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 19:35:07 +03:00

12 KiB
Raw Blame History

name, description, argument-hint, allowed-tools
name description argument-hint allowed-tools
skd-edit Точечное редактирование схемы компоновки данных 1С (СКД). Используй когда нужно модифицировать существующую СКД — добавить поля, итоги, фильтры, параметры, изменить текст запроса <TemplatePath> -Operation <op> -Value <value>
Bash
Read
Write
Glob

/skd-edit — точечное редактирование СКД (Template.xml)

Атомарные операции модификации существующей схемы компоновки данных: добавление, удаление и модификация полей, итогов, фильтров, параметров, настроек варианта, управление структурой, замена запроса.

Параметры и команда

Параметр Описание
TemplatePath Путь к Template.xml (или к папке — автодополнение Ext/Template.xml)
Operation Операция (см. список ниже)
Value Значение операции (shorthand-строка или текст запроса)
DataSet (опц.) Имя набора данных (умолч. первый)
Variant (опц.) Имя варианта настроек (умолч. первый)
NoSelection (опц.) Не добавлять поле в selection варианта
powershell.exe -NoProfile -File .claude/skills/skd-edit/scripts/skd-edit.ps1 -TemplatePath "<path>" -Operation <op> -Value "<value>"

Пакетный режим (batch)

Несколько значений в одном вызове через разделитель ;;:

-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 генерирует ДатаНачала и ДатаОкончания автоматически.

modify-parameter — изменить существующий параметр

Находит параметр по имени, добавляет/обновляет свойства.

"ПорядокОкругления use=Always"
"ПорядокОкругления denyIncompleteValues=true"
"ПорядокОкругления availableValue=Перечисление.Округления.Окр1 presentation=руб."

availableValue= добавляет один элемент списка допустимых значений (можно несколько через ;;). Тип значения определяется автоматически (DesignTimeValue для ссылок).

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"
"Folder(Поступление: ПолеА, ПолеБ, ПолеВ)"

Folder(Название: поле1, поле2) — группа полей (SelectedItemFolder) с заголовком и placement=Auto.

@group=ИмяГруппировки — добавить в selection именованной группировки (вместо уровня варианта):

"Folder(Поступление: ПолеА, ПолеБ) @group=ДанныеОтчета"

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 Цена, Сумма"

Типы значений appearance (автодетект): web:*/style:*/win:* → Color, true/false → Boolean, параметр Формат/Текст/Заголовок → LocalStringType, иначе String.

Типы значений фильтра (автодетект): Перечисление.*/Справочник.*/ПланСчетов.*/Документ.* → DesignTimeValue, true/false → Boolean, дата → DateTime, числа → Decimal, иначе String.

OrGroup: несколько условий через or в when объединяются в FilterItemGroup/OrGroup:

"Формат = ЧЦ=15; ЧДЦ=0 when ПараметрыДанных.Округление = Перечисление.Округления.Окр1 or ПараметрыДанных.Округление = Перечисление.Округления.Окр1000"

Важно: для параметров данных используйте префикс ПараметрыДанных. в поле фильтра.

set-query — заменить текст запроса

Не поддерживает пакетный режим. Value — полный текст запроса или @path/to/file.sql (ссылка на внешний файл). Путь разрешается относительно Template.xml, затем CWD.

patch-query — точечная замена в тексте запроса

Shorthand: "старое => новое". Заменяет все вхождения подстроки. Поддерживает пакетный режим и -DataSet.

"СубконтоДт1) В => СубконтоКт1) В"
"ЛЕВОЕ СОЕДИНЕНИЕ => ВНУТРЕННЕЕ СОЕДИНЕНИЕ"

set-outputParameter — установить параметр вывода

"Заголовок = Мой отчёт"
"ВыводитьЗаголовок = true"

Если параметр уже существует — заменяет значение.

set-structure — установить структуру варианта

Shorthand: "Поле1 > Поле2 > details". details/детали — детальные записи. Заменяет всю структуру. Не поддерживает пакетный режим.

"Организация > Номенклатура > details"
"details"
"СчетМеждународногоУчета @name=ДанныеОтчета"

@name=Имя — присваивает имя группировке (<dcsset:name>). Используется для привязки шаблонов через groupName.

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>        — визуальная сводка