mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-11 00:14:56 +03:00
4b0304d0c8
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
150 lines
6.7 KiB
Markdown
150 lines
6.7 KiB
Markdown
# Базы данных 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`
|
||
|
||
Файл размещается в корне проекта (рядом с `.git/`).
|
||
|
||
```json
|
||
{
|
||
"v8path": "C:\\Program Files\\1cv8\\8.3.25.1257\\bin",
|
||
"databases": [
|
||
{
|
||
"id": "dev",
|
||
"name": "Разработка",
|
||
"type": "file",
|
||
"path": "C:\\Bases\\MyApp_Dev",
|
||
"user": "Admin",
|
||
"password": "",
|
||
"aliases": ["dev", "разработка"],
|
||
"branches": ["dev", "develop", "feature/*"],
|
||
"configSrc": "C:\\WS\\myapp\\cfsrc"
|
||
},
|
||
{
|
||
"id": "test",
|
||
"name": "Тестовая",
|
||
"type": "server",
|
||
"server": "srv01",
|
||
"ref": "MyApp_Test",
|
||
"user": "Admin",
|
||
"password": "123",
|
||
"aliases": ["test", "тест"]
|
||
}
|
||
],
|
||
"default": "dev"
|
||
}
|
||
```
|
||
|
||
### Поля базы данных
|
||
|
||
| Поле | Тип | Обязательное | Описание |
|
||
|------|-----|:------------:|----------|
|
||
| `id` | string | да | Уникальный идентификатор |
|
||
| `name` | string | да | Имя |
|
||
| `type` | `"file"` / `"server"` | да | Тип подключения |
|
||
| `path` | string | для file | Каталог файловой базы |
|
||
| `server` | string | для server | Адрес сервера |
|
||
| `ref` | string | для server | Имя базы на сервере |
|
||
| `user` | string | нет | Пользователь 1С |
|
||
| `password` | string | нет | Пароль |
|
||
| `aliases` | string[] | нет | Альтернативные имена |
|
||
| `branches` | string[] | нет | Git-ветки или glob-паттерны (`release/*`, `feature/*`) |
|
||
| `configSrc` | string | нет | Каталог XML-выгрузки |
|
||
|
||
### Разрешение базы
|
||
|
||
Все навыки `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`.
|
||
|
||
## Спецификации
|
||
|
||
- [build-spec.md](build-spec.md) — пакетный режим конфигуратора 1С (CREATEINFOBASE, DESIGNER, ENTERPRISE, параметры, коды возврата)
|