Nick Shirokov fdf661192d Add platform version compatibility section to spreadsheet spec
Documented cross-version comparison (8.3.20, 8.3.24, 8.3.27):
Template.xml is byte-identical, only MetaDataObject/Form version
attribute changes (2.17 → 2.20). Confirmed backward compatibility —
8.3.27 accepts version="2.17" files without issues.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 15:01:58 +03:00

1C EPF Skills for Claude Code

Набор Claude Code Skills для работы с исходниками внешних обработок 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 сам подберёт нужные навыки.

Сценарий 1: обработка с формой

Типичная обработка для манипуляций с данными — форма для пользователя, модуль объекта для логики.

> Создай обработку ЗагрузкаПрайса с формой

Claude выполнит /epf-init и /epf-add-form с правильными параметрами.

Сценарий 2: внешняя печатная форма БСП

Обработка с макетом табличного документа, подключаемая через механизм дополнительных обработок БСП к конкретному документу.

> Создай внешнюю печатную форму для документа Реализация. Макет — табличный документ.

Claude создаст обработку, добавит макет SpreadsheetDocument, вызовет /epf-bsp-init с видом ПечатнаяФорма и назначением, сгенерирует СведенияОВнешнейОбработке() и процедуру Печать().

Сценарий 3: доработка существующей обработки

> Добавь справку с описанием как пользоваться обработкой

Claude вызовет /epf-add-help и предложит отредактировать HTML.

> Добавь ещё одну команду печати — накладная

Claude вызовет /epf-bsp-add-command, добавит команду в СведенияОВнешнейОбработке() и блок обработки в процедуру Печать().

> Собери

Claude вызовет /epf-build.

Слеш-команды (например /epf-init МояОбработка) тоже работают — для тех случаев, когда хочется точного контроля.

Примеры слеш-команд

> /epf-init МояОбработка "Моя обработка"
> /epf-add-form МояОбработка Форма
> /epf-add-template МояОбработка Макет HTML
> /epf-add-help МояОбработка
> /epf-build МояОбработка

Первая добавленная форма автоматически становится основной (DefaultForm). Флаг --main нужен только для переназначения основной формы на другую.

После /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             # Содержимое макета

Подключение к проекту

Скопируйте каталог .claude/skills/ в корень вашего проекта. Навыки будут доступны при запуске Claude Code из этого каталога. Каталог docs/ копировать не нужно — все инструкции и шаблоны встроены в SKILL.md каждого навыка.

МойПроект/
├── .claude/skills/    ← скопировать из этого репозитория
├── src/               ← исходники обработки (создаются навыками)
└── ...

Требования

  • Windows с PowerShell 5.1+ (входит в Windows)
  • 1С:Предприятие 8.3 — для сборки/разборки EPF (навыки генерации XML работают без платформы)

Структура репозитория

.claude/skills/          # Навыки Claude Code
├── epf-init/            # SKILL.md + scripts/init.ps1
├── epf-add-form/        # SKILL.md + scripts/add-form.ps1
├── epf-add-template/    # SKILL.md + scripts/add-template.ps1
├── epf-remove-form/     # SKILL.md + scripts/remove-form.ps1
├── epf-remove-template/ # SKILL.md + scripts/remove-template.ps1
├── epf-build/           # SKILL.md (только документация)
├── epf-dump/            # SKILL.md (только документация)
├── epf-add-help/        # SKILL.md + scripts/add-help.ps1
├── epf-bsp-init/        # SKILL.md (шаблоны кода, без скриптов)
└── epf-bsp-add-command/ # SKILL.md (шаблоны кода, без скриптов)
docs/
├── 1c-xml-format-spec.md   # Спецификация XML-формата выгрузки
├── 1c-help-spec.md         # Спецификация встроенной справки
└── build-spec.md            # Спецификация команд сборки/разборки

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

Технические детали

  • Все XML-файлы создаются в UTF-8 с BOM (как в реальных выгрузках 1С)
  • PowerShell-скрипты используют System.Xml.XmlDocument для модификации корневого XML
  • UUID генерируются через [guid]::NewGuid()
  • ClassId обработки фиксирован: c3831ec8-d8d5-4f93-8a22-f9bfae07327f
  • Порядок элементов в ChildObjects: TabularSections → Forms → Templates
  • Первая форма автоматически назначается основной (DefaultForm)
  • BSP-навыки (epf-bsp-*) не используют скрипты — Claude модифицирует код напрямую через Read/Edit
S
Description
Languages
Python 41.6%
PowerShell 38.9%
JavaScript 18.6%
1C Enterprise 0.8%