cfe-init · git:20260916.b3dfbcd · 2026-09-16 · sha256 5ec6b475d6082e77

cfe-init git:20260916.b3dfbcdA

Immutable. This exact content never changes and is served at /api/v1/blob/5ec6b475d6082e77.

---
name: cfe-init
description: Создать расширение конфигурации 1С (CFE) — scaffold XML-исходников. Используй когда нужно создать новое расширение для исправления, доработки или дополнения конфигурации
argument-hint: <Name> [-ConfigPath <path>] [-Purpose Patch|Customization|AddOn] [-CompatibilityMode Version8_3_24]
allowed-tools:
  - Bash
  - Read
  - Glob
---

# /cfe-init — Создание расширения конфигурации 1С

## MCP routing

- **Канонической операции создания расширения на поверхности нет.** Словарь
  `unica.apply` правит существующий узел; корень расширения с его
  `NamePrefix`, `ConfigurationExtensionPurpose` и связью с родителем ни одна
  операция не заводит.
- Не зови внутренние адаптеры напрямую: они спрятаны за MCP `unica`.
- Готовность проверяет `unica.check`, результат читает `unica.view` по адресу.

Порядок тот же, что у новой конфигурации: сформировать корень расширения
файловыми средствами по формату ниже, объявить набор вида `EXTENSION` в
`v8project.yaml`, проверить `unica.check {}` и прочитать
`unica.view {at: "<расширение>:Configuration"}`.

Заимствование объектов у родителя — отдельный предмет: канонической операции
тоже нет, разбор и план держит отдельная архитектурная записка Unica.

Если нужна именно операция создания расширения — это пробел контракта Unica
MCP; сообщи о нём, а не подменяй его правкой родительской конфигурации.

## Примеры

### Расширение для ERP с авто-совместимостью

Поля, которые должен нести записанный файл:

```json
{
  "Name": "Расш1",
  "ConfigPath": "C:\\WS\\tasks\\cfsrc\\erp_8.3.24",
  "OutputDir": "src"
}
```

### Расширение-исправление с явной совместимостью

Поля, которые должен нести записанный файл:

```json
{
  "Name": "Расш1",
  "Purpose": "Patch",
  "CompatibilityMode": "Version8_3_17",
  "OutputDir": "src"
}
```

### Расширение-доработка с версией

Поля, которые должен нести записанный файл:

```json
{
  "Name": "МоёРасширение",
  "Version": "1.0.0.1",
  "Vendor": "Компания",
  "OutputDir": "src"
}
```

### Без роли, с явным префиксом

Поля, которые должен нести записанный файл:

```json
{
  "Name": "ИсправлениеБага",
  "NamePrefix": "ИБ_",
  "Purpose": "Patch",
  "NoRole": true,
  "OutputDir": "src"
}
```

## Верификация

Проверка расширения — `unica.check` на корне набора-расширения (`ext` — имя набора типа `EXTENSION` в `v8project.yaml`); валидатор `cfe` выбирается по виду набора, вердикт в `data.status`.

```json
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "unica.check",
    "arguments": {
      "at": "ext:Configuration"
    }
  }
}
```