Files
cc-1c-skills/docs/db-guide.md
T
Nick ShirokovandClaude Opus 5 f6165c8d35 docs(db-guide,v8-project-guide): форма списка доп. аргументов
Список пишется одной строкой через запятую — так же, как -Objects/-Files;
отмечено ограничение: значение с запятой внутри не поддерживается.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 21:15:49 +03:00

10 KiB
Raw Blame History

Базы данных 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

Полное описание формата — в справочнике .v8-project.json.

Разрешение базы

Все навыки db-* (а также epf-build, epf-dump, erf-build, erf-dump) используют единый алгоритм:

  1. Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
  2. Если указал базу по имени — ищи: idaliases (с учётом морфологии) → 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.

Движок: 1cv8 или ibcmd

По умолчанию навыки группы работают через конфигуратор (1cv8.exe; путь к нему определяется автоматически по каталогу v8path) — менять это не нужно. При желании ту же операцию можно выполнить через автономный сервер ibcmd. Для этого навыку нужно передать путь к самому файлу ibcmd.exe (каталог bin всегда трактуется как 1cv8.exe; отдельного поля-переключателя в .v8-project.json нет). Путь указывают одним из двух способов:

  • разово, в самой задаче — назвать полный путь к ibcmd.exe:

    > Собери обработку, платформа C:\Program Files\1cv8\8.3.24.1691\bin\ibcmd.exe
    
  • в файле настроек — прописать в v8path не каталог bin, а сам файл ...\bin\ibcmd.exe (тогда через ibcmd пойдут все операции).

Через ibcmd работают: db-create, db-load-xml/db-dump-xml (в том числе по отдельным объектам и со всеми расширениями), db-load-cf/db-dump-cf, db-load-dt/db-dump-dt, db-update, db-load-git, epf-build/epf-dump, erf-build/erf-dump.

Ограничения:

  • только файловые базы (для серверных используйте конфигуратор);
  • если запрошен режим, который ibcmd не поддерживает (например, выгрузка в «плоском» формате), навык остановится с понятным сообщением и предложит конфигуратор.

Дополнительные аргументы платформы

Набор аргументов, который скрипт формирует сам, закрыт: подключение, пакетная операция, /Out. Общие ключи платформы, которых нет среди параметров навыка (/UseHwLicenses+, /L, /ClearCache, /DebuggerURL, …), передаются через escape hatch — по одному параметру на движок:

Движок Параметр Ключ в .v8-project.json
1cv8.exe -AdditionalV8Arguments v8args
ibcmd -AdditionalIbcmdArguments ibcmdargs
# разово; несколько аргументов — через запятую, как у -Objects/-Files
powershell.exe -NoProfile -File "…/epf-build.ps1" -SourceFile "src/Обработка.xml" `
    -OutputFile "build/Обработка.epf" -AdditionalV8Arguments "/UseHwLicenses+,/L,ru"

Список пишется одной строкой через запятую: при запуске скрипта через -File PowerShell не умеет собирать массив из отдельных токенов. Значение, содержащее запятую, не поддерживается.

Проектные аргументы применяются первыми, параметр — после них. Аргументы уходят во все запуски платформы, которые делает навык: epf-build без указания базы прогоняет CREATEINFOBASE, /LoadConfigFromFiles, /UpdateDBCfg и саму сборку — ключ получит каждый.

Что отклоняется до запуска, с указанием штатного параметра:

  • аргумент, которым управляет сам скрипт: режим (DESIGNER, ENTERPRISE, CREATEINFOBASE), подключение (/F, /S, /N, /P), /Out, пакетная операция (/Load*, /Dump*, /UpdateDBCfg, …). Платформа допускает лишь одну пакетную операцию, а дубль ключа подключения даёт невнятную ошибку 1С;
  • для ibcmd — позиционный токен: команда (infobase create, config import) принадлежит навыку, поэтому значения передаются только в форме --ключ=значение;
  • параметр «не своего» движка (-AdditionalV8Arguments при выбранном ibcmd). Ключи из .v8-project.json в этом случае просто не применяются — реестр проекта может описывать оба движка.

В строке Running: … значения секрето-опасных ключей (/P, /UC, --password, --token) заменяются на ***. Ограничения разбора, о которых стоит знать:

  • слитое значение, начинающееся с буквы (/Psecret вместо /P"secret"), неотличимо от более длинного ключа — такой аргумент не будет ни распознан как конфликт, ни замаскирован;
  • содержимое файла параметров /@ не разбирается — за его состав отвечает вызывающий.

Спецификации

  • build-spec.md — пакетный режим конфигуратора 1С (CREATEINFOBASE, DESIGNER, ENTERPRISE, параметры, коды возврата)