From d02ca602a441e10522c015428521233bbfb5e1e7 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 14 Feb 2026 18:14:05 +0300 Subject: [PATCH] Update README and guides for renamed/new ERF skills Co-Authored-By: Claude Opus 4.6 --- README.md | 40 +++++++++++++++-------- docs/epf-guide.md | 81 +++++++++++++++++++++++++++++++++++++---------- docs/mxl-guide.md | 2 +- 3 files changed, 92 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 180611c4..ecfa4115 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > **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) | | Управляемые формы (Form) | 6 навыков `/form-*` | Создание, анализ, генерация, модификация, валидация управляемых форм | [Подробнее](docs/form-guide.md) | | Роли (Role) | 3 навыка `/role-*` | Анализ прав роли, создание из JSON DSL, валидация | [Подробнее](docs/role-guide.md) | | Схема компоновки (СКД) | 4 навыка `/skd-*` | Анализ, генерация из JSON DSL, точечное редактирование, валидация схем компоновки данных | [Подробнее](docs/skd-guide.md) | -| Метаданные конфигурации | `/meta-info` | Структура объекта метаданных 1С из XML-выгрузки конфигурации (23 типа) | — | +| Метаданные конфигурации | 4 навыка `/meta-*` | Создание, анализ, редактирование, валидация объектов метаданных (23 типа) | — | | Утилиты | `/img-grid` | Наложение сетки на изображение для определения пропорций колонок | — | ## Требования - **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-erf-spec.md) — отличия ERF от EPF, Properties, MainDataCompositionSchema - [Управляемая форма](docs/1c-form-spec.md) — Form.xml, элементы, команды, реквизиты - [Встроенная справка](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 DSL](docs/mxl-dsl-spec.md) — JSON-формат описания макета для `/mxl-compile` и `/mxl-decompile` - [Form DSL](docs/form-dsl-spec.md) — JSON-формат описания формы для `/form-compile` @@ -54,24 +57,27 @@ ``` .claude/skills/ # Навыки Claude Code ├── epf-init/ # Создание обработки -├── epf-add-form/ # Добавление формы -├── epf-add-template/ # Добавление макета -├── epf-add-help/ # Добавление справки -├── epf-remove-form/ # Удаление формы -├── epf-remove-template/ # Удаление макета +├── epf-add-form/ # Добавление формы к обработке ├── epf-build/ # Сборка EPF ├── epf-dump/ # Разборка EPF ├── epf-bsp-init/ # Регистрация БСП ├── 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-validate/ # Валидация макета ├── mxl-compile/ # Компиляция макета из JSON ├── mxl-decompile/ # Декомпиляция макета в JSON -├── form-add/ # Добавление формы к объекту конфигурации ├── form-info/ # Анализ структуры управляемой формы ├── form-compile/ # Компиляция формы из JSON ├── form-validate/ # Валидация формы -├── form-edit/ # Добавление элементов в форму +├── form-edit/ # Добавление элементов в форму ├── form-patterns/ # Справочник паттернов компоновки форм ├── role-info/ # Анализ прав роли ├── role-compile/ # Создание роли из JSON DSL @@ -81,20 +87,26 @@ ├── skd-edit/ # Точечное редактирование СКД (25 операций) ├── skd-validate/ # Валидация СКД ├── meta-info/ # Структура объекта метаданных +├── meta-compile/ # Создание объекта метаданных +├── meta-edit/ # Редактирование объекта метаданных +├── meta-validate/ # Валидация объекта метаданных └── img-grid/ # Сетка для анализа изображений docs/ -├── epf-guide.md # Гайд: внешние обработки +├── epf-guide.md # Гайд: внешние обработки и отчёты ├── mxl-guide.md # Гайд: табличный документ ├── form-guide.md # Гайд: управляемые формы ├── role-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-help-spec.md # Спецификация встроенной справки +├── 1c-config-objects-spec.md # Спецификация объектов конфигурации ├── build-spec.md # Спецификация сборки/разборки ├── 1c-spreadsheet-spec.md # Спецификация табличного документа ├── mxl-dsl-spec.md # Спецификация MXL DSL ├── form-dsl-spec.md # Спецификация Form DSL +├── meta-dsl-spec.md # Спецификация Meta DSL ├── 1c-role-spec.md # Спецификация ролей (Rights.xml) ├── 1c-dcs-spec.md # Спецификация СКД (DataCompositionSchema) ├── skd-dsl-spec.md # Спецификация SKD DSL diff --git a/docs/epf-guide.md b/docs/epf-guide.md index 2f6c91a8..853f5915 100644 --- a/docs/epf-guide.md +++ b/docs/epf-guide.md @@ -1,23 +1,42 @@ -# Внешние обработки (EPF) +# Внешние обработки и отчёты (EPF / ERF) -Навыки группы `/epf-*` позволяют создавать, модифицировать и собирать внешние обработки 1С:Предприятия 8.3 (`.epf`) из XML-исходников, не запоминая детали формата. +Навыки для создания, модификации и сборки внешних обработок (`.epf`) и внешних отчётов (`.erf`) 1С:Предприятия 8.3 из XML-исходников. -## Навыки +## Навыки обработок (EPF) | Навык | Параметры | Описание | |-------|-----------|----------| | `/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-add-form` | ` [Synonym]` | Добавить управляемую форму к обработке | | `/epf-build` | `` | Собрать EPF из XML (через 1cv8.exe) | | `/epf-dump` | `` | Разобрать EPF в XML (через 1cv8.exe) | | `/epf-bsp-init` | ` <Вид>` | Добавить регистрацию БСП (СведенияОВнешнейОбработке) | | `/epf-bsp-add-command` | ` <Идентификатор>` | Добавить команду в дополнительную обработку БСП | -Навыки удаления (`epf-remove-*`) не вызываются Claude автоматически — только по явной команде пользователя. +## Внешние отчёты (ERF) + +| Навык | Параметры | Описание | +|-------|-----------|----------| +| `/erf-init` | ` [Synonym] [--WithSKD]` | Создать новый отчёт (корневой XML + модуль объекта + опционально СКД) | +| `/erf-build` | `` | Собрать ERF из XML (через 1cv8.exe) | +| `/erf-dump` | `` | Разобрать ERF в XML (через 1cv8.exe) | + +Флаг `--WithSKD` создаёт макет `ОсновнаяСхемаКомпоновкиДанных` и привязывает его к `MainDataCompositionSchema`. + +## Универсальные навыки + +Работают с любыми объектами — обработками, отчётами, справочниками, документами и др. + +| Навык | Параметры | Описание | +|-------|-----------|----------| +| `/template-add` | ` ` | Добавить макет (HTML, Text, SpreadsheetDocument, BinaryData, DataCompositionSchema) | +| `/template-remove` | ` ` | Удалить макет | +| `/help-add` | `` | Добавить встроенную справку (Help.xml + HTML) | +| `/form-remove` | ` ` | Удалить форму | + +Для отчётов: при добавлении макета типа DataCompositionSchema автоматически заполняется `MainDataCompositionSchema` (если пуст). + +Навыки удаления (`template-remove`, `form-remove`) не вызываются Claude автоматически — только по явной команде пользователя. ## Сценарии использования @@ -43,13 +62,21 @@ Claude выполнит `/epf-init` и `/epf-add-form` с правильными 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-add-form МояОбработка Форма -> /epf-add-template МояОбработка Макет HTML -> /epf-add-help МояОбработка +> /template-add МояОбработка Макет HTML +> /help-add МояОбработка > /epf-build МояОбработка + +> /erf-init МойОтчёт --WithSKD +> /template-add МойОтчёт ДопМакет SpreadsheetDocument +> /erf-build МойОтчёт ``` ## Структура каталогов @@ -87,7 +118,7 @@ src/ └── ObjectModule.bsl # Модуль объекта ``` -После `/epf-add-form` и `/epf-add-template`: +После `/epf-add-form` и `/template-add`: ``` src/ @@ -109,6 +140,21 @@ src/ └── Template.html # Содержимое макета ``` +После `/erf-init МойОтчёт --WithSKD`: + +``` +src/ +├── МойОтчёт.xml # Корневой файл (ExternalReport) +└── МойОтчёт/ + ├── Ext/ + │ └── ObjectModule.bsl # Модуль объекта + └── Templates/ + ├── ОсновнаяСхемаКомпоновкиДанных.xml + └── ОсновнаяСхемаКомпоновкиДанных/ + └── Ext/ + └── Template.xml # Пустая СКД +``` + Первая добавленная форма автоматически становится основной (DefaultForm). Флаг `--main` нужен только для переназначения основной формы на другую. ## Технические детали @@ -116,13 +162,16 @@ src/ - Все XML-файлы создаются в **UTF-8 с BOM** (как в реальных выгрузках 1С) - PowerShell-скрипты используют `System.Xml.XmlDocument` для модификации корневого XML - 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 - Первая форма автоматически назначается основной (DefaultForm) - Навыки БСП (`epf-bsp-*`) не используют скрипты — Claude модифицирует код напрямую через Read/Edit +- Для отчётов: `/template-add` с типом DataCompositionSchema автоматически заполняет `MainDataCompositionSchema` ## Спецификации - [XML-формат выгрузки обработок](1c-xml-format-spec.md) — структура XML-файлов, namespace, элементы форм +- [XML-формат внешних отчётов](1c-erf-spec.md) — отличия ERF от EPF, Properties, MainDataCompositionSchema - [Встроенная справка](1c-help-spec.md) — Help.xml, HTML-страницы, кнопка справки на форме -- [Сборка и разборка EPF](build-spec.md) — команды `1cv8.exe`, параметры, коды возврата +- [Сборка и разборка EPF/ERF](build-spec.md) — команды `1cv8.exe`, параметры, коды возврата diff --git a/docs/mxl-guide.md b/docs/mxl-guide.md index a56df171..62c9b6a9 100644 --- a/docs/mxl-guide.md +++ b/docs/mxl-guide.md @@ -100,7 +100,7 @@ Claude вызовет `/mxl-validate`, который проверит инде Макет табличного документа — часть обработки. Типичный сценарий создания печатной формы: 1. `/epf-init` — создать обработку -2. `/epf-add-template` — добавить макет SpreadsheetDocument (с именем `ПФ_MXL_...`) +2. `/template-add` — добавить макет SpreadsheetDocument (с именем `ПФ_MXL_...`) 3. `/mxl-compile` — заполнить макет содержимым из JSON-определения 4. `/epf-bsp-init` — добавить регистрацию БСП с видом ПечатнаяФорма 5. `/epf-bsp-add-command` — добавить команду печати