mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-02 08:20:49 +03:00
feat(db-repo): операции над всей конфигурацией — только по явному -All
Захват всей конфигурации на большой базе идёт долго и блокирует работу всей команде, а получался он от одного забытого -Objects: «вся конфигурация» была умолчанием. Теперь для lock, unlock и commit это отдельный флаг -All, который нельзя совместить с -Objects. Захват корня с -WithChildren, означающий то же самое, отсылает к нему же. update без -Objects остаётся обычным вызовом: получение всех изменений — это нормальный ежедневный сценарий, а не тяжёлая операция. Флаг отдельный, а не -Force: у -Force уже есть платформенное значение, разное по подкомандам, и третье значение сделало бы его нечитаемым. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
33633aaf0e
commit
012f5c3c30
@@ -97,8 +97,9 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-repo.ps1" <по
|
||||
| `-InfoBaseRef <имя>` | * | Имя базы на сервере |
|
||||
| `-UserName <имя>` | нет | Пользователь базы |
|
||||
| `-Password <пароль>` | нет | Пароль пользователя базы |
|
||||
| `-Objects <список>` | нет | Объекты через запятую. Без него — вся конфигурация, спроси подтверждение |
|
||||
| `-Objects <список>` | усл. | Объекты через запятую. Для `lock`, `unlock`, `commit` обязателен, если не задан `-All` |
|
||||
| `-ObjectsFile <путь>` | нет | Файл со списком объектов, одно имя на строку |
|
||||
| `-All` | нет | Операция над всей конфигурацией — вместо `-Objects`, а не вместе с ним |
|
||||
| `-WithChildren` | нет | Вместе с подчинёнными объектами на полную глубину |
|
||||
| `-Comment <текст>` | нет | Комментарий к помещению (`commit`). Многострочный — как есть, с переводами строк |
|
||||
| `-KeepLocked` | нет | Оставить объекты захваченными после помещения |
|
||||
@@ -146,6 +147,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-repo.ps1" <по
|
||||
|
||||
| Операция | Что теряется |
|
||||
|----------|--------------|
|
||||
| `lock -All` | Ничего, но захватывает **всю конфигурацию**: на большой базе идёт долго и блокирует работу всей команде |
|
||||
| `unlock -Force` | Локальные правки захваченных объектов |
|
||||
| `disconnect` | Подключение базы к хранилищу, в том числе на стороне хранилища |
|
||||
| `connect -ForceReplaceCfg` | Конфигурация базы заменяется конфигурацией из хранилища |
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# db-repo v1.2 — 1C configuration repository operations
|
||||
# db-repo v1.3 — 1C configuration repository operations
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# NB: движок только 1cv8 — ibcmd работу с хранилищем не поддерживает (нет такого режима).
|
||||
<#
|
||||
@@ -73,6 +73,11 @@ param(
|
||||
[Parameter(Mandatory=$false)]
|
||||
[switch]$WithChildren,
|
||||
|
||||
# Операция над ВСЕЙ конфигурацией. Отдельный флаг, а не умолчание при забытом -Objects:
|
||||
# захват всей конфигурации на большой базе идёт долго и блокирует работу всей команде.
|
||||
[Parameter(Mandatory=$false)]
|
||||
[switch]$All,
|
||||
|
||||
[Parameter(Mandatory=$false)]
|
||||
[string]$Comment,
|
||||
|
||||
@@ -977,14 +982,27 @@ if ($requested.Count -gt 0 -and $objectAware -notcontains $cmd) {
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Корень с подчинёнными — это ВСЯ конфигурация, а выглядит как «захвачу корень». Для всей
|
||||
# конфигурации есть однозначная форма (вызов без -Objects), поэтому двусмысленную отклоняем.
|
||||
# Операции над всей конфигурацией требуют явного -All. Умолчанием это быть не может: захват
|
||||
# всей конфигурации на большой базе идёт долго и блокирует работу всей команде, а получается
|
||||
# такой вызов от одного забытого -Objects.
|
||||
$wholeConfigAware = @('lock', 'unlock', 'commit')
|
||||
if ($All -and $requested.Count -gt 0) {
|
||||
Write-Host "Error: -All (whole configuration) contradicts -Objects/-ObjectsFile — pick one" -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
if ($wholeConfigAware -contains $cmd -and $requested.Count -eq 0 -and -not $All) {
|
||||
Write-Host "Error: '$cmd' without -Objects would affect the WHOLE configuration." -ForegroundColor Red
|
||||
Write-Host " Укажите объекты: -Objects `"Справочник.Номенклатура`"" -ForegroundColor Yellow
|
||||
Write-Host " Это и нужно — подтвердите явно: -All" -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
# Корень с подчинёнными — это тоже вся конфигурация, хотя выглядит как «захвачу корень».
|
||||
if ($WithChildren) {
|
||||
$rootAsked = @($requested | Where-Object { $script:ConfigRootAliases -contains $_ })
|
||||
if ($rootAsked.Count -gt 0) {
|
||||
Write-Host "Error: '$($rootAsked[0])' with -WithChildren means the WHOLE configuration, not just its root." -ForegroundColor Red
|
||||
Write-Host " Нужен только корень (чтобы добавить или удалить объект) — уберите -WithChildren." -ForegroundColor Yellow
|
||||
Write-Host " Нужна вся конфигурация — вызовите без -Objects." -ForegroundColor Yellow
|
||||
Write-Host " Нужна вся конфигурация — вызовите с -All вместо -Objects." -ForegroundColor Yellow
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user