Мультибазовость в Расширенной редакции
- multibase
- расширенная
- a3
Один процесс mcp-1c-advanced подключается к нескольким базам 1С одновременно. Конфигурация через --base, отдельные подключения, общий MCP-сервер.
В реальной работе разработчик редко сидит ровно над одной базой. Доработка тиражного решения часто требует прыгать между несколькими стендами: dev-копия, тестовая, эталонный дамп, регрессионный набор. Запускать отдельный процесс mcp-1c-advanced на каждую базу неудобно: разные порты, разные настройки клиентов AI-ассистента, путаница в идентификаторах.
В Расширенной редакции есть мультибазовый режим. Один процесс подключается ко всем нужным базам сразу и предоставляет MCP-инструмент list_bases для переключения контекста.
Конфигурация
Базы перечисляются через повторяющийся флаг --base:
mcp-1c-advanced \
--base "dev=Srvr=localhost;Ref=acc-dev" \
--base "test=Srvr=test-server;Ref=acc-test" \
--base "ref=File=./baseline-dump"
Каждая запись это пара имя=строка_подключения. Имя выбирается произвольно, оно используется AI-ассистентом для адресации запросов. Строка подключения совпадает с тем, что обычно указывается в файлах настроек 1С: серверная база, файловая, или путь к выгруженному дампу.
Как это работает
При старте процесс открывает подключение к каждой базе и кэширует метаданные. Кэш делается лениво и индивидуально на базу, поэтому время старта не растёт линейно от количества баз. Bleve-индекс полнотекстового поиска тоже инициализируется на каждую базу отдельно.
В режиме MCP-сервера в каждом запросе клиент указывает base_id. Сервер маршрутизирует запрос к нужному подключению. Если AI забыл указать базу, в ответе приходит подсказка с доступными именами.
Список доступных баз
MCP-инструмент list_bases возвращает массив с именем, типом подключения (server/file/dump) и состоянием кэша:
{
"bases": [
{"name": "dev", "type": "server", "cached": true},
{"name": "test", "type": "server", "cached": false},
{"name": "ref", "type": "dump", "cached": true}
]
}
AI-ассистент через этот инструмент видит окружение и сам решает, в какой базе выполнять конкретный запрос. Например, для регрессионного теста он сначала спросит метаданные у ref, потом проверит то же место в dev.
Когда полезно
- Разработка под несколько типовых одновременно: одна база БП, одна ЗУП, одна УТ.
- Работа над миграцией: исходная конфигурация в одной базе, новая в другой, дамп в третьей.
- Параллельный анализ нескольких клиентских внедрений: каждое внедрение как отдельная база, общий процесс mcp-1c-advanced для всех.
Ограничения
Подключения держатся постоянно. Если база недоступна, процесс не падает, но запросы к ней будут возвращать ошибку до восстановления связи. Кэш метаданных не инвалидируется автоматически при изменении конфигурации, для перечитывания используется refresh_cache.