mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-18 15:45:52 +03:00
docs(db-repo): в инструкциях только применение, http отделён от tcp
Перечитал изменённые инструкции свежим взглядом и убрал всё, что описывает поведение навыка вместо способа им пользоваться: образец вывода отчёта (модель увидит настоящий), фразу «навык подсказывает оба флага», объяснение, почему длинный отчёт не печатается, и заверение, что неверная пара путь+расширение ничего не ломает. Осталось действие: как назвать, что указать, чего ждать от кода возврата. Столбец «Что теряется» переименован в «Почему»: у lock -All не теряется ничего, и строка «Ничего, но…» в таком столбце читалась криво. Подсказка о недоступном хранилище разделена по схеме адреса: tcp ведёт к серверу хранилища и порту, http — к веб-серверу и публикации. Прежний общий текст советовал бы проверять сервер хранилища и порт 1542 для http-адреса, где это неверно. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8edacf39c8
commit
24579c2580
@@ -133,23 +133,22 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-repo.ps1" -Comma
|
|||||||
|
|
||||||
## Результат
|
## Результат
|
||||||
|
|
||||||
Код возврата отражает, достигнуто ли запрошенное состояние, а не факт изменения: «уже захвачено»,
|
Нулевой код не означает, что что-то изменилось. Под нулём приходят «уже захвачено», «обновлять
|
||||||
«обновлять нечего», «помещать нечего» — это успех. Частичный захват тоже успех: захваченное можно
|
нечего», «помещать нечего» и частичный захват — когда часть объектов занята другими, а остальное
|
||||||
править.
|
захвачено и его можно править.
|
||||||
|
|
||||||
**Всегда читай текст вывода, а не только код.** Под нулевым кодом приходят «новая версия не
|
**Читай текст вывода, а не только код.** Там же приходит список полученных из хранилища объектов,
|
||||||
создана», «часть объектов занята другими» и список полученных из хранилища объектов, требующий
|
который требует перевыгрузки перед правкой.
|
||||||
перевыгрузки.
|
|
||||||
|
|
||||||
## Требуют подтверждения пользователя
|
## Требуют подтверждения пользователя
|
||||||
|
|
||||||
Перед этими операциями **спроси подтверждение** — они необратимы:
|
Перед этими операциями **спроси подтверждение**:
|
||||||
|
|
||||||
| Операция | Что теряется |
|
| Операция | Почему |
|
||||||
|----------|--------------|
|
|----------|--------|
|
||||||
| `lock -All` | Ничего, но захватывает **всю конфигурацию**: на большой базе идёт долго и блокирует работу всей команде |
|
| `lock -All` | Захватывает **всю конфигурацию**: на большой базе идёт долго и блокирует работу всей команде |
|
||||||
| `unlock -Force` | Локальные правки захваченных объектов |
|
| `unlock -Force` | Теряются локальные правки захваченных объектов |
|
||||||
| `disconnect` | Подключение базы к хранилищу, в том числе на стороне хранилища |
|
| `disconnect` | Теряется подключение базы к хранилищу, в том числе на стороне хранилища |
|
||||||
| `connect -ForceReplaceCfg` | Конфигурация базы заменяется конфигурацией из хранилища |
|
| `connect -ForceReplaceCfg` | Конфигурация базы заменяется конфигурацией из хранилища |
|
||||||
|
|
||||||
`update` не выполнится, если у базы в реестре не объявлено `repository`, а реквизиты не заданы
|
`update` не выполнится, если у базы в реестре не объявлено `repository`, а реквизиты не заданы
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-repo.ps1" -Comma
|
|||||||
|
|
||||||
На пустой базе `-ForceReplaceCfg` не нужен.
|
На пустой базе `-ForceReplaceCfg` не нужен.
|
||||||
|
|
||||||
**Переподключение** базы, которая уже была подключена, обычно требует обоих флагов: конфигурация
|
**Переподключение** базы, которая уже была подключена, требует обоих флагов: конфигурация в базе
|
||||||
в базе не пустая (`-ForceReplaceCfg`), а за пользователем хранилища всё ещё числится эта база
|
не пустая (`-ForceReplaceCfg`), а за пользователем хранилища всё ещё числится эта база
|
||||||
(`-ForceBindAlreadyBindedUser`). Навык подсказывает оба по сообщению платформы.
|
(`-ForceBindAlreadyBindedUser`).
|
||||||
|
|
||||||
После подключения добавь `repository` в запись базы в `.v8-project.json` — иначе остальные
|
После подключения добавь `repository` в запись базы в `.v8-project.json` — иначе остальные
|
||||||
подкоманды придётся каждый раз звать с явными реквизитами, а `update` откажется работать.
|
подкоманды придётся каждый раз звать с явными реквизитами, а `update` откажется работать.
|
||||||
@@ -34,6 +34,5 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-repo.ps1" -Comma
|
|||||||
|
|
||||||
## Расширения
|
## Расширения
|
||||||
|
|
||||||
У расширения своё хранилище: `-Extension "<Имя>"` вместе с путём именно к нему. Неверная пара
|
У расширения своё хранилище: `-Extension "<Имя>"` указывай вместе с путём именно к нему, а не
|
||||||
«путь основного хранилища + `-Extension`» даёт ошибку `Конфигурация связана с другим хранилищем`
|
к хранилищу основной конфигурации.
|
||||||
и ничего не ломает.
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-repo.ps1" -Comma
|
|||||||
|
|
||||||
| Параметр | Описание |
|
| Параметр | Описание |
|
||||||
|----------|----------|
|
|----------|----------|
|
||||||
| `-OutputFile <путь>` | Куда положить отчёт. Без него — во временный файл, отчёт всё равно печатается |
|
| `-OutputFile <путь>` | Куда сохранить отчёт. Необязателен |
|
||||||
| `-NBegin <номер>` | С какой версии. `-1` — только последняя |
|
| `-NBegin <номер>` | С какой версии. `-1` — только последняя |
|
||||||
| `-NEnd <номер>` | По какую версию |
|
| `-NEnd <номер>` | По какую версию |
|
||||||
| `-DateBegin` / `-DateEnd` | Границы по датам |
|
| `-DateBegin` / `-DateEnd` | Границы по датам |
|
||||||
@@ -16,25 +16,11 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/db-repo.ps1" -Comma
|
|||||||
| `-GroupByComment` | Группировать по комментарию |
|
| `-GroupByComment` | Группировать по комментарию |
|
||||||
| `-ReportFormat <txt\|mxl>` | По умолчанию `txt` |
|
| `-ReportFormat <txt\|mxl>` | По умолчанию `txt` |
|
||||||
|
|
||||||
`txt` — табуляция-разделённый и легко читается:
|
`txt` — с разделителем-табуляцией, разбирается построчно.
|
||||||
|
|
||||||
```
|
> На боевом хранилище полный отчёт строить не надо — тысячи версий. Нужна головная
|
||||||
Версия: 2
|
> версия — `-NBegin -1`. Длинный отчёт в вывод не печатается: сузьте выборку
|
||||||
Пользователь: Admin
|
> параметрами ниже.
|
||||||
Дата создания: 22.08.2026
|
|
||||||
Комментарий:
|
|
||||||
Добавлен реквизит Вес
|
|
||||||
|
|
||||||
Изменены 2
|
|
||||||
Справочник.Номенклатура
|
|
||||||
```
|
|
||||||
|
|
||||||
> На боевом хранилище полный отчёт строить не надо — тысячи версий. Нужна головная версия —
|
|
||||||
> `-NBegin -1`.
|
|
||||||
|
|
||||||
Короткий отчёт печатается в вывод целиком, длинный — не печатается вовсе: называется путь к файлу
|
|
||||||
и способы сузить выборку. Обрезанный отчёт по версиям читался бы как полный ответ, и по куску
|
|
||||||
можно было бы заключить, что объект не менялся.
|
|
||||||
|
|
||||||
## dump-cfg — выгрузить версию в CF
|
## dump-cfg — выгрузить версию в CF
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# db-repo v1.9 — 1C configuration repository operations
|
# db-repo v1.10 — 1C configuration repository operations
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
# NB: движок только 1cv8 — ibcmd работу с хранилищем не поддерживает (нет такого режима).
|
# NB: движок только 1cv8 — ibcmd работу с хранилищем не поддерживает (нет такого режима).
|
||||||
<#
|
<#
|
||||||
@@ -1225,9 +1225,12 @@ try {
|
|||||||
# «Соединение не установлено» у сетевого хранилища означает не отсутствие реквизитов,
|
# «Соединение не установлено» у сетевого хранилища означает не отсутствие реквизитов,
|
||||||
# а недоступный сервер — трактовка «добавьте repository» увела бы не туда.
|
# а недоступный сервер — трактовка «добавьте repository» увела бы не туда.
|
||||||
if ($verdict -ne 0 -and $logText -match 'Соединение с хранилищем конфигурации не установлено') {
|
if ($verdict -ne 0 -and $logText -match 'Соединение с хранилищем конфигурации не установлено') {
|
||||||
if ($repo.Path -match '^(tcp|http)s?://') {
|
if ($repo.Path -match '^tcp://') {
|
||||||
Write-Host "[hint] сервер хранилища недоступен по адресу $($repo.Path)." -ForegroundColor Yellow
|
Write-Host "[hint] сервер хранилища недоступен по адресу $($repo.Path)." -ForegroundColor Yellow
|
||||||
Write-Host " Проверьте, запущен ли crserver и верен ли порт (по умолчанию 1542)." -ForegroundColor Yellow
|
Write-Host " Проверьте, запущен ли сервер хранилища и верен ли порт (по умолчанию 1542)." -ForegroundColor Yellow
|
||||||
|
} elseif ($repo.Path -match '^https?://') {
|
||||||
|
Write-Host "[hint] хранилище недоступно по адресу $($repo.Path)." -ForegroundColor Yellow
|
||||||
|
Write-Host " Проверьте веб-сервер и публикацию хранилища." -ForegroundColor Yellow
|
||||||
} else {
|
} else {
|
||||||
Write-Host "[hint] хранилище недоступно по пути $($repo.Path) — проверьте путь и реквизиты." -ForegroundColor Yellow
|
Write-Host "[hint] хранилище недоступно по пути $($repo.Path) — проверьте путь и реквизиты." -ForegroundColor Yellow
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# db-repo v1.9 — 1C configuration repository operations
|
# db-repo v1.10 — 1C configuration repository operations
|
||||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||||
# NB: движок только 1cv8 — ibcmd работу с хранилищем не поддерживает (нет такого режима).
|
# NB: движок только 1cv8 — ibcmd работу с хранилищем не поддерживает (нет такого режима).
|
||||||
"""Работа с хранилищем конфигурации 1С.
|
"""Работа с хранилищем конфигурации 1С.
|
||||||
@@ -1178,9 +1178,12 @@ def main():
|
|||||||
# «Соединение не установлено» у сетевого хранилища означает не отсутствие реквизитов,
|
# «Соединение не установлено» у сетевого хранилища означает не отсутствие реквизитов,
|
||||||
# а недоступный сервер — трактовка «добавьте repository» увела бы не туда.
|
# а недоступный сервер — трактовка «добавьте repository» увела бы не туда.
|
||||||
if verdict != 0 and "Соединение с хранилищем конфигурации не установлено" in log_text:
|
if verdict != 0 and "Соединение с хранилищем конфигурации не установлено" in log_text:
|
||||||
if re.match(r"^(tcp|http)s?://", repo["path"] or ""):
|
if re.match(r"^tcp://", repo["path"] or ""):
|
||||||
print("[hint] сервер хранилища недоступен по адресу %s." % repo["path"])
|
print("[hint] сервер хранилища недоступен по адресу %s." % repo["path"])
|
||||||
print(" Проверьте, запущен ли crserver и верен ли порт (по умолчанию 1542).")
|
print(" Проверьте, запущен ли сервер хранилища и верен ли порт (по умолчанию 1542).")
|
||||||
|
elif re.match(r"^https?://", repo["path"] or ""):
|
||||||
|
print("[hint] хранилище недоступно по адресу %s." % repo["path"])
|
||||||
|
print(" Проверьте веб-сервер и публикацию хранилища.")
|
||||||
else:
|
else:
|
||||||
print("[hint] хранилище недоступно по пути %s — проверьте путь и реквизиты."
|
print("[hint] хранилище недоступно по пути %s — проверьте путь и реквизиты."
|
||||||
% repo["path"])
|
% repo["path"])
|
||||||
|
|||||||
Reference in New Issue
Block a user