/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", "role": "dev", "path": "C:\\Bases\\MyApp_Dev", "user": "Admin", "password": "", "aliases": ["dev", "разработка"], "branches": ["dev", "develop", "feature/*"], "configSrc": "C:\\WS\\myapp\\cfsrc" }, { "id": "test", "name": "Тестовая", "type": "server", "role": "test", "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" | да | Тип подключения |
role | "dev" / "test" / "prod" | нет | Роль базы. Нет поля - то же, что dev. prod включает защиту боевой базы |
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) для определения целевой базы.
- Если пользователь указал параметры подключения (путь, сервер) - используй напрямую
- Если пользователь указал базу по имени - ищи совпадение в таком порядке:
- По
id(точное совпадение) - По
aliases(совпадение в массиве с учетом морфологии: "тестовую" = "тестовая" = "тестовой") - По
name(нечеткое совпадение с учетом морфологии и регистра)
- По
- Если пользователь не указал базу - сопоставь текущую ветку Git с
databases[].branches:- Точное совпадение: ветка
dev→"branches": ["dev"] - Glob-паттерн: ветка
release/2.1→"branches": ["release/*"]
- Точное совпадение: ветка
- Если ветка не совпала - используй
default - Если не найдено или неоднозначно - спроси пользователя
- Если файл
.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, выведи таблицу. Колонка Роль - поле role; если поля нет, выводи dev.
ID Имя Тип Роль Путь/Сервер По умолч. dev Разработка file dev C:\Bases\MyApp_Dev ✓ test Тестовая server test srv01/MyApp_Test
Добавить базу
Спроси у пользователя через AskUserQuestion:
- id, name, type (file/server)
- role:
dev,testилиprod - path (для file) или server + ref (для server)
- user, password (необязательно)
- aliases, branches (необязательно)
Если пользователь не выбрал роль, поле role не записывай: это то же, что dev. Добавь в массив databases. Если это первая база - установи как default.
Удалить базу
Удали из массива databases по id. Если удаляемая была default - спросить новый default.
Подробности по базе
Выведи все поля конкретной базы. Роль показывай всегда: нет поля role - это dev.
Формирование строки подключения
Для использования в шаблонах команд других навыков:
Файловая база:
/F "<path>"
Серверная база:
/S "<server>/<ref>"
Аутентификация (добавляется если user задан):
/N"<user>" /P"<password>"
Важно: между
/Nи именем пробела нет. Между/Pи паролем пробела нет. Если пароль пустой - опусти/Pцеликом.


