erf-build — скилл для Claude Code: сборка ERF
Собирает внешний отчёт 1С в файл ERF из XML-исходников. Нужен, когда отчёт требуется проверить и скомпилировать.
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skillsЧто делает erf-build
Скилл принимает имя отчёта и собирает внешний отчёт 1С из корневого XML-файла. По умолчанию ищет исходники в src, а результат кладёт в build; каталоги можно передать отдельно. Сборка запускает общий скрипт epf-build.ps1 через PowerShell и поддерживает файловую или серверную информационную базу.
Перед созданием ERF платформа проверяет синтаксис модулей и обработчики форм. Можно выбрать проверки modules, handlers, unreferenced, empty-handlers, config или отключить их через -Checks off. Для обращений к общим модулям нужна выгрузка конфигурации в -ConfigSrc или configSrc из .v8-project.json.
Если база не задана, скрипт создаёт временную базу с заглушками метаданных и удаляет её после сборки. Без выгрузки конфигурации код с вызовами общих модулей проверку не пройдёт, поэтому его собирают с -Checks off. Доступны Claude Code и Codex.
Какие задачи решает
- собрать ERF из XML-исходников
- проверить синтаксис модулей отчёта
- найти обработчики форм до сборки
- подключить конфигурацию для проверки общих модулей
Примеры запросов агенту
- Собери отчёт
МойОтчётизsrcи положи ERF вbuild. - Собери
МойОтчётизsrc/МойОтчёт.xmlвbuild/МойОтчёт.erfс проверкой исходников. - Собери отчёт из
src/МойОтчёт.xmlбез проверок через-Checks off.
Как установить erf-build
1Через маркетплейс плагинов
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills/plugin install 1c-skills@cc-1c-skillsКоманда ставит плагин 1c-skills целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add Nikolay-Shirokov/cc-1c-skills --skill erf-build -a claude-code3Вручную: положить файлы
~/.claude/skills/erf-build/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/erf-build/
1Через Skills CLI (Vercel)
npx skills add Nikolay-Shirokov/cc-1c-skills --skill erf-build -a codex2Вручную: положить файлы
.agents/skills/erf-build/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/erf-build/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Nikolay-Shirokov/cc-1c-skills erf-build2Вручную: положить файлы
.github/skills/erf-build/SKILL.mdКомандой платформы
gemini skills install https://github.com/Nikolay-Shirokov/cc-1c-skills --path .claude/skills/erf-buildВручную: положить файлы
.devin/skills/erf-build/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о erf-build
Как установить erf-build в Claude Code?
Добавьте маркетплейс командой /plugin marketplace add Nikolay-Shirokov/cc-1c-skills, затем установите плагин командой /plugin install 1c-skills@cc-1c-skills.
Что делает erf-build?
Скилл собирает внешний отчёт 1С из XML-исходников в файл ERF. Перед сборкой он проверяет модули и обработчики форм.
Что нужно для проверки общих модулей 1С?
Передайте выгрузку конфигурации через -ConfigSrc или используйте configSrc из .v8-project.json. Если выгрузки нет, сборку выполняют с -Checks off.
Исходный текст
SKILL.md · MIT
---
name: erf-build
description: Собрать внешний отчёт 1С (ERF) из XML-исходников. Используй когда пользователь просит собрать, скомпилировать отчёт или получить ERF файл из исходников
argument-hint: <ReportName>
allowed-tools:
- Bash
- Read
- Glob
- Grep
---
# /erf-build — Сборка отчёта
## Usage
```
/erf-build <ReportName> [SrcDir] [OutDir]
```
| Параметр | Обязательный | По умолчанию | Описание |
|------------|:------------:|--------------|--------------------------------------|
| ReportName | да | — | Имя отчёта (имя корневого XML) |
| SrcDir | нет | `src` | Каталог исходников |
| OutDir | нет | `build` | Каталог для результата |
## Параметры подключения (опционально)
Предпочтительно использовать конкретную базу: сборка надёжнее, а `configSrc` базы из
`.v8-project.json` даёт проверке исходников общие модули конфигурации.
1. Прочитай `.v8-project.json` из корня проекта и разреши базу:
2. Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
3. Если указал базу по имени — ищи по id / alias / name в `.v8-project.json`
4. Если не указал — сопоставь текущую ветку Git с `databases[].branches`
5. Если ветка не совпала — используй `default`
6. Если `.v8-project.json` нет или база не найдена — не указывай параметры подключения: скрипт автоматически создаст временную базу. Для ERF со ссылочными типами (CatalogRef, DocumentRef и т.д.) генерируются заглушки метаданных. Временная база удаляется после сборки.
Платформа — `v8path` найденной записи базы, иначе корневой `v8path`. Не задан ни там, ни там — `-V8Path` не передавай.
Если использованная база не зарегистрирована — после выполнения предложи добавить через `/db-list add`.
## Команда
Используй общий скрипт из epf-build:
```powershell
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-build/scripts/epf-build.ps1" <параметры>
```
### Параметры скрипта
| Параметр | Обязательный | Описание |
|----------|:------------:|----------|
| `-V8Path <путь>` | нет | Каталог bin платформы, или полный путь к `1cv8.exe` / `ibcmd.exe` |
| `-InfoBasePath <путь>` | * | Файловая база |
| `-InfoBaseServer <сервер>` | * | Сервер 1С (для серверной базы) |
| `-InfoBaseRef <имя>` | * | Имя базы на сервере |
| `-UserName <имя>` | нет | Имя пользователя |
| `-Password <пароль>` | нет | Пароль |
| `-SourceFile <путь>` | да | Путь к корневому XML-файлу исходников |
| `-OutputFile <путь>` | да | Путь к выходному ERF-файлу |
| `-Checks <список>` | нет | Что проверить перед сборкой: `modules`, `handlers`, `unreferenced`, `empty-handlers`, `config`; `off` — не проверять. По умолчанию `modules,handlers` |
| `-Context <список>` | нет | Контексты проверки `modules`: `ThinClient`, `Server`, `ExternalConnection`, `ThickClientOrdinaryApplication`. По умолчанию `ThinClient,Server` |
| `-ConfigSrc <путь>` | нет | Каталог XML-выгрузки конфигурации, в которой будет работать отчёт. По умолчанию — `configSrc` указанной базы из `.v8-project.json` |
| `-AdditionalV8Arguments <список>` | нет | Доп. аргументы запуска `1cv8.exe` через запятую, напр. `/UseHwLicenses+` |
| `-AdditionalIbcmdArguments <список>` | нет | Доп. аргументы `ibcmd` через запятую, в форме `--ключ=значение` |
> `*` — опционально. Если не указано — автоматически создаётся временная база со заглушками метаданных
## Проверка перед сборкой
Перед сборкой платформа проверяет исходники: синтаксис модулей и наличие обработчиков форм.
Если есть ошибки, файл не создаётся, а в выводе — сообщение платформы со строкой и колонкой
и путь к файлу исходника. Собрать без проверки — `-Checks off`.
Если код обращается к общим модулям конфигурации (`ОбщегоНазначения`, `УправлениеПечатью` и т.п.),
проверке нужна выгрузка этой конфигурации. По умолчанию берётся `configSrc` указанной базы из
`.v8-project.json`; если его нет — передай каталог выгрузки в `-ConfigSrc`, а если выгрузки нет
совсем — собирай с `-Checks off`. Код, который вызывает методы глобальных общих модулей без
имени модуля, проверку не пройдёт и с выгрузкой — его тоже собирай с `-Checks off`.
## Примеры
```powershell
# Сборка отчёта (файловая база)
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-build/scripts/epf-build.ps1" -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МойОтчёт.xml" -OutputFile "build/МойОтчёт.erf"
# Серверная база
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/../epf-build/scripts/epf-build.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МойОтчёт.xml" -OutputFile "build/МойОтчёт.erf"
```
© Nikolay Shirokov · MIT · Nikolay-Shirokov/cc-1c-skills