Files
cc-1c-skills/docs/epf-guide.md
T
Nick Shirokov 3819a5f7af Reorganize docs: README as hub + per-group guides
Split monolithic README into:
- README.md — concise hub with quick start and group links
- docs/epf-guide.md — EPF skills guide (content from old README)
- docs/mxl-guide.md — MXL skills guide (new scenarios and examples)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 21:36:44 +03:00

7.0 KiB
Raw Blame History

Внешние обработки (EPF)

Навыки группы /epf-* позволяют создавать, модифицировать и собирать внешние обработки 1С:Предприятия 8.3 (.epf) из XML-исходников, не запоминая детали формата.

Навыки

Навык Параметры Описание
/epf-init <Name> [Synonym] Создать новую обработку (корневой XML + модуль объекта)
/epf-add-form <ProcessorName> <FormName> [Synonym] Добавить управляемую форму
/epf-add-template <ProcessorName> <TemplateName> <TemplateType> Добавить макет (HTML, Text, SpreadsheetDocument, BinaryData)
/epf-add-help <ProcessorName> Добавить встроенную справку (Help.xml + HTML)
/epf-remove-form <ProcessorName> <FormName> Удалить форму
/epf-remove-template <ProcessorName> <TemplateName> Удалить макет
/epf-build <ProcessorName> Собрать EPF из XML (через 1cv8.exe)
/epf-dump <EpfFile> Разобрать EPF в XML (через 1cv8.exe)
/epf-bsp-init <ProcessorName> <Вид> Добавить регистрацию БСП (СведенияОВнешнейОбработке)
/epf-bsp-add-command <ProcessorName> <Идентификатор> Добавить команду в дополнительную обработку БСП

Навыки удаления (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

Спецификации