framework_eng/skills/tool-usage/platform-data/xml-generation/skd-edit/SKILL.md
Use for atomic editing of an existing Schema.xml SKD: add/remove fields, totals, parameters, rewrite a data set query, or change the variant structure. Helps fine-tune SKD without full recompilation via 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.
| Trigger | Action |
|---------|----------|
| Create a new SKD from scratch | xml-gen skd compile → skd-dsl |
| Add a field/total/parameter to an existing Schema.xml | xml-gen skd edit ... add-field/add-total/add-parameter |
| Change a field role (balance, dimension, period) | set-field-role |
| Completely rewrite the data set query | set-query |
| Patch a specific piece of query text | patch-query @once |
| Rename/reorder parameters | rename-parameter, reorder-parameters |
| Change grouping fields in the structure without losing Selection/CA | modify-structure with @name= |
| Remove all conditional appearance from a variant | clear-conditionalAppearance |
xml-gen skd edit <SchemaPath> <operation> "<value>" [--dataSet <name>] [--variant <name>] [--no-selection]
| Parameter | Description |
|----------|----------|
| SchemaPath | Path to Template.xml / Schema.xml. The folder is extended to Ext/Template.xml. |
| --dataSet | Name of the target data set. By default — the first one. |
| --variant | Name of the settings variant. By default — the first one. |
| --no-selection | For add-field — do not add the field to the variant selection. |
| Group | Shorthand | Reference |
|--------|-----------|-----------|
| add-field, modify-field, remove-field | "Name [Caption]: type @role #constraint" | fields.md |
| set-field-role | "dataPath [@flags] [kv=value]" | fields.md |
| add-parameter, modify-parameter, remove-parameter | "Name [Caption]: type = value [@flags]" | parameters.md |
| rename-parameter | "OldName => NewName" | parameters.md |
| reorder-parameters | "Name1, Name2, Name3" | parameters.md |
| add-total, remove-total | "<dataPath>: <expression>" / "<dataPath>" | totals.md |
| modify-structure | "Field1, Field2 @name=GroupName" | structure.md |
| set-query | query text or "@path/query.sql" | query.md |
| patch-query | "old => new [@once]" | query.md |
| clear-conditionalAppearance | "*" | (below) |
Multiple values separated by ;;:
xml-gen skd edit Schema.xml add-field "Цена: decimal(15,2) ;; Количество: decimal(15,3)"
Batch is not supported by: set-query, patch-query without @once, modify-structure. A query may literally contain ;;, so set-query is always single.
xml-gen skd edit Schema.xml clear-conditionalAppearance "*"
Removes all CA rules in the specified variant. The value is always *. Idempotent.
set-field-role, @hidden/@always, clear-*, remove-* - a repeated call does not change the file. remove-*: absence of the target = noop with warning, not an error.add-*. If an object with that name already exists - warning + skip. To update it, use modify-*.@once for patch-query. If the text has 0 or ≥2 matches - error, the file does not change. Without the flag - replaces all occurrences.availableValue= in modify-parameter - full replacement, not merge. Old values are removed.set-query vs patch-query. Full replacement versus targeted edit. Large changes - via set-query (can be loaded from a file @path). A local fix - patch-query @once.modify-structure requires @name=. Without an explicit name the operation fails. The name is set when creating the structure in skd-dsl (set-structure "... @name=ДанныеОтчета").patch-query @once by default. If you are editing query text and are not sure the substring is unique, set @once.set-field-role and modify-field. modify-field does NOT touch the role (it is in <role>, while field properties are in <field>).modify-structure make sure the grouping has a name. Otherwise - set-structure from skd-dsl (full replacement).@hidden/@always are idempotent. Typical pattern for constant query parameters.availableValue= in modify-parameter - destructive. To add one value - read the file, enumerate all values in a new line.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 with @name=.validate, replace-text, §3.depends_on:
development
1C server maintenance webhooks: container restart and external component cache cleanup
development
Interactive DAP debugging of a single BSL procedure
tools
Rules for using RLM tools for project search and navigation in 1C/BSL
development
Creates web applications and routes on Winow (a web server on OneScript and Autumn). Use when working with a web server on OneScript, routing, or Winow controllers.