framework/skills/tool-usage/platform-data/xml-generation/skd-edit/SKILL.md
Use for атомарного изменения существующей Schema.xml СКД: добавить/удалить поля, итоги, параметры, переписать запрос набора данных, изменить структуру варианта. Helps точечно дорабатывать СКД без полной перекомпиляции через xml-gen skd edit.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework skd-editInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| Триггер | Действие |
|---------|----------|
| Создать новую СКД с нуля | xml-gen skd compile → skd-dsl |
| Добавить поле/итог/параметр в существующую Schema.xml | xml-gen skd edit ... add-field/add-total/add-parameter |
| Изменить роль поля (баланс, измерение, период) | set-field-role |
| Полностью переписать запрос набора данных | set-query |
| Точечно поправить кусок текста запроса | patch-query @once |
| Переименовать/переставить параметры | rename-parameter, reorder-parameters |
| Изменить поля группировки структуры без потери Selection/CA | modify-structure с @name= |
| Снести всё условное оформление варианта | clear-conditionalAppearance |
xml-gen skd edit <SchemaPath> <operation> "<value>" [--dataSet <name>] [--variant <name>] [--no-selection]
| Параметр | Описание |
|----------|----------|
| SchemaPath | Путь к Template.xml / Schema.xml. Папка достраивается до Ext/Template.xml. |
| --dataSet | Имя целевого набора. По умолчанию — первый. |
| --variant | Имя варианта настроек. По умолчанию — первый. |
| --no-selection | Для add-field — не добавлять поле в selection варианта. |
| Группа | Shorthand | Reference |
|--------|-----------|-----------|
| add-field, modify-field, remove-field | "Имя [Заголовок]: тип @роль #ограничение" | fields.md |
| set-field-role | "dataPath [@флаги] [kv=значение]" | fields.md |
| add-parameter, modify-parameter, remove-parameter | "Имя [Заголовок]: тип = значение [@флаги]" | parameters.md |
| rename-parameter | "СтароеИмя => НовоеИмя" | parameters.md |
| reorder-parameters | "Имя1, Имя2, Имя3" | parameters.md |
| add-total, remove-total | "<dataPath>: <выражение>" / "<dataPath>" | totals.md |
| modify-structure | "Поле1, Поле2 @name=ИмяГруппы" | structure.md |
| set-query | текст запроса или "@path/query.sql" | query.md |
| patch-query | "старое => новое [@once]" | query.md |
| clear-conditionalAppearance | "*" | (ниже) |
Несколько значений через разделитель ;;:
xml-gen skd edit Schema.xml add-field "Цена: decimal(15,2) ;; Количество: decimal(15,3)"
Не поддерживают batch: set-query, patch-query без @once, modify-structure. Запрос может содержать ;; буквально — поэтому set-query всегда одиночный.
xml-gen skd edit Schema.xml clear-conditionalAppearance "*"
Удаляет все правила УО в указанном варианте. Значение всегда *. Идемпотентна.
set-field-role, @hidden/@always, clear-*, remove-* — повторный вызов не меняет файл. remove-*: отсутствие цели = noop с warning, не error.add-*. Если объект с таким именем уже есть — warning + skip. Для обновления — используй modify-*.@once для patch-query. Если в тексте 0 или ≥2 совпадений — ошибка, файл не меняется. Без флага — заменяет все вхождения.availableValue= в modify-parameter — полная замена, не merge. Старые значения удаляются.set-query против patch-query. Полная замена против точечной правки. Большие изменения — через set-query (можно из файла @path). Локальный fix — patch-query @once.modify-structure требует @name=. Без явного имени операция падает. Имя задаётся при создании структуры в skd-dsl (set-structure "... @name=ДанныеОтчета").patch-query @once по умолчанию. Если правишь запрос и не уверен в уникальности подстроки — поставь @once.set-field-role и modify-field. modify-field НЕ трогает роль (она в <role>, свойства поля — в <field>).modify-structure убедись, что группировка имеет имя. Иначе — set-structure из skd-dsl (полная замена).@hidden/@always идемпотентны. Типовой паттерн для constant-параметров запроса.availableValue= в modify-parameter — destructive. Чтобы добавить одно значение — прочитай файл, перечисли все значения в новой строке.xml-gen validate --type skd Schema.xml # 1. валидировать
xml-gen skd edit Schema.xml add-field "Цена: decimal(15,2) ;; Количество: decimal(15,3)"
xml-gen skd edit Schema.xml add-total "Цена: Среднее ;; Количество: Сумма"
xml-gen skd edit Schema.xml set-field-role "СуммаНач @balance balanceGroupName=Сумма balanceType=OpeningBalance"
xml-gen skd edit Schema.xml patch-query "СубконтоДт1) В => СубконтоКт1) В @once"
xml-gen validate --type skd --level semantic Schema.xml # 3. финальная валидация
set-structure с @name=.validate, replace-text, §3.depends_on:
testing
MUST use BEFORE making a judgment about the cause of a conflict, a test failure, or an artifact dispute. Defines the end-to-end verification method L1→L6 and the classification of the first broken link.
development
MUST use AFTER a work cycle with ≥2 iterations (wrote → error → fixed → success). Provides the retrospective procedure and the format for recording practice/anti-patterns in references/learned-patterns.md or {project}/.context/learned-patterns.md.
tools
MUST use WHEN you are writing reusable knowledge into RLM (pattern / architectural decision / stable domain fact) OR reading it before a non-trivial task/solution in the domain. Provides the breakdown of native-push vs RLM-pull, tools for writing and reading RLM, H-MEM levels, and hygiene.
testing
MUST use WHEN the task is classified as simple (< 20 lines, 1 file, no new metadata objects, no architectural decisions). Provides a short cycle of 3 steps with a guard on the self path and mandatory verify.