# Внешние обработки (EPF) Навыки группы `/epf-*` позволяют создавать, модифицировать и собирать внешние обработки 1С:Предприятия 8.3 (`.epf`) из XML-исходников, не запоминая детали формата. ## Навыки | Навык | Параметры | Описание | |-------|-----------|----------| | `/epf-init` | ` [Synonym]` | Создать новую обработку (корневой XML + модуль объекта) | | `/epf-add-form` | ` [Synonym]` | Добавить управляемую форму | | `/epf-add-template` | ` ` | Добавить макет (HTML, Text, SpreadsheetDocument, BinaryData) | | `/epf-add-help` | `` | Добавить встроенную справку (Help.xml + HTML) | | `/epf-remove-form` | ` ` | Удалить форму | | `/epf-remove-template` | ` ` | Удалить макет | | `/epf-build` | `` | Собрать EPF из XML (через 1cv8.exe) | | `/epf-dump` | `` | Разобрать EPF в XML (через 1cv8.exe) | | `/epf-bsp-init` | ` <Вид>` | Добавить регистрацию БСП (СведенияОВнешнейОбработке) | | `/epf-bsp-add-command` | ` <Идентификатор>` | Добавить команду в дополнительную обработку БСП | Навыки удаления (`epf-remove-*`) не вызываются Claude автоматически — только по явной команде пользователя. ## Сценарии использования Не обязательно запоминать команды и параметры. Просто опишите задачу своими словами — Claude сам подберёт нужные навыки. ### Обработка с формой Типичная обработка для манипуляций с данными — форма для пользователя, модуль объекта для логики. ``` > Создай обработку ЗагрузкаПрайса с формой ``` Claude выполнит `/epf-init` и `/epf-add-form` с правильными параметрами. ### Внешняя печатная форма Обработка с макетом табличного документа, подключаемая через механизм дополнительных обработок БСП к конкретному документу. ``` > Создай внешнюю печатную форму для документа Реализация. Макет — табличный документ. ``` Claude создаст обработку, добавит макет SpreadsheetDocument, вызовет `/epf-bsp-init` с видом ПечатнаяФорма и назначением, сгенерирует `СведенияОВнешнейОбработке()` и процедуру `Печать()`. ### Доработка существующей обработки ``` > Добавь справку с описанием как пользоваться обработкой ``` Claude вызовет `/epf-add-help` и предложит отредактировать HTML. ``` > Добавь ещё одну команду печати — накладная ``` Claude вызовет `/epf-bsp-add-command`, добавит команду в `СведенияОВнешнейОбработке()` и блок обработки в процедуру `Печать()`. ``` > Собери ``` Claude вызовет `/epf-build`. ### Примеры слеш-команд Слеш-команды работают для случаев, когда хочется точного контроля: ``` > /epf-init МояОбработка "Моя обработка" > /epf-add-form МояОбработка Форма > /epf-add-template МояОбработка Макет HTML > /epf-add-help МояОбработка > /epf-build МояОбработка ``` ## Структура каталогов После `/epf-init` создаётся структура: ``` src/ ├── МояОбработка.xml # Корневой файл метаданных └── МояОбработка/ └── Ext/ └── ObjectModule.bsl # Модуль объекта ``` После `/epf-add-form` и `/epf-add-template`: ``` src/ ├── МояОбработка.xml └── МояОбработка/ ├── Ext/ │ └── ObjectModule.bsl ├── Forms/ │ ├── Форма.xml # Метаданные формы │ └── Форма/ │ └── Ext/ │ ├── Form.xml # Описание формы │ └── Form/ │ └── Module.bsl # Модуль формы └── Templates/ ├── Макет.xml # Метаданные макета └── Макет/ └── Ext/ └── Template.html # Содержимое макета ``` Первая добавленная форма автоматически становится основной (DefaultForm). Флаг `--main` нужен только для переназначения основной формы на другую. ## Технические детали - Все XML-файлы создаются в **UTF-8 с BOM** (как в реальных выгрузках 1С) - PowerShell-скрипты используют `System.Xml.XmlDocument` для модификации корневого XML - UUID генерируются через `[guid]::NewGuid()` - ClassId обработки фиксирован: `c3831ec8-d8d5-4f93-8a22-f9bfae07327f` - Порядок элементов в `ChildObjects`: TabularSections → Forms → Templates - Первая форма автоматически назначается основной (DefaultForm) - Навыки БСП (`epf-bsp-*`) не используют скрипты — Claude модифицирует код напрямую через Read/Edit ## Спецификации - [XML-формат выгрузки обработок](1c-xml-format-spec.md) — структура XML-файлов, namespace, элементы форм - [Встроенная справка](1c-help-spec.md) — Help.xml, HTML-страницы, кнопка справки на форме - [Сборка и разборка EPF](build-spec.md) — команды `1cv8.exe`, параметры, коды возврата