/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", "v8args": ["/UseHwLicenses+"], "databases": [ { "id": "dev", "name": "Разработка", "type": "file", "path": "C:\\Bases\\MyApp_Dev", "v8path": "C:\\Program Files\\1cv8\\8.3.27.1688\\bin", "user": "Admin", "password": "", "aliases": ["dev", "разработка"], "branches": ["dev", "develop", "feature/*"], "configSrc": "C:\\WS\\myapp\\cfsrc", "repository": { "path": "\\\\srv01\\repo\\MyApp", "user": "Ivanov", "password": "" }, "extensions": [ { "name": "МоёРасширение", "src": "src\\cfe\\МоёРасширение", "repository": { "path": "\\\\srv01\\repo\\MyApp_Ext", "user": "Ivanov", "password": "" } } ] }, { "id": "test", "name": "Тестовая", "type": "server", "server": "srv01", "ref": "MyApp_Test", "user": "Admin", "password": "123", "aliases": ["test", "тест"] } ], "default": "dev" }
Поля корневого объекта
| Поле | Тип | Описание |
|---|---|---|
v8path | string | Каталог bin платформы 1С. Необязательный — если не задан, автоопределение |
v8args | array | Доп. аргументы запуска 1cv8.exe для всех навыков, напр. ["/UseHwLicenses+"] |
ibcmdargs | array | Доп. аргументы ibcmd (форма --ключ=значение) |
newObjectPosition | "end" / "byName" | Куда попадает новый объект в составе конфигурации: в конец своего вида (по умолчанию) или на место по имени. Переопределяется в databases[] |
extensionApplyCheck | bool | Проверять ли применимость расширения после загрузки в базу (по умолчанию true). Разово отключается ключом -NoApplyCheck |
externalCheck | bool | Проверять ли исходники внешней обработки/отчёта платформой перед сборкой (по умолчанию true). Разово отключается ключом -Checks off |
xsdPath | string | Каталог XSD-схем платформы для проверки выгрузок по версиям формата; по умолчанию .v8-xsd рядом с этим файлом. Наполняется /v8-xsd-fetch |
databases | array | Массив баз данных |
default | string | id базы по умолчанию |
Поля объекта базы данных
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
id | string | да | Уникальный идентификатор (латиница, без пробелов) |
name | string | да | Человекочитаемое имя |
type | "file" / "server" | да | Тип подключения |
path | string | для file | Путь к каталогу файловой базы |
server | string | для server | Адрес сервера 1С |
ref | string | для server | Имя базы на сервере |
v8path | string | нет | Платформа именно этой базы — перекрывает корневой v8path (см. ниже) |
user | string | нет | Имя пользователя 1С |
password | string | нет | Пароль |
aliases | string[] | нет | Альтернативные имена для быстрого доступа |
branches | string[] | нет | Git-ветки или glob-паттерны (release/*, feature/*), привязанные к этой базе |
configSrc | string | нет | Каталог XML-выгрузки конфигурации |
repository | object | нет | Хранилище конфигурации: path, user, password (см. ниже) |
extensions | array | нет | Расширения: name, src, необязательное repository (см. ниже) |
Хранилище конфигурации
База, подключённая к хранилищу конфигурации 1С, не принимает ни одной операции конфигуратора
без реквизитов доступа к хранилищу — это касается не только /db-repo, но и /db-load-xml,
/db-dump-xml, /db-update, /db-load-git. Реквизиты берутся из repository записи базы,
передавать их в каждом вызове не нужно.
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
repository.path | string | да | Каталог хранилища или tcp://<хост>[:<порт>]/<имя> |
repository.user | string | нет | Пользователь хранилища. Не наследуется от user базы |
repository.password | string | нет | Пароль пользователя хранилища |
У расширения своё хранилище со своим путём, поэтому одного repository мало:
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
extensions[].name | string | да | Имя расширения, как в конфигурации |
extensions[].src | string | нет | Каталог XML-исходников расширения |
extensions[].repository | object | нет | Хранилище расширения. Расширение без хранилища — обычный случай |
Пароль хранилища — такой же секрет, как password базы; .v8-project.json в .gitignore.
Сетевое хранилище. Адрес —
tcp://<хост>[:<порт>]/<имя>, порт по умолчанию 1542. Обслуживается сервером хранилища. Если он недоступен, платформа отвечает «Соединение с хранилищем конфигурации не установлено» — тем же сообщением, что и при отсутствии реквизитов.
Алгоритм разрешения базы данных
Этот алгоритм используется ВСЕМИ навыками (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 в вызове → v8path записи базы → корневой v8path → автоопределение.
Запись базы находит сам скрипт, сопоставляя параметры соединения с databases[], — передавать
-V8Path руками не нужно. Поле у базы нужно, когда базы проекта живут на разных версиях платформы:
формат XML-выгрузки задаёт та платформа, которая выгружает, а автоопределение берёт самую старшую
установленную.
Если 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 (необязательно)
- если база под хранилищем конфигурации —
repository: путь, пользователь, пароль
Добавь в массив databases. Если это первая база — установи как default.
Удалить базу
Удали из массива databases по id. Если удаляемая была default — спросить новый default.
Подробности по базе
Выведи все поля конкретной базы.
Формирование строки подключения
Для использования в шаблонах команд других навыков:
Файловая база:
/F "<path>"
Серверная база:
/S "<server>/<ref>"
Аутентификация (добавляется если user задан):
/N"<user>" /P"<password>"
Важно: между
/Nи именем пробела нет. Между/Pи паролем пробела нет. Если пароль пустой — опусти/Pцеликом.
Хранилище конфигурации (если у базы задан repository) — скрипты навыков подставляют
сами, сопоставляя параметры соединения с записью реестра:
/ConfigurationRepositoryF"<path>" /ConfigurationRepositoryN"<user>" /ConfigurationRepositoryP"<password>"


