# Базы данных 1С

Навыки группы `/db-*` позволяют управлять информационными базами 1С из Claude Code: создавать базы, загружать и выгружать конфигурации, обновлять БД, запускать предприятие, загружать изменения из Git.

## Навыки

| Навык | Скрипт | Описание |
|-------|:------:|----------|
| `/db-list` | — | Управление реестром баз (.v8-project.json) |
| `/db-create` | — | Создание информационной базы |
| `/db-dump-cf` | — | Выгрузка конфигурации в CF-файл |
| `/db-load-cf` | — | Загрузка конфигурации из CF-файла |
| `/db-dump-xml` | `.ps1` | Выгрузка конфигурации в XML-файлы (полная/инкрементальная/частичная) |
| `/db-load-xml` | `.ps1` | Загрузка конфигурации из XML-файлов (полная/частичная) |
| `/db-update` | — | Обновление конфигурации БД |
| `/db-run` | — | Запуск 1С:Предприятие |
| `/db-load-git` | `.ps1` | Загрузка изменений из Git в базу |

## Рабочий цикл

```
.v8-project.json → /db-create → /db-load-cf или /db-load-xml → /db-update → /db-run
                                                                    ↑
                                 /db-dump-xml ←→ правки в исходниках → /db-load-git → /db-update
```

### Типичный цикл разработки

1. **Настройка** — `/db-list add` зарегистрировать базу в `.v8-project.json`
2. **Создание** — `/db-create` создать базу (если нет)
3. **Загрузка** — `/db-load-xml` или `/db-load-cf` загрузить конфигурацию
4. **Обновление** — `/db-update` применить к БД
5. **Работа** — редактирование XML-исходников
6. **Синхронизация** — `/db-load-git` загрузить изменения из Git
7. **Обновление** — `/db-update` применить
8. **Запуск** — `/db-run` открыть предприятие

## Формат `.v8-project.json`

Полное описание формата — в [справочнике .v8-project.json](v8-project-guide.md).

### Разрешение базы

Все навыки `db-*` (а также `epf-build`, `epf-dump`, `erf-build`, `erf-dump`) используют единый алгоритм:

1. Если пользователь указал **параметры подключения** (путь, сервер) — используй напрямую
2. Если указал **базу по имени** — ищи: `id` → `aliases` (с учётом морфологии) → `name` (нечёткое)
3. Если **не указал** — сопоставь текущую ветку Git с `branches` (точно или по glob-паттерну)
4. Fallback на `default`
5. Если не найдено — спроси пользователя
6. После выполнения: если использованная база не зарегистрирована — предложи добавить через `/db-list add`

## Сценарии использования

### Создать базу и загрузить конфигурацию

```
> Создай файловую базу C:\Bases\Test и загрузи в неё конфигурацию из C:\WS\cfsrc
```

Claude вызовет `/db-create` → `/db-load-xml -Mode Full` → предложит `/db-update`.

### Загрузить изменения из Git

```
> Загрузи мои последние правки в базу разработки
```

Claude вызовет `/db-load-git dev -Source All` → предложит `/db-update`.

### Выгрузить конфигурацию

```
> Выгрузи конфигурацию из тестовой базы в C:\WS\cfsrc
```

Claude вызовет `/db-dump-xml test C:\WS\cfsrc -Mode Full`.

### Работа с расширениями

```
> Выгрузи расширение МоёРасширение из базы dev в C:\WS\ext_src
```

Claude вызовет `/db-dump-xml dev C:\WS\ext_src -Extension МоёРасширение`.

```
> Загрузи расширение обратно в базу
```

Claude вызовет `/db-load-xml C:\WS\ext_src dev -Extension МоёРасширение` → предложит `/db-update -Extension МоёРасширение`.

### Запустить предприятие

```
> Запусти базу разработки
```

Claude вызовет `/db-run dev`.

## Движок: 1cv8 или ibcmd

По умолчанию навыки группы работают через конфигуратор (`1cv8.exe`; путь к нему определяется
автоматически по каталогу `v8path`) — менять это не нужно. При желании ту же операцию можно выполнить
через автономный сервер `ibcmd`. Для этого навыку нужно передать путь к самому файлу `ibcmd.exe`
(каталог `bin` всегда трактуется как `1cv8.exe`; отдельного поля-переключателя в `.v8-project.json` нет).
Путь указывают одним из двух способов:

- **разово, в самой задаче** — назвать полный путь к `ibcmd.exe`:

  ```
  > Собери обработку, платформа C:\Program Files\1cv8\8.3.24.1691\bin\ibcmd.exe
  ```
- **в файле настроек** — прописать в `v8path` не каталог `bin`, а сам файл `...\bin\ibcmd.exe`
  (тогда через `ibcmd` пойдут все операции).

Через `ibcmd` работают: `db-create`, `db-load-xml`/`db-dump-xml` (в том числе по отдельным объектам
и со всеми расширениями), `db-load-cf`/`db-dump-cf`, `db-load-dt`/`db-dump-dt`, `db-update`,
`db-load-git`, `epf-build`/`epf-dump`, `erf-build`/`erf-dump`.

Ограничения:
- только **файловые** базы (для серверных используйте конфигуратор);
- если запрошен режим, который `ibcmd` не поддерживает (например, выгрузка в «плоском» формате),
  навык остановится с понятным сообщением и предложит конфигуратор.

## Спецификации

- [build-spec.md](build-spec.md) — пакетный режим конфигуратора 1С (CREATEINFOBASE, DESIGNER, ENTERPRISE, параметры, коды возврата)
