feat(db-repo): сетевое хранилище проверено, различаем недоступный сервер

Установлен crserver 8.3.23, поднят на порту 1542 — сетевое хранилище перестало
быть непроверенным местом. Адрес tcp://<хост>[:<порт>]/<имя>, порт по умолчанию
1542; хранилище создаётся сервером по требованию. Весь цикл, файл списка
объектов и администрирование работают так же, как на файловом, и одинаково в
обоих портах. Отдельного поведения у сетевого хранилища не обнаружено.

Нашлась двусмысленность: недоступный сервер даёт «Соединение с хранилищем
конфигурации не установлено» — ровно то же сообщение, что и отсутствие
реквизитов. Прежняя подсказка «добавьте repository в реестр» в сетевом случае
уводила не туда. Теперь db-repo различает по схеме адреса и советует проверить
сервер и порт, а подсказка db-load-xml и db-load-git называет обе причины.

Документация больше не оговаривается «не проверено»: форма адреса подтверждена
на стенде.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-23 14:07:10 +03:00
co-authored by Claude Opus 5
parent 3cdba1f70c
commit 1c74843c05
8 changed files with 54 additions and 27 deletions
+8 -7
View File
@@ -33,7 +33,7 @@
// работать с базой, подключённой к хранилищу: платформа не примет от них ни одной
// операции конфигуратора.
"repository": {
"path": "\\\\srv01\\repo\\MyApp", // каталог хранилища или адрес сервера хранилища
"path": "\\\\srv01\\repo\\MyApp", // каталог или tcp://srv01:1542/MyApp
"user": "Ivanov",
"password": ""
},
@@ -115,7 +115,7 @@
| Поле | Тип | Обяз. | Описание |
|------|-----|:-----:|----------|
| `repository.path` | string | да | Каталог хранилища или адрес сервера хранилища |
| `repository.path` | string | да | Каталог хранилища или `tcp://<хост>[:<порт>]/<имя>` |
| `repository.user` | string | нет | Пользователь хранилища. **Не наследуется** от `user` базы — задаётся явно |
| `repository.password` | string | нет | Пароль пользователя хранилища |
@@ -129,11 +129,12 @@
Пароль хранилища — такой же секрет, как `password` базы; `.v8-project.json` в `.gitignore`.
> **Сетевое хранилище.** Путь передаётся платформе как есть, поэтому подходит любая форма,
> которую она принимает, — в том числе адрес сервера хранилища. Конкретный синтаксис в
> документации, которой мы располагаем (7.4.15 «Команды работы с хранилищем конфигурации»,
> «Приложение 4»), не описан, и на серверном хранилище навык не проверялся: под рукой нет
> сервера хранилища. Файловое хранилище проверено полностью.
> **Сетевое хранилище.** Адрес — `tcp://<хост>[:<порт>]/<имя>`, порт по умолчанию 1542; хранилище
> обслуживает сервер хранилища (`crserver`). В документации, которой мы располагаем (7.4.15
> «Команды работы с хранилищем конфигурации», «Приложение 4»), эта форма не описана — проверена
> на стенде 8.3.23: цикл, файл списка объектов и администрирование работают так же, как на
> файловом. Недоступный сервер даёт «Соединение с хранилищем конфигурации не установлено» — то же
> сообщение, что и при отсутствии реквизитов.
`/db-repo update` отказывается работать, если у базы не объявлено `repository` и реквизиты не
переданы явно: на базе, **не** подключённой к хранилищу, эта команда молча заменяет всю