# 1c Erf Build

> Собрать внешний отчет 1С (ERF) из XML-исходников. Используй когда пользователь просит собрать, скомпилировать отчет или получить ERF файл из исходников

- Skill: `desko77/1c-erf-build` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add desko77/1c-erf-build`
- Raw SKILL.md: https://api.skillmd.com/api/skills/desko77/1c-erf-build/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Desko77 (https://skillmd.com/u/desko77)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/desko77/1c-erf-build

---


# /erf-build - Сборка отчета

## Usage

```
/erf-build <ReportName> [SrcDir] [OutDir]
```

| Параметр   | Обязательный | По умолчанию | Описание                             |
|------------|:------------:|--------------|--------------------------------------|
| ReportName | да           | -            | Имя отчета (имя корневого XML)       |
| SrcDir     | нет          | `src`        | Каталог исходников                   |
| OutDir     | нет          | `build`      | Каталог для результата               |

## Параметры подключения (опционально)

Предпочтительно использовать конкретную базу - это надежнее и не требует создания временной базы.

1. Прочитай `.v8-project.json` из корня проекта. Возьми `v8path` и разреши базу:
2. Если пользователь указал параметры подключения (путь, сервер) - используй напрямую
3. Если указал базу по имени - ищи по id / alias / name в `.v8-project.json`
4. Если не указал - сопоставь текущую ветку Git с `databases[].branches`
5. Если ветка не совпала - используй `default`
6. Если `.v8-project.json` нет или база не найдена - не указывай параметры подключения: скрипт автоматически создаст временную базу. Для ERF со ссылочными типами (CatalogRef, DocumentRef и т.д.) генерируются заглушки метаданных. Временная база удаляется после сборки.

Если `v8path` не задан - автоопределение: `Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort -Desc | Select -First 1`
Если использованная база не зарегистрирована - после выполнения предложи добавить через `/db-list add`.

## Команда

Используй общий скрипт из epf-build:

```powershell
powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 <параметры>
```

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

| Параметр | Обязательный | Описание |
|----------|:------------:|----------|
| `-V8Path <путь>` | нет | Каталог bin платформы (или полный путь к 1cv8.exe) |
| `-InfoBasePath <путь>` | * | Файловая база |
| `-InfoBaseServer <сервер>` | * | Сервер 1С (для серверной базы) |
| `-InfoBaseRef <имя>` | * | Имя базы на сервере |
| `-UserName <имя>` | нет | Имя пользователя |
| `-Password <пароль>` | нет | Пароль |
| `-SourceFile <путь>` | да | Путь к корневому XML-файлу исходников |
| `-OutputFile <путь>` | да | Путь к выходному ERF-файлу |

> `*` - опционально. Если не указано - автоматически создается временная база со заглушками метаданных

## Примеры

```powershell
# Сборка отчета (файловая база)
powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 -InfoBasePath "C:\Bases\MyDB" -SourceFile "src/МойОтчет.xml" -OutputFile "build/МойОтчет.erf"

# Серверная база
powershell.exe -NoProfile -File skills/1c-epf-build/scripts/epf-build.ps1 -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret" -SourceFile "src/МойОтчет.xml" -OutputFile "build/МойОтчет.erf"
```

