framework_eng/skills/tool-usage/platform-data/xml-generation/epf-full/SKILL.md
Use for creating external processors and reports (EPF/ERF), adding forms, templates, and help, and connecting to the BSP subsystem «Additional Reports and Processors». Helps go through the full init→add-form→template→BSP registration cycle via xml-gen.
npx skillsauth add steelmorgan/1c-agent-based-dev-framework epf-fullInstall 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.
Workflow: epf init → add-form → add-template → BSP registration (BSL). Steps 1–3 are done through the xml-gen CLI, BSP is direct editing of ObjectModule.bsl. For templates of configuration objects — see §4.
| Task | Command |
|--------|---------|
| Create a processor | xml-gen epf init --name <Name> output/ |
| Create an external report (ERF) | xml-gen epf init --type report --name <Name> output/ |
| Add a form | xml-gen epf add-form --epf <Name> --name <FormName> output/ |
| Add an MXL template to EPF | xml-gen epf add-template --epf <Name> --name <T> --type SpreadsheetDocument output/ |
| Add an attribute to the processor | xml-gen epf add-attribute --name <N> --type <T> output/<Name>.xml |
| Add a tabular section to the processor | xml-gen epf add-tabular-section --name <N> output/<Name>.xml |
| Register in BSP (printing) | Insert СведенияОВнешнейОбработке() into ObjectModule.bsl — see §5 |
| Add a BSP command | Insert the command block before Возврат — see §5 |
| Add a template to a Справочник/Документ | xml-gen template add --object <Type.Name> --name <T> --type <TemplateType> src/ |
| Remove a template | xml-gen template remove --object <Type.Name> --name <T> src/ |
| Add built-in help | xml-gen template add-help --object <Type.Name> src/ |
Key paths (Designer):
output/<Name>.xmloutput/<Name>/Ext/ObjectModule.bsloutput/<Name>/Forms/<FormName>/Ext/Form.xmloutput/<Name>/Templates/<TName>/Ext/Template.xmlreferences/epf-base.md
--epf, --name; output_dir is the last positional argument.epf add-attribute edits the root XML of the processor (<Name>.xml), not Form.xml. For a form, use form add-attribute.template add / remove / add-help — for Catalog, Document, Report, DataProcessor, InformationRegister, AccumulationRegister, and others.
references/templates.md
--object is required, format Type.Name (example: Document.ЗаказКлиента).--set-main-dcs.ПФ_ prefix to SpreadsheetDocument automatically.Template types for xml-gen epf add-template (4 supported):
| --type | Purpose |
|----------|-----------|
| SpreadsheetDocument | Print form (MXL) |
| HTMLDocument | HTML template |
| TextDocument | Text template |
| BinaryData | Binary data |
DataCompositionSchemainepf add-templateis NOT supported — the CLI responds withFailed to add template: Unknown template type: DataCompositionSchema. To add a DCS template to an EPF, use the universal commandxml-gen template add --object DataProcessor.<EpfName> --name <T> --type DataCompositionSchema <output_dir>(it knows all 5 types, includingDataCompositionSchema). See also section §3 in xml-generation/SKILL.md and references/universal-commands.md.
After adding an MXL template, fill it with contents through xml-gen mxl compile invoice.json <path to Template.xml>.
references/epf-bsp.md
ObjectModule.bsl, not a CLI command.СведенияОВнешнейОбработке() goes in the #Область ПрограммныйИнтерфейс region.Назначение.Добавить(...).НСтр("ru = '...'") for Представление (not МетаданныеОбработки.Представление()).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.