feat(db-repo): правила захвата, нулевой шаг цикла и диагностика по отчёту субагента

Проверка навыка субагентом на сквозном сценарии вскрыла фактическую ошибку
в инструкции: реквизиты и табличные части перечислялись наравне с формами как
захватываемые объекты. Платформа их объектами не считает — список объектов
получается пустым, причём без секции «отсутствующие в конфигурации». Правишь
реквизит, табличную часть, измерение, ресурс или модуль — захватывай владельца;
формы, макеты и команды захватываются отдельно.

Сообщение «объект не найден» имеет три разные причины: опечатка, отставание
базы от хранилища и попытка захватить то, что объектом не является. Теперь
перечислены все три.

В цикл добавлен нулевой шаг — получение актуального состояния перед началом
работы: правки должны опираться на актуальные версии в том числе тех объектов,
которые не меняются, но используются. Загрузка и обновление БД слиты в один
шаг через -UpdateDB, поэтому цикл не удлинился.

Захват корня конфигурации с -WithChildren отклоняется: это захват всей
конфигурации, а выглядит как захват корня. Для всей конфигурации есть
однозначная форма — вызов без -Objects.

Текстовый отчёт печатается, а не только сохраняется в файл.

Схема repository и extensions[] описана в docs/v8-project-guide.md,
цикл под хранилищем — в docs/db-guide.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-23 12:40:44 +03:00
co-authored by Claude Opus 5
parent 478e7489f9
commit 3e816d3e12
5 changed files with 172 additions and 26 deletions
+26
View File
@@ -15,6 +15,7 @@
| `/db-update` | — | Обновление конфигурации БД |
| `/db-run` | — | Запуск 1С:Предприятие |
| `/db-load-git` | `.ps1` | Загрузка изменений из Git в базу |
| `/db-repo` | `.ps1` | Хранилище конфигурации: захват, помещение, получение изменений |
## Рабочий цикл
@@ -35,6 +36,31 @@
7. **Обновление**`/db-update` применить
8. **Запуск**`/db-run` открыть предприятие
## Работа с хранилищем конфигурации
База, подключённая к хранилищу, живёт по другим правилам, и это меняет весь цикл:
- **полная загрузка XML в неё невозможна** — платформа отвечает «текущая конфигурация помещена в
хранилище». Работает только `-Mode Partial`;
- частичная загрузка проходит **только по захваченным** объектам, иначе отказ с именем объекта;
- **новый объект требует захвата корня конфигурации** — без него частичная загрузка не пройдёт;
- любой команде конфигуратора нужны реквизиты хранилища. Их берут из `repository` записи базы
(см. [справочник .v8-project.json](v8-project-guide.md)), передавать в каждом вызове не нужно.
Цикл разработки под хранилищем:
```
/db-repo update → /db-repo lock → /db-dump-xml -Mode Partial → правки
/db-repo commit ← /db-load-xml -Mode Partial -UpdateDB
```
Выгрузка после захвата обязательна: захват и обновление молча подтягивают из хранилища свежие
версии объектов, и загрузка исходников, снятых раньше, откатит чужие изменения без единой ошибки.
`/db-repo` печатает список полученных объектов и готовую команду выгрузки.
Подробности — в SKILL.md навыка `/db-repo`.
## Формат `.v8-project.json`
Полное описание формата — в [справочнике .v8-project.json](v8-project-guide.md).