mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-06 03:08:57 +03:00
Auto-build: opencode (powershell) from da6ac2b
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
---
|
||||
name: db-list
|
||||
description: Управление реестром баз данных 1С (.v8-project.json). Используй когда нужно работать с реестром баз — список баз, зарегистрировать базу в реестре, какие базы есть
|
||||
argument-hint: "[add|remove|show]"
|
||||
allowed-tools:
|
||||
- Read
|
||||
- Write
|
||||
- Glob
|
||||
- AskUserQuestion
|
||||
---
|
||||
|
||||
# /db-list — Управление реестром баз данных
|
||||
|
||||
Управляет файлом `.v8-project.json` — реестром информационных баз проекта. Файл хранит параметры подключения, алиасы, привязку к веткам Git.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/db-list — показать список баз
|
||||
/db-list add — добавить базу (интерактивно)
|
||||
/db-list remove <id> — удалить базу из реестра
|
||||
/db-list show <id|alias> — подробности по базе
|
||||
```
|
||||
|
||||
## Формат `.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"
|
||||
}
|
||||
```
|
||||
|
||||
### Поля корневого объекта
|
||||
|
||||
| Поле | Тип | Описание |
|
||||
|------|-----|----------|
|
||||
| `v8path` | string | Каталог bin платформы 1С. Необязательный — если не задан, автоопределение |
|
||||
| `databases` | array | Массив баз данных |
|
||||
| `default` | string | id базы по умолчанию |
|
||||
|
||||
### Поля объекта базы данных
|
||||
|
||||
| Поле | Тип | Обязательное | Описание |
|
||||
|------|-----|:------------:|----------|
|
||||
| `id` | string | да | Уникальный идентификатор (латиница, без пробелов) |
|
||||
| `name` | string | да | Человекочитаемое имя |
|
||||
| `type` | `"file"` / `"server"` | да | Тип подключения |
|
||||
| `path` | string | для file | Путь к каталогу файловой базы |
|
||||
| `server` | string | для server | Адрес сервера 1С |
|
||||
| `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. Если пользователь указал **базу по имени** — ищи совпадение в таком порядке:
|
||||
1. По `id` (точное совпадение)
|
||||
2. По `aliases` (совпадение в массиве с учётом морфологии: «тестовую» = «тестовая» = «тестовой»)
|
||||
3. По `name` (нечёткое совпадение с учётом морфологии и регистра)
|
||||
3. Если пользователь **не указал** базу — сопоставь текущую ветку Git с `databases[].branches`:
|
||||
- Точное совпадение: ветка `dev` → `"branches": ["dev"]`
|
||||
- Glob-паттерн: ветка `release/2.1` → `"branches": ["release/*"]`
|
||||
4. Если ветка не совпала — используй `default`
|
||||
5. Если не найдено или неоднозначно — спроси пользователя
|
||||
6. Если файл `.v8-project.json` не найден — спроси параметры подключения и предложи создать файл
|
||||
|
||||
После выполнения: если использованная база не зарегистрирована — предложи добавить через `/db-list add`.
|
||||
|
||||
### Автоопределение платформы
|
||||
|
||||
Если `v8path` не задан в конфиге:
|
||||
|
||||
```powershell
|
||||
$v8 = Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8.exe" | Sort-Object -Descending | Select-Object -First 1
|
||||
```
|
||||
|
||||
## Операции
|
||||
|
||||
### Показать список баз
|
||||
|
||||
Прочитай `.v8-project.json`, выведи таблицу:
|
||||
|
||||
```
|
||||
ID Имя Тип Путь/Сервер По умолч.
|
||||
dev Разработка file C:\Bases\MyApp_Dev ✓
|
||||
test Тестовая server srv01/MyApp_Test
|
||||
```
|
||||
|
||||
### Добавить базу
|
||||
|
||||
Спроси у пользователя через AskUserQuestion:
|
||||
- id, name, type (file/server)
|
||||
- path (для file) или server + ref (для server)
|
||||
- user, password (необязательно)
|
||||
- aliases, branches (необязательно)
|
||||
|
||||
Добавь в массив `databases`. Если это первая база — установи как `default`.
|
||||
|
||||
### Удалить базу
|
||||
|
||||
Удали из массива `databases` по id. Если удаляемая была `default` — спросить новый default.
|
||||
|
||||
### Подробности по базе
|
||||
|
||||
Выведи все поля конкретной базы.
|
||||
|
||||
## Формирование строки подключения
|
||||
|
||||
Для использования в шаблонах команд других навыков:
|
||||
|
||||
**Файловая база:**
|
||||
```
|
||||
/F "<path>"
|
||||
```
|
||||
|
||||
**Серверная база:**
|
||||
```
|
||||
/S "<server>/<ref>"
|
||||
```
|
||||
|
||||
**Аутентификация** (добавляется если user задан):
|
||||
```
|
||||
/N"<user>" /P"<password>"
|
||||
```
|
||||
|
||||
> **Важно**: между `/N` и именем пробела нет. Между `/P` и паролем пробела нет. Если пароль пустой — опусти `/P` целиком.
|
||||
Reference in New Issue
Block a user