Skip to main content
skill CX Codex

epf-build — Claude Code skill: build EPF/ERF from XML

Builds a 1C external data processor into an EPF or ERF file from XML sources, checking modules before the build.

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 epf-build does

The skill runs a PowerShell script, epf-build.ps1, which drives the 1C platform and writes the finished processor file. Only one argument is required: the processor name, which is also the name of the root XML. Sources live in src by default, output goes to build.

Before building, the platform checks module syntax and form handlers. On an error no file is produced, and the output points to the source file with a line and column. What gets checked is set by -Checks: modules, handlers, unreferenced, empty-handlers, config, or off to skip checks. Module check contexts are ThinClient, Server, ExternalConnection, ThickClientOrdinaryApplication.

Connection details are optional. Leave them out and the script creates a temporary infobase, generates metadata stubs for reference types such as CatalogRef and DocumentRef, then deletes the base after the build. Code that calls configuration common modules needs an XML dump of that configuration for the check — by default configSrc of the base from .v8-project.json. Without the dump such code fails the check, so you build with -Checks off instead. Worth knowing before you wire this into a pipeline.

What it helps with

  • build an EPF or ERF from XML sources in one command
  • catch a module syntax error before the file is written
  • build a processor without a prepared 1C infobase
  • verify form handlers before shipping a processor
  • build against a server infobase with credentials

Example prompts for the agent

  • /epf-build MyProcessor
  • /epf-build MyProcessor src build
  • Build the MyProcessor processor from src into build

How to install epf-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 epf-build -a claude-code

3Manually: put the files in place

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

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

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

Questions about epf-build

How do I install epf-build in Claude?

Through the marketplace: run /plugin marketplace add Nikolay-Shirokov/cc-1c-skills, then /plugin install 1c-skills@cc-1c-skills. Without the plugin you can use npx skills add Nikolay-Shirokov/cc-1c-skills --skill epf-build -a claude-code.

What does epf-build do?

It builds a 1C external data processor into an EPF or ERF file from XML sources. The platform checks module syntax and form handlers before the build.

What is needed for the source check to pass?

If the code calls configuration common modules, you need an XML dump of that configuration: by default configSrc of the base from .v8-project.json, otherwise pass the directory via -ConfigSrc. Without the dump, build such a processor with -Checks off.

Source text

SKILL.md · MIT
---
name: epf-build
description: Собрать внешнюю обработку 1С (EPF/ERF) из XML-исходников. Используй когда пользователь просит собрать, скомпилировать обработку или получить EPF/ERF файл из исходников
argument-hint: <ProcessorName>
allowed-tools:
  - Bash
  - Read
  - Glob
  - Grep
---

# /epf-build — Сборка обработки

## Usage

```
/epf-build <ProcessorName> [SrcDir] [OutDir]
```

| Параметр      | Обязательный | По умолчанию | Описание                             |
|---------------|:------------:|--------------|--------------------------------------|
| ProcessorName | да           | —            | Имя обработки (имя корневого 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` нет или база не найдена — не указывай параметры подключения: скрипт автоматически создаст временную базу. Для EPF со ссылочными типами (CatalogRef, DocumentRef и т.д.) генерируются заглушки метаданных. Временная база удаляется после сборки.

Платформа — `v8path` найденной записи базы, иначе корневой `v8path`. Не задан ни там, ни там — `-V8Path` не передавай.
Если использованная база не зарегистрирована — после выполнения предложи добавить через `/db-list add`.

## Команда

```powershell
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-build.ps1" <параметры>
```

### Параметры скрипта

| Параметр | Обязательный | Описание |
|----------|:------------:|----------|
| `-V8Path <путь>` | нет | Каталог bin платформы, или полный путь к `1cv8.exe` / `ibcmd.exe` |
| `-InfoBasePath <путь>` | * | Файловая база |
| `-InfoBaseServer <сервер>` | * | Сервер 1С (для серверной базы) |
| `-InfoBaseRef <имя>` | * | Имя базы на сервере |
| `-UserName <имя>` | нет | Имя пользователя |
| `-Password <пароль>` | нет | Пароль |
| `-SourceFile <путь>` | да | Путь к корневому XML-файлу исходников |
| `-OutputFile <путь>` | да | Путь к выходному EPF/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}/scripts/epf-build.ps1" -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МояОбработка.xml" -OutputFile "build/МояОбработка.epf"

# Серверная база
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/epf-build.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МояОбработка.xml" -OutputFile "build/МояОбработка.epf"
```

© Nikolay Shirokov · MIT · Nikolay-Shirokov/cc-1c-skills

Similar skills

SKILL.md skills catalog →

From the same set14

cfe-init The skill lays out a 1C configuration extension: Configuration.xml, a language under Languages/, and a role if you want one. Useful when you need to patch or extend a vendor configuration without editing it. CX Codex 50installs cf-info Inspects a 1C configuration and reports its properties, contents, and object counts. Useful when you need a quick view of an exported Configuration.xml. CX Codex 49installs cfe-borrow This skill adopts objects from a 1C configuration into a CFE extension. Use it to work with an existing form, add attributes, or intercept a method. CX Codex 48installs template-remove Removes a template from a 1C object and drops its registration in the root XML. Handy when a template has to go from a report, data processor or catalog. CX Codex 47installs erf-init Generates the minimal XML source set for a 1C external report: a root metadata file and the report directory. Useful when you start a new report and don't want to build the skeleton by hand. CX Codex 46installs form-compile Compiles a 1C managed form into Form.xml from a JSON definition or straight from object metadata. Useful when you need a form from scratch or a standard one. CX Codex 45installs web-publish Writes default.vrd, edits httpd.conf and starts Apache so a 1C infobase opens in the browser. Running it again just refreshes the config. CX Codex 44installs db-update Applies changes from the main 1C configuration to the database configuration. Useful when loading XML or a Git branch and applying the update are separate steps. CX Codex 44installs

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