Files
cc-1c-skills/README.md
T
Nick Shirokov c2348b6b68 Add BSP skills for additional processors/reports registration
New skills for working with BSP (Standard Subsystems Library) mechanism:
- epf-bsp-init: adds СведенияОВнешнейОбработке() to object module
- epf-bsp-add-command: adds commands to existing BSP processor

Both skills use code templates in SKILL.md (no PowerShell scripts) —
Claude modifies BSL code directly via Read/Edit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 21:48:43 +03:00

121 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 1C EPF Skills for Claude Code
Набор [Claude Code Skills](https://docs.anthropic.com/en/docs/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-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 автоматически — только по явной команде пользователя.
## Быстрый старт
```
> /epf-init МояОбработка "Моя обработка"
> /epf-add-form МояОбработка Форма
> /epf-add-template МояОбработка Макет HTML
> /epf-build МояОбработка
```
### Обработка БСП (дополнительная печатная форма)
```
> /epf-init МояПечатнаяФорма "Моя печатная форма"
> /epf-bsp-init МояПечатнаяФорма печатная форма для Документ.СчетНаОплату
> /epf-add-template МояПечатнаяФорма СчетНаОплату SpreadsheetDocument
> /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 из этого каталога.
```
МойПроект/
├── .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-bsp-init/ # SKILL.md (шаблоны кода, без скриптов)
└── epf-bsp-add-command/ # SKILL.md (шаблоны кода, без скриптов)
docs/
├── 1c-xml-format-spec.md # Спецификация XML-формата выгрузки
└── build-spec.md # Спецификация команд сборки/разборки
```
## Спецификации
- [XML-формат выгрузки обработок](docs/1c-xml-format-spec.md) — полное описание структуры XML-файлов, namespace'ов, элементов форм
- [Сборка и разборка EPF](docs/build-spec.md) — команды `1cv8.exe`, параметры, коды возврата
## Технические детали
- Все 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