Cc-1c-skills db-list

Управление реестром баз данных 1С (.v8-project.json). Используй когда пользователь говорит про базы данных, список баз, "добавь базу", "какие базы есть"

install
source · Clone the upstream repo
git clone https://github.com/Nikolay-Shirokov/cc-1c-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Nikolay-Shirokov/cc-1c-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/db-list" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-db-list && rm -rf "$T"
manifest: .claude/skills/db-list/SKILL.md
source content

/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/
).

{
  "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
stringid базы по умолчанию

Поля объекта базы данных

ПолеТипОбязательноеОписание
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
не задан в конфиге:

$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
целиком.