$npx -y skills add Arman-Kudaibergenov/1c-ai-development-kit --skill skd-editЭтот скилл MUST быть вызван когда нужно модифицировать существующую СКД: добавить поля, итоги, фильтры, параметры, изменить текст запроса. SHOULD также вызывать для инкрементальных изменений готовых отчётов. Do NOT использовать для создания СКД с нуля — используй skd-compile; для
| 1 | # /skd-edit — точечное редактирование СКД (Template.xml) |
| 2 | |
| 3 | Атомарные операции модификации существующей схемы компоновки данных: добавление, удаление и модификация полей, итогов, фильтров, параметров, настроек варианта, управление структурой, замена запроса. |
| 4 | |
| 5 | ## Параметры и команда |
| 6 | |
| 7 | | Параметр | Описание | |
| 8 | |----------|----------| |
| 9 | | `TemplatePath` | Путь к Template.xml (или к папке — автодополнение Ext/Template.xml) | |
| 10 | | `Operation` | Операция (см. список ниже) | |
| 11 | | `Value` | Значение операции (shorthand-строка или текст запроса) | |
| 12 | | `DataSet` | (опц.) Имя набора данных (умолч. первый) | |
| 13 | | `Variant` | (опц.) Имя варианта настроек (умолч. первый) | |
| 14 | | `NoSelection` | (опц.) Не добавлять поле в selection варианта | |
| 15 | |
| 16 | ```powershell |
| 17 | powershell.exe -NoProfile -File .claude/skills/skd-edit/scripts/skd-edit.ps1 -TemplatePath "<path>" -Operation <op> -Value "<value>" |
| 18 | ``` |
| 19 | |
| 20 | ## Пакетный режим (batch) |
| 21 | |
| 22 | Несколько значений в одном вызове через разделитель `;;`: |
| 23 | |
| 24 | ```powershell |
| 25 | -Operation add-field -Value "Цена: decimal(15,2) ;; Количество: decimal(15,3) ;; Сумма: decimal(15,2)" |
| 26 | ``` |
| 27 | |
| 28 | Работает для всех операций кроме `set-query`, `set-structure` и `add-dataSet`. |
| 29 | |
| 30 | ## Операции |
| 31 | |
| 32 | ### add-field — добавить поле в набор данных |
| 33 | |
| 34 | Shorthand: `"Имя [Заголовок]: тип @роль #ограничение"`. |
| 35 | |
| 36 | ``` |
| 37 | "Цена: decimal(15,2)" |
| 38 | "Организация [Орг-ция]: CatalogRef.Организации @dimension" |
| 39 | "Служебное: string #noFilter #noOrder" |
| 40 | ``` |
| 41 | |
| 42 | Поле добавляется в набор и в selection варианта (если нет `-NoSelection`). Дубликат dataPath — предупреждение, пропуск. |
| 43 | |
| 44 | ### add-total — добавить итог |
| 45 | |
| 46 | ``` |
| 47 | "Цена: Среднее" |
| 48 | "Стоимость: Сумма(Кол * Цена)" |
| 49 | ``` |
| 50 | |
| 51 | ### add-calculated-field — добавить вычисляемое поле |
| 52 | |
| 53 | Shorthand: `"Имя [Заголовок]: тип = Выражение"`. |
| 54 | |
| 55 | ``` |
| 56 | "Маржа = Продажа - Закупка" |
| 57 | "Наценка [Наценка, %]: decimal(10,2) = Маржа / Закупка * 100" |
| 58 | ``` |
| 59 | |
| 60 | Также добавляется в selection варианта. |
| 61 | |
| 62 | ### add-parameter — добавить параметр |
| 63 | |
| 64 | ``` |
| 65 | "Период: StandardPeriod = LastMonth @autoDates" |
| 66 | "Организация: CatalogRef.Организации" |
| 67 | ``` |
| 68 | |
| 69 | `@autoDates` генерирует `ДатаНачала` и `ДатаОкончания` автоматически. |
| 70 | |
| 71 | ### add-filter — добавить фильтр в вариант |
| 72 | |
| 73 | Shorthand: `"Поле оператор значение @флаги"`. Флаги: `@off`, `@user`, `@quickAccess`, `@normal`, `@inaccessible`. |
| 74 | |
| 75 | ``` |
| 76 | "Номенклатура = _ @off @user" |
| 77 | "Дата >= 2024-01-01T00:00:00" |
| 78 | "Статус filled" |
| 79 | ``` |
| 80 | |
| 81 | ### add-dataParameter — добавить параметр данных в вариант |
| 82 | |
| 83 | Shorthand: `"Имя [= значение] @флаги"`. |
| 84 | |
| 85 | ``` |
| 86 | "Период = LastMonth @user" |
| 87 | "Организация @off @user" |
| 88 | ``` |
| 89 | |
| 90 | ### add-order — добавить сортировку |
| 91 | |
| 92 | Shorthand: `"Поле [desc]"`. По умолчанию asc. `Auto` — авто-элемент. |
| 93 | |
| 94 | ``` |
| 95 | "Количество desc" |
| 96 | "Auto" |
| 97 | ``` |
| 98 | |
| 99 | ### add-selection — добавить элемент выборки |
| 100 | |
| 101 | ``` |
| 102 | "Номенклатура" |
| 103 | "Auto" |
| 104 | ``` |
| 105 | |
| 106 | ### add-dataSetLink — добавить связь наборов данных |
| 107 | |
| 108 | Shorthand: `"Источник > Приёмник on ВырИсточника = ВырПриёмника [param Имя]"`. |
| 109 | |
| 110 | ``` |
| 111 | "Набор1 > Набор2 on Поле1 = Поле2" |
| 112 | "Набор1 > Набор2 on Поле1 = Поле2 [param Связь]" |
| 113 | ``` |
| 114 | |
| 115 | ### add-dataSet — добавить набор данных |
| 116 | |
| 117 | Shorthand: `"Имя: ТЕКСТ_ЗАПРОСА"` или `"ТЕКСТ_ЗАПРОСА"` (авто-имя `НаборДанныхN`). |
| 118 | |
| 119 | ``` |
| 120 | "Доп: ВЫБРАТЬ 1 КАК Тест" |
| 121 | "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура" |
| 122 | ``` |
| 123 | |
| 124 | `dataSource` берётся из первого существующего. Дубликат имени — предупреждение, пропуск. Не поддерживает пакетный режим (запрос может содержать `;;`). |
| 125 | |
| 126 | ### add-variant — добавить вариант настроек |
| 127 | |
| 128 | Shorthand: `"Имя [Представление]"`. Представление опционально, по умолчанию = имя. |
| 129 | |
| 130 | ``` |
| 131 | "Детальный" |
| 132 | "Детальный [Детальный отчёт]" |
| 133 | ``` |
| 134 | |
| 135 | Создаёт вариант с Auto selection + detail group. Дубликат имени — предупреждение, пропуск. |
| 136 | |
| 137 | ### add-conditionalAppearance — добавить условное оформление |
| 138 | |
| 139 | Shorthand: `"Параметр = значение [when условие] [for Поле1, Поле2]"`. Блок `when` — синтаксис `add-filter` (Поле оператор значение). |
| 140 | |
| 141 | ``` |
| 142 | "ЦветТекста = web:Red when Сумма < 0" |
| 143 | "ЦветФона = web:LightGreen when Статус = Одобрен for Статус" |
| 144 | "МинимальнаяШирина = 50 for Организация" |
| 145 | "Формат = ЧДЦ=2 for Цена, Сумма" |
| 146 | ``` |
| 147 | |
| 148 | Типы значений (автодетект): `web:*`/`style:*`/`win:*` → цвет, `true`/`false` → boolean, иначе строка. |
| 149 | |
| 150 | ### set-query — заменить текст запроса |
| 151 | |
| 152 | Не поддерживает пакетный режим. Value — полный текст запроса. |
| 153 | |
| 154 | ### set-outputParameter — установить параметр вывода |
| 155 | |
| 156 | ``` |
| 157 | "Заголовок = Мой отчёт" |
| 158 | "ВыводитьЗаголовок = true" |
| 159 | ``` |
| 160 | |
| 161 | Если параметр уже существует — заменяет значение. |
| 162 | |
| 163 | ### set-structure — установить структуру варианта |
| 164 | |
| 165 | Shorthand: `"Поле1 > Поле2 > details"`. `details`/`детали` — детальные записи. Заменяет всю структуру. Не поддерживает пакетный режим. |
| 166 | |
| 167 | ``` |
| 168 | "Организация > Номенклатура > details" |
| 169 | "details" |