Skip to main content
skill CX Codex

erf-build — Claude Code skill: build 1C ERF

Builds a 1C external report as an ERF file from XML sources. Use it when a report needs validation and compilation.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skills
Open on GitHub

What erf-build does

This skill builds a 1C external report from its root XML source. It uses src for source files and build for output unless you pass other directories. The build runs the shared epf-build.ps1 script through PowerShell and can work with either a file-based or server information base.

Before producing the ERF file, the platform checks module syntax and form handlers. You can select modules, handlers, unreferenced, empty-handlers, and config, or disable checks with -Checks off. Calls to shared configuration modules require an XML configuration export passed through -ConfigSrc or resolved from configSrc in .v8-project.json.

When no base is supplied, the script creates a temporary base with metadata stubs and removes it after the build. Code that calls shared modules will fail validation without the matching configuration export, so use -Checks off in that case. The skill is available for Claude Code and Codex.

What it helps with

  • build an ERF from XML sources
  • validate report module syntax
  • detect missing form handlers
  • check calls against shared 1C modules

Example prompts for the agent

  • Build the report MyReport from src and put the ERF file in build.
  • Compile src/MyReport.xml to build/MyReport.erf and keep the source checks enabled.
  • Build the report from src/MyReport.xml with validation disabled using -Checks off.

How to install erf-build

1Plugin marketplace

/plugin marketplace add Nikolay-Shirokov/cc-1c-skills
/plugin install 1c-skills@cc-1c-skills

This installs the whole 1c-skills plugin with all its skills

2Skills CLI (Vercel)

npx skills add Nikolay-Shirokov/cc-1c-skills --skill erf-build -a claude-code

3Manually: put the files in place

~/.claude/skills/erf-build/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/erf-build/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about erf-build

How do I install erf-build in Claude Code?

Add the marketplace with /plugin marketplace add Nikolay-Shirokov/cc-1c-skills, then install the plugin with /plugin install 1c-skills@cc-1c-skills.

What does erf-build do?

The skill turns a 1C external report XML source into an ERF file. It also checks module syntax and form handlers before the build.

What is required to validate shared 1C modules?

Pass a configuration XML export with -ConfigSrc, or use the configSrc value from .v8-project.json. If that export is unavailable, build with -Checks off.

Source text

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

Similar skills

SKILL.md skills catalog →

From the same set59

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor