Update README and guides for renamed/new ERF skills

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-02-14 18:14:05 +03:00
parent f3b3f26af9
commit d02ca602a4
3 changed files with 92 additions and 31 deletions
+26 -14
View File
@@ -2,7 +2,7 @@
> **Work in progress** — проект в стадии активной разработки. Набор навыков и операций расширяется. > **Work in progress** — проект в стадии активной разработки. Набор навыков и операций расширяется.
Набор [Claude Code Skills](https://docs.anthropic.com/en/docs/claude-code/skills) для работы с артефактами 1С:Предприятия 8.3. Позволяет создавать и модифицировать обработки, макеты печатных форм и другие объекты из XML-исходников, не запоминая детали формата. Набор [Claude Code Skills](https://docs.anthropic.com/en/docs/claude-code/skills) для работы с артефактами 1С:Предприятия 8.3. Позволяет создавать и модифицировать обработки, отчёты, объекты конфигурации, макеты печатных форм и другие объекты из XML-исходников, не запоминая детали формата.
## Быстрый старт ## Быстрый старт
@@ -21,25 +21,28 @@
| Группа | Навыки | Описание | Гайд | | Группа | Навыки | Описание | Гайд |
|--------|--------|----------|------| |--------|--------|----------|------|
| Внешние обработки (EPF) | 10 навыков `/epf-*` | Создание, модификация, сборка обработок из XML-исходников | [Подробнее](docs/epf-guide.md) | | Внешние обработки (EPF) | 6 навыков `/epf-*` | Создание, сборка, разборка обработок из XML-исходников | [Подробнее](docs/epf-guide.md) |
| Внешние отчёты (ERF) | 3 навыка `/erf-*` | Создание, сборка, разборка внешних отчётов | [Подробнее](docs/epf-guide.md#внешние-отчёты-erf) |
| Универсальные операции | `/template-add`, `/template-remove`, `/help-add`, `/form-remove` | Добавление/удаление макетов, форм, справки для любых объектов | [Подробнее](docs/epf-guide.md#универсальные-навыки) |
| Табличный документ (MXL) | 4 навыка `/mxl-*` | Анализ, создание, компиляция макетов печатных форм | [Подробнее](docs/mxl-guide.md) | | Табличный документ (MXL) | 4 навыка `/mxl-*` | Анализ, создание, компиляция макетов печатных форм | [Подробнее](docs/mxl-guide.md) |
| Управляемые формы (Form) | 6 навыков `/form-*` | Создание, анализ, генерация, модификация, валидация управляемых форм | [Подробнее](docs/form-guide.md) | | Управляемые формы (Form) | 6 навыков `/form-*` | Создание, анализ, генерация, модификация, валидация управляемых форм | [Подробнее](docs/form-guide.md) |
| Роли (Role) | 3 навыка `/role-*` | Анализ прав роли, создание из JSON DSL, валидация | [Подробнее](docs/role-guide.md) | | Роли (Role) | 3 навыка `/role-*` | Анализ прав роли, создание из JSON DSL, валидация | [Подробнее](docs/role-guide.md) |
| Схема компоновки (СКД) | 4 навыка `/skd-*` | Анализ, генерация из JSON DSL, точечное редактирование, валидация схем компоновки данных | [Подробнее](docs/skd-guide.md) | | Схема компоновки (СКД) | 4 навыка `/skd-*` | Анализ, генерация из JSON DSL, точечное редактирование, валидация схем компоновки данных | [Подробнее](docs/skd-guide.md) |
| Метаданные конфигурации | `/meta-info` | Структура объекта метаданных 1С из XML-выгрузки конфигурации (23 типа) | — | | Метаданные конфигурации | 4 навыка `/meta-*` | Создание, анализ, редактирование, валидация объектов метаданных (23 типа) | — |
| Утилиты | `/img-grid` | Наложение сетки на изображение для определения пропорций колонок | — | | Утилиты | `/img-grid` | Наложение сетки на изображение для определения пропорций колонок | — |
## Требования ## Требования
- **Windows** с PowerShell 5.1+ (входит в Windows) - **Windows** с PowerShell 5.1+ (входит в Windows)
- **1С:Предприятие 8.3** — для сборки/разборки EPF (навыки генерации XML работают без платформы) - **1С:Предприятие 8.3** — для сборки/разборки EPF/ERF (навыки генерации XML работают без платформы)
## Спецификации ## Спецификации
- [XML-формат выгрузки обработок](docs/1c-xml-format-spec.md) — структура XML-файлов, namespace, элементы форм - [XML-формат выгрузки обработок](docs/1c-xml-format-spec.md) — структура XML-файлов, namespace, элементы форм
- [XML-формат внешних отчётов](docs/1c-erf-spec.md) — отличия ERF от EPF, Properties, MainDataCompositionSchema
- [Управляемая форма](docs/1c-form-spec.md) — Form.xml, элементы, команды, реквизиты - [Управляемая форма](docs/1c-form-spec.md) — Form.xml, элементы, команды, реквизиты
- [Встроенная справка](docs/1c-help-spec.md) — Help.xml, HTML-страницы, кнопка справки на форме - [Встроенная справка](docs/1c-help-spec.md) — Help.xml, HTML-страницы, кнопка справки на форме
- [Сборка и разборка EPF](docs/build-spec.md) — команды `1cv8.exe`, параметры, коды возврата - [Сборка и разборка EPF/ERF](docs/build-spec.md) — команды `1cv8.exe`, параметры, коды возврата
- [Табличный документ (MXL)](docs/1c-spreadsheet-spec.md) — XML-формат SpreadsheetDocument, совместимость версий - [Табличный документ (MXL)](docs/1c-spreadsheet-spec.md) — XML-формат SpreadsheetDocument, совместимость версий
- [MXL DSL](docs/mxl-dsl-spec.md) — JSON-формат описания макета для `/mxl-compile` и `/mxl-decompile` - [MXL DSL](docs/mxl-dsl-spec.md) — JSON-формат описания макета для `/mxl-compile` и `/mxl-decompile`
- [Form DSL](docs/form-dsl-spec.md) — JSON-формат описания формы для `/form-compile` - [Form DSL](docs/form-dsl-spec.md) — JSON-формат описания формы для `/form-compile`
@@ -54,24 +57,27 @@
``` ```
.claude/skills/ # Навыки Claude Code .claude/skills/ # Навыки Claude Code
├── epf-init/ # Создание обработки ├── epf-init/ # Создание обработки
├── epf-add-form/ # Добавление формы ├── epf-add-form/ # Добавление формы к обработке
├── epf-add-template/ # Добавление макета
├── epf-add-help/ # Добавление справки
├── epf-remove-form/ # Удаление формы
├── epf-remove-template/ # Удаление макета
├── epf-build/ # Сборка EPF ├── epf-build/ # Сборка EPF
├── epf-dump/ # Разборка EPF ├── epf-dump/ # Разборка EPF
├── epf-bsp-init/ # Регистрация БСП ├── epf-bsp-init/ # Регистрация БСП
├── epf-bsp-add-command/ # Команда БСП ├── epf-bsp-add-command/ # Команда БСП
├── erf-init/ # Создание внешнего отчёта
├── erf-build/ # Сборка ERF
├── erf-dump/ # Разборка ERF
├── template-add/ # Добавление макета (универсальный)
├── template-remove/ # Удаление макета (универсальный)
├── form-add/ # Добавление формы (универсальный)
├── form-remove/ # Удаление формы (универсальный)
├── help-add/ # Добавление справки (универсальный)
├── mxl-info/ # Анализ макета ├── mxl-info/ # Анализ макета
├── mxl-validate/ # Валидация макета ├── mxl-validate/ # Валидация макета
├── mxl-compile/ # Компиляция макета из JSON ├── mxl-compile/ # Компиляция макета из JSON
├── mxl-decompile/ # Декомпиляция макета в JSON ├── mxl-decompile/ # Декомпиляция макета в JSON
├── form-add/ # Добавление формы к объекту конфигурации
├── form-info/ # Анализ структуры управляемой формы ├── form-info/ # Анализ структуры управляемой формы
├── form-compile/ # Компиляция формы из JSON ├── form-compile/ # Компиляция формы из JSON
├── form-validate/ # Валидация формы ├── form-validate/ # Валидация формы
├── form-edit/ # Добавление элементов в форму ├── form-edit/ # Добавление элементов в форму
├── form-patterns/ # Справочник паттернов компоновки форм ├── form-patterns/ # Справочник паттернов компоновки форм
├── role-info/ # Анализ прав роли ├── role-info/ # Анализ прав роли
├── role-compile/ # Создание роли из JSON DSL ├── role-compile/ # Создание роли из JSON DSL
@@ -81,20 +87,26 @@
├── skd-edit/ # Точечное редактирование СКД (25 операций) ├── skd-edit/ # Точечное редактирование СКД (25 операций)
├── skd-validate/ # Валидация СКД ├── skd-validate/ # Валидация СКД
├── meta-info/ # Структура объекта метаданных ├── meta-info/ # Структура объекта метаданных
├── meta-compile/ # Создание объекта метаданных
├── meta-edit/ # Редактирование объекта метаданных
├── meta-validate/ # Валидация объекта метаданных
└── img-grid/ # Сетка для анализа изображений └── img-grid/ # Сетка для анализа изображений
docs/ docs/
├── epf-guide.md # Гайд: внешние обработки ├── epf-guide.md # Гайд: внешние обработки и отчёты
├── mxl-guide.md # Гайд: табличный документ ├── mxl-guide.md # Гайд: табличный документ
├── form-guide.md # Гайд: управляемые формы ├── form-guide.md # Гайд: управляемые формы
├── role-guide.md # Гайд: роли ├── role-guide.md # Гайд: роли
├── skd-guide.md # Гайд: схема компоновки данных ├── skd-guide.md # Гайд: схема компоновки данных
├── 1c-xml-format-spec.md # Спецификация XML-формата ├── 1c-xml-format-spec.md # Спецификация XML-формата (EPF)
├── 1c-erf-spec.md # Спецификация XML-формата (ERF)
├── 1c-form-spec.md # Спецификация управляемых форм ├── 1c-form-spec.md # Спецификация управляемых форм
├── 1c-help-spec.md # Спецификация встроенной справки ├── 1c-help-spec.md # Спецификация встроенной справки
├── 1c-config-objects-spec.md # Спецификация объектов конфигурации
├── build-spec.md # Спецификация сборки/разборки ├── build-spec.md # Спецификация сборки/разборки
├── 1c-spreadsheet-spec.md # Спецификация табличного документа ├── 1c-spreadsheet-spec.md # Спецификация табличного документа
├── mxl-dsl-spec.md # Спецификация MXL DSL ├── mxl-dsl-spec.md # Спецификация MXL DSL
├── form-dsl-spec.md # Спецификация Form DSL ├── form-dsl-spec.md # Спецификация Form DSL
├── meta-dsl-spec.md # Спецификация Meta DSL
├── 1c-role-spec.md # Спецификация ролей (Rights.xml) ├── 1c-role-spec.md # Спецификация ролей (Rights.xml)
├── 1c-dcs-spec.md # Спецификация СКД (DataCompositionSchema) ├── 1c-dcs-spec.md # Спецификация СКД (DataCompositionSchema)
├── skd-dsl-spec.md # Спецификация SKD DSL ├── skd-dsl-spec.md # Спецификация SKD DSL
+65 -16
View File
@@ -1,23 +1,42 @@
# Внешние обработки (EPF) # Внешние обработки и отчёты (EPF / ERF)
Навыки группы `/epf-*` позволяют создавать, модифицировать и собирать внешние обработки 1С:Предприятия 8.3 (`.epf`) из XML-исходников, не запоминая детали формата. Навыки для создания, модификации и сборки внешних обработок (`.epf`) и внешних отчётов (`.erf`) 1С:Предприятия 8.3 из XML-исходников.
## Навыки ## Навыки обработок (EPF)
| Навык | Параметры | Описание | | Навык | Параметры | Описание |
|-------|-----------|----------| |-------|-----------|----------|
| `/epf-init` | `<Name> [Synonym]` | Создать новую обработку (корневой XML + модуль объекта) | | `/epf-init` | `<Name> [Synonym]` | Создать новую обработку (корневой XML + модуль объекта) |
| `/epf-add-form` | `<ProcessorName> <FormName> [Synonym]` | Добавить управляемую форму | | `/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-build` | `<ProcessorName>` | Собрать EPF из XML (через 1cv8.exe) |
| `/epf-dump` | `<EpfFile>` | Разобрать EPF в XML (через 1cv8.exe) | | `/epf-dump` | `<EpfFile>` | Разобрать EPF в XML (через 1cv8.exe) |
| `/epf-bsp-init` | `<ProcessorName> <Вид>` | Добавить регистрацию БСП (СведенияОВнешнейОбработке) | | `/epf-bsp-init` | `<ProcessorName> <Вид>` | Добавить регистрацию БСП (СведенияОВнешнейОбработке) |
| `/epf-bsp-add-command` | `<ProcessorName> <Идентификатор>` | Добавить команду в дополнительную обработку БСП | | `/epf-bsp-add-command` | `<ProcessorName> <Идентификатор>` | Добавить команду в дополнительную обработку БСП |
Навыки удаления (`epf-remove-*`) не вызываются Claude автоматически — только по явной команде пользователя. ## Внешние отчёты (ERF)
| Навык | Параметры | Описание |
|-------|-----------|----------|
| `/erf-init` | `<ReportName> [Synonym] [--WithSKD]` | Создать новый отчёт (корневой XML + модуль объекта + опционально СКД) |
| `/erf-build` | `<ReportName>` | Собрать ERF из XML (через 1cv8.exe) |
| `/erf-dump` | `<ErfFile>` | Разобрать ERF в XML (через 1cv8.exe) |
Флаг `--WithSKD` создаёт макет `ОсновнаяСхемаКомпоновкиДанных` и привязывает его к `MainDataCompositionSchema`.
## Универсальные навыки
Работают с любыми объектами — обработками, отчётами, справочниками, документами и др.
| Навык | Параметры | Описание |
|-------|-----------|----------|
| `/template-add` | `<ObjectName> <TemplateName> <TemplateType>` | Добавить макет (HTML, Text, SpreadsheetDocument, BinaryData, DataCompositionSchema) |
| `/template-remove` | `<ObjectName> <TemplateName>` | Удалить макет |
| `/help-add` | `<ObjectName>` | Добавить встроенную справку (Help.xml + HTML) |
| `/form-remove` | `<ObjectName> <FormName>` | Удалить форму |
Для отчётов: при добавлении макета типа DataCompositionSchema автоматически заполняется `MainDataCompositionSchema` (если пуст).
Навыки удаления (`template-remove`, `form-remove`) не вызываются Claude автоматически — только по явной команде пользователя.
## Сценарии использования ## Сценарии использования
@@ -43,13 +62,21 @@ Claude выполнит `/epf-init` и `/epf-add-form` с правильными
Claude создаст обработку, добавит макет SpreadsheetDocument, вызовет `/epf-bsp-init` с видом ПечатнаяФорма и назначением, сгенерирует `СведенияОВнешнейОбработке()` и процедуру `Печать()`. Claude создаст обработку, добавит макет SpreadsheetDocument, вызовет `/epf-bsp-init` с видом ПечатнаяФорма и назначением, сгенерирует `СведенияОВнешнейОбработке()` и процедуру `Печать()`.
### Внешний отчёт с СКД
```
> Создай внешний отчёт ОстаткиНаСкладе с СКД
```
Claude выполнит `/erf-init ОстаткиНаСкладе --WithSKD`, затем предложит заполнить схему компоновки через `/skd-compile`.
### Доработка существующей обработки ### Доработка существующей обработки
``` ```
> Добавь справку с описанием как пользоваться обработкой > Добавь справку с описанием как пользоваться обработкой
``` ```
Claude вызовет `/epf-add-help` и предложит отредактировать HTML. Claude вызовет `/help-add` и предложит отредактировать HTML.
``` ```
> Добавь ещё одну команду печати — накладная > Добавь ещё одну команду печати — накладная
@@ -61,7 +88,7 @@ Claude вызовет `/epf-bsp-add-command`, добавит команду в `
> Собери > Собери
``` ```
Claude вызовет `/epf-build`. Claude вызовет `/epf-build` или `/erf-build` в зависимости от типа объекта.
### Примеры слеш-команд ### Примеры слеш-команд
@@ -70,9 +97,13 @@ Claude вызовет `/epf-build`.
``` ```
> /epf-init МояОбработка "Моя обработка" > /epf-init МояОбработка "Моя обработка"
> /epf-add-form МояОбработка Форма > /epf-add-form МояОбработка Форма
> /epf-add-template МояОбработка Макет HTML > /template-add МояОбработка Макет HTML
> /epf-add-help МояОбработка > /help-add МояОбработка
> /epf-build МояОбработка > /epf-build МояОбработка
> /erf-init МойОтчёт --WithSKD
> /template-add МойОтчёт ДопМакет SpreadsheetDocument
> /erf-build МойОтчёт
``` ```
## Структура каталогов ## Структура каталогов
@@ -87,7 +118,7 @@ src/
└── ObjectModule.bsl # Модуль объекта └── ObjectModule.bsl # Модуль объекта
``` ```
После `/epf-add-form` и `/epf-add-template`: После `/epf-add-form` и `/template-add`:
``` ```
src/ src/
@@ -109,6 +140,21 @@ src/
└── Template.html # Содержимое макета └── Template.html # Содержимое макета
``` ```
После `/erf-init МойОтчёт --WithSKD`:
```
src/
├── МойОтчёт.xml # Корневой файл (ExternalReport)
└── МойОтчёт/
├── Ext/
│ └── ObjectModule.bsl # Модуль объекта
└── Templates/
├── ОсновнаяСхемаКомпоновкиДанных.xml
└── ОсновнаяСхемаКомпоновкиДанных/
└── Ext/
└── Template.xml # Пустая СКД
```
Первая добавленная форма автоматически становится основной (DefaultForm). Флаг `--main` нужен только для переназначения основной формы на другую. Первая добавленная форма автоматически становится основной (DefaultForm). Флаг `--main` нужен только для переназначения основной формы на другую.
## Технические детали ## Технические детали
@@ -116,13 +162,16 @@ src/
- Все XML-файлы создаются в **UTF-8 с BOM** (как в реальных выгрузках 1С) - Все XML-файлы создаются в **UTF-8 с BOM** (как в реальных выгрузках 1С)
- PowerShell-скрипты используют `System.Xml.XmlDocument` для модификации корневого XML - PowerShell-скрипты используют `System.Xml.XmlDocument` для модификации корневого XML
- UUID генерируются через `[guid]::NewGuid()` - UUID генерируются через `[guid]::NewGuid()`
- ClassId обработки фиксирован: `c3831ec8-d8d5-4f93-8a22-f9bfae07327f` - ClassId обработки: `c3831ec8-d8d5-4f93-8a22-f9bfae07327f`
- ClassId отчёта: `e41aff26-25cf-4bb6-b6c1-3f478a75f374`
- Порядок элементов в `ChildObjects`: TabularSections → Forms → Templates - Порядок элементов в `ChildObjects`: TabularSections → Forms → Templates
- Первая форма автоматически назначается основной (DefaultForm) - Первая форма автоматически назначается основной (DefaultForm)
- Навыки БСП (`epf-bsp-*`) не используют скрипты — Claude модифицирует код напрямую через Read/Edit - Навыки БСП (`epf-bsp-*`) не используют скрипты — Claude модифицирует код напрямую через Read/Edit
- Для отчётов: `/template-add` с типом DataCompositionSchema автоматически заполняет `MainDataCompositionSchema`
## Спецификации ## Спецификации
- [XML-формат выгрузки обработок](1c-xml-format-spec.md) — структура XML-файлов, namespace, элементы форм - [XML-формат выгрузки обработок](1c-xml-format-spec.md) — структура XML-файлов, namespace, элементы форм
- [XML-формат внешних отчётов](1c-erf-spec.md) — отличия ERF от EPF, Properties, MainDataCompositionSchema
- [Встроенная справка](1c-help-spec.md) — Help.xml, HTML-страницы, кнопка справки на форме - [Встроенная справка](1c-help-spec.md) — Help.xml, HTML-страницы, кнопка справки на форме
- [Сборка и разборка EPF](build-spec.md) — команды `1cv8.exe`, параметры, коды возврата - [Сборка и разборка EPF/ERF](build-spec.md) — команды `1cv8.exe`, параметры, коды возврата
+1 -1
View File
@@ -100,7 +100,7 @@ Claude вызовет `/mxl-validate`, который проверит инде
Макет табличного документа — часть обработки. Типичный сценарий создания печатной формы: Макет табличного документа — часть обработки. Типичный сценарий создания печатной формы:
1. `/epf-init` — создать обработку 1. `/epf-init` — создать обработку
2. `/epf-add-template` — добавить макет SpreadsheetDocument (с именем `ПФ_MXL_...`) 2. `/template-add` — добавить макет SpreadsheetDocument (с именем `ПФ_MXL_...`)
3. `/mxl-compile` — заполнить макет содержимым из JSON-определения 3. `/mxl-compile` — заполнить макет содержимым из JSON-определения
4. `/epf-bsp-init` — добавить регистрацию БСП с видом ПечатнаяФорма 4. `/epf-bsp-init` — добавить регистрацию БСП с видом ПечатнаяФорма
5. `/epf-bsp-add-command` — добавить команду печати 5. `/epf-bsp-add-command` — добавить команду печати