Конфигурация
Режимы подключения к базе 1С, мультибазовость, аутентификация, выгрузка конфигурации и long polling.
MCP-1C поддерживает два режима подключения к базе 1С:
Файловая база
Прямое подключение к .1CD файлу через HTTP-сервис 1С.
mcp-1c --base http://localhost:8080/hs/mcp-1c
Клиент-серверная база
Через HTTP-сервис, опубликованный на сервере 1С (Apache/IIS).
mcp-1c --base http://server:8080/erp/hs/mcp-1c \
--user Admin --password secret
Мультибазовость Расширенная
Расширенная версия позволяет подключить несколько баз 1С одновременно. Каждая база получает имя, по которому AI-ассистент выбирает нужную:
mcp-1c-advanced \
--base dev=http://localhost:8080/hs/mcp-1c \
--base prod=http://prod-server:8080/erp/hs/mcp-1c \
--auth dev=Admin:pass123 \
--auth prod=ReadOnly:readonly \
--dump dev=/path/to/dev/dump \
--default-base dev
Совет: Флаг
--default-baseзадает базу по умолчанию. Если не указан, используется первая.
Важно про
--cache-dir: в мультибазовом режиме это один общий флаг на все базы, префиксы видаимя=путьон не поддерживает (в отличие от--dump,--base,--reindex). Отдельный каталог на каждую базу не нужен: кэш и так раскладывается по своим подкаталогам по хэшу пути к дампу. Если указать--cache-dir имя=путь, сервер возьмет значение целиком строкой и путь окажется некорректным (на Windows это ошибка видаmkdir .\имя=D:). Задавайте один каталог без префикса, например--cache-dir D:/AI/.cache, либо не указывайте флаг.
Аутентификация
Три способа задать учетные данные (по приоритету):
- Флаги CLI:
--userи--password(или--auth NAME=USER:PASSв мультибазовом режиме) - Переменные окружения:
MCP_1C_USERиMCP_1C_PASSWORD - Без аутентификации (если HTTP-сервис 1С не требует авторизации)
Выгрузка конфигурации (--dump)
Для полнотекстового поиска по коду модулей (code_search(action: "text")) необходима выгрузка конфигурации в файлы:
# 1. Выгрузите конфигурацию из Конфигуратора:
# Конфигурация → Выгрузить конфигурацию в файлы...
# 2. Укажите путь при запуске:
mcp-1c --base http://localhost:8080/hs/mcp-1c \
--dump "C:\dumps\erp"
# Принудительная перестройка индекса (игнорирует кэш):
mcp-1c --base http://localhost:8080/hs/mcp-1c \
--dump "C:\dumps\erp" --reindex
Старт неблокирующий: MCP-сервер отвечает на подключение сразу, а поисковый индекс строится в фоне. Пока индекс не готов, поиск по коду и чтение модулей возвращают понятное сообщение «Идёт построение индекса базы, повторите запрос через несколько секунд» и становятся доступны по мере готовности. Индекс кэшируется на диске, поэтому повторный запуск использует готовый кэш и проходит практически мгновенно.
Long Polling Расширенная
Long polling позволяет подключить базу 1С без Apache/IIS. Go-сервер поднимает HTTP-эндпоинт, а 1С сама ходит за задачами через регламентное задание.
[Claude/Cursor] --stdio--> [mcp-1c-advanced] --HTTP :9090--> [1С polling client]
^ |
| v
TaskQueue <--- POST /result/{id} --- [Обработка запроса]
|
GET /poll (long poll, 25 сек)
Требования:
- Платформа 1С 8.3.23+ (регламентные задания в расширениях)
- Для автозапуска: клиент-серверный режим (1С Сервер + PostgreSQL/MS SQL)
- В файловом режиме регламентные задания работают только при открытом клиенте 1С
В режиме фонового опроса анализ подсистем (analyze_subsystems) работает без выгрузки конфигурации: поиск объектов вне подсистем, состав и пересечения подсистем доступны прямо по живой базе (v2.29.0).
Шаг 1. Установка расширения
Файловая база:
mcp-1c-advanced --install-polling /path/to/database \
--poll-user myuser \
--poll-password mypassword
Клиент-серверная база:
mcp-1c-advanced --install-polling "SERVER01\MyDatabase" \
--server \
--poll-user myuser \
--poll-password mypassword \
--db-user admin \
--db-password dbpass
Что происходит при установке:
- Находит платформу 1С автоматически
- Устанавливает расширение
MCP_Polling. На серверах Linux без графической оболочки установка выполняется черезibcmd, а при его отсутствии автоматически используется Конфигуратор (DESIGNER); учётные данные информационной базы передаются при необходимости (v2.29.0) - Расширение содержит модуль
MCP_PollingClientи регламентное заданиеMCP_PollingJob - Авторестарт при сбое: 3 попытки, интервал 60 секунд
- Настройки подключения встраиваются в код модуля
| Параметр | Описание |
|---|---|
--poll-user / --poll-password | Учетные данные Basic Auth между Go-сервером и 1С |
--db-user / --db-password | Пользователь базы 1С для DESIGNER |
--server | Серверный режим подключения |
--platform /path | Путь к платформе 1С (если не определяется автоматически) |
--platform-version | Версия платформы 1С (например 8.3.13). Определяется из пути, если не указана. Минимум: 8.3.10. По умолчанию: авто |
--poll-server-url URL | URL Go-сервера (по умолчанию http://localhost:9090) |
Шаг 2. Настройка AI-клиента
Флаг --base объявляет базу данных в формате NAME=URL. Схема poll:// указывает MCP-серверу маршрутизировать запросы через очередь задач вместо прямого HTTP-подключения к 1С. Флаг --listen задает адрес HTTP-сервера, к которому 1С будет подключаться для получения задач. Оба флага обязательны: --base mydb=poll:// объявляет polling-базу, --listen :9090 запускает HTTP-сервер.
Файл: claude_desktop_config.json
{
"mcpServers": {
"mcp-1c": {
"command": "/path/to/mcp-1c-pro",
"args": [
"--base", "mydb=poll://",
"--listen", ":9090",
"--poll-user", "myuser",
"--poll-password", "mypassword"
]
}
}
}
Для Расширенной версии замените mcp-1c-pro на mcp-1c-advanced.
Шаг 3. Проверка
- Запустите AI-клиент - MCP-сервер стартует и слушает
:9090 - Регламентное задание автоматически начинает polling
- В журнале регистрации 1С:
"MCP.Polling: polling loop started" - Проверка здоровья:
curl http://localhost:9090/health
HTTP-эндпоинты
| Эндпоинт | Метод | Описание |
|---|---|---|
/poll | GET | Long poll, таймаут 25 сек. 200 + JSON при наличии задачи, 204 если задач нет |
/result/{id} | POST | Результат выполнения задачи. 200 при успехе, 404 если задача не найдена |
/health | GET | Проверка здоровья сервера. Без авторизации |
Важно:
/pollи/resultтребуют Basic Auth (--poll-user/--poll-password).
Сравнение режимов
| Критерий | HTTP-сервис (стандартный) | Long Polling |
|---|---|---|
| Мин. версия платформы | 8.3.10 | 8.3.23 |
| Требует Apache/IIS | Да | Нет |
| Файловый режим | Работает всегда | Только при открытом клиенте 1С |
| Автоматический запуск | После публикации | Клиент-серверный: да, файловый: нет |
| Задержка | ~50 мс | До 25 сек на первый запрос, далее мгновенно |
| Настройка | Сложнее (Apache/IIS + публикация) | Одна команда |
Отладка
- Журнал регистрации 1С: события с источником
"MCP.Polling" - Проверка здоровья:
curl http://localhost:9090/health - Ручная проверка polling:
curl -u user:pass http://localhost:9090/poll --max-time 30 - Регламентное задание: Администрирование → Регламентные и фоновые задания →
MCP_PollingJob - Файловый режим: регламентные задания работают только при открытом клиенте 1С
Ошибка «Установлен безопасный режим. Выполнение операции запрещено»
Расширение опроса (MCP_Polling) создаёт исходящее HTTP-соединение к серверу mcp-1c. В безопасном режиме 1С это запрещено, и опрос завершается этой ошибкой. Нужно разрешить расширению это соединение. Способ зависит от типа базы.
Клиент-серверная база
- Откройте консоль администрирования серверов 1С (или утилиту RAC).
- Создайте профиль безопасности: кластер → Профили безопасности → Создать. Включите флаг «Профиль безопасного режима»; флаг «Полный доступ к интернет-ресурсам» оставьте выключенным.
- Добавьте в профиль разрешённый интернет-ресурс: Протокол: HTTP (или HTTPS, если соединение защищённое); Адрес: хост mcp-1c без протокола и порта (например,
localhost); Порт: порт из--listen(например, 9090); Имя: любое уникальное. - В свойствах информационной базы укажите этот профиль в поле «Профиль безопасности безопасного режима» (именно безопасного режима, оно управляет кодом расширения).
- Перезапустите сеансы базы: изменения профиля применяются после отключения последнего соединения.
Файловая база
- В 1С:Предприятии с правами администратора откройте: «Все функции» (или «Функции для технического специалиста») → Расширения конфигурации.
- Выберите расширение
MCP_Polling. - Снимите у него флажок «Безопасный режим».
- Перезапустите 1С:Предприятие.
«Защиту от опасных действий» трогать не нужно: это другой механизм, на эту ошибку он не влияет.
Автоматическая настройка профиля безопасности
Доступно с v2.20.0.
Команда --configure-security-profile автоматизирует ручную процедуру выше для клиент-серверной базы: через утилиту 1С rac она создаёт (или переиспользует) профиль безопасности, разрешает в нём интернет-ресурс сервера опроса и назначает профиль информационной базе. Значение флага задаёт адрес запущенного сервера администрирования ras (например, localhost:1545). Для клиент-серверной базы команде нужны --server, --infobase-name и --poll-server-url.
mcp-1c-advanced --configure-security-profile localhost:1545 \
--server --infobase-name AccBase \
--poll-server-url http://10.0.0.5:9090
Перед изменениями команда показывает план и спрашивает подтверждение. Чтобы заранее увидеть точные команды rac (пароли скрыты) и ничего не менять, добавьте --dry-run:
mcp-1c-advanced --configure-security-profile localhost:1545 \
--server --infobase-name AccBase \
--poll-server-url http://10.0.0.5:9090 --dry-run
Параметры команды
| Флаг | Назначение |
|---|---|
--configure-security-profile <ras> | Включает команду. Значение: адрес сервера администрирования ras, например localhost:1545. |
--server | Клиент-серверная база (обязателен для автоматической настройки). |
--infobase-name <имя> | Имя информационной базы в кластере, к которой привязывается профиль (обязателен для клиент-серверной базы). |
--poll-server-url <URL> | Адрес сервера опроса, который нужно разрешить в профиле (по умолчанию http://localhost:9090). |
--rac-path <путь> | Путь к утилите rac (переменная окружения MCP_1C_RAC_PATH). По умолчанию ищется в $PATH и в каталоге установки сервера 1С. |
--profile-name <имя> | Имя создаваемого или переиспользуемого профиля (по умолчанию mcp-1c). |
--cluster-user / --cluster-pwd | Администратор кластера (если в кластере включено администрирование). Пароль не пишется на диск и скрыт в выводе. |
--infobase-user / --infobase-pwd | Администратор информационной базы (если включено администрирование). Пароль не пишется на диск и скрыт в выводе. |
--dry-run | Показать план и точные команды rac (пароль скрыт) без выполнения. |
--yes | Пропустить запрос подтверждения (для автоматизации). |
- На Windows
racнаходится автоматически (в том числе вProgram Files (x86)\1cv8\<версия>\bin), поэтому--rac-pathна стандартной установке обычно указывать не нужно. - Для файловой базы команда ничего не меняет, а печатает ручные шаги (см. процедуру для файловой базы выше). Если
racне найден, команда тоже печатает ручные шаги и не прерывается с ошибкой.
Важно: Если в течение 60 секунд после запуска сервера опроса (
--listen) ни один клиент 1С не обратился, сервер один раз пишет в журнал (stderr) подсказку, что причиной может быть безопасный режим. После того как вы разрешили соединение, переустановите расширение командой--install-polling: тогда при блокировке безопасным режимом расширение запишет в журнал регистрации 1С запись уровня «Ошибка» с причиной и действиями.