Конфигурация
Режимы подключения к базе 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задает базу по умолчанию. Если не указан, используется первая.
Важно с v2.30.0: имя базы в
--auth,--dumpи--reindexдолжно совпадать с именем из--base. Опечатка в имени раньше проходила молча, и база поднималась без выгрузки или без учётных данных, а теперь сервер останавливается на старте с сообщениемConfiguration error: dump называет базу "имя", которая не настроена. Подробности и разбор пограничного случая с короткой формой--dump ПУТЬесть в справочнике CLI.
Важно про
--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. Установка расширения
Обновились на 2.33.0? Переустановите расширение опроса
До версии 2.33.0 два расширения продукта конфликтовали между собой: расширение фонового опроса (
--install-polling) и расширение HTTP-сервиса (--install). Когда в одной базе оказывались оба, то из них, которое поставили вторым, платформа 1С не применяла вовсе и об этом не сообщала.Выглядело это исправно: установка доходила до конца, оба расширения числились в базе активными, установщик выводил те же строки, что и при успешной установке, ошибок не было ни у установщика, ни в журнале регистрации. Фактически опрос не шёл, потому что в базу не попадали ни регламентное задание
MCP_PollingJob, ни модули расширения опроса. Замерено на платформе 8.3.27.2130.Что сделать. Обновите бинарник до 2.33.0 и повторите команду
--install-pollingс теми же параметрами, что и при первой установке. Адрес сервера и учётные данные опроса установщик записывает внутрь расширения, поэтому передать их нужно заново. Расширение HTTP-сервиса переустанавливать не требуется.Удалять расширение перед этим не нужно. Установщик кладёт новую версию поверх старой, и недостающие объекты возвращаются в базу. Отдельная команда удаления расширения на части платформ открывает окно Конфигуратора и подвисает, поэтому мы её не применяем заранее и вам не советуем.
Кого это касается. Всех, у кого расширение опроса установлено, а не только тех, у кого сейчас стоят оба. Пока в базе лежит расширение опроса из более ранней версии, тот же конфликт возникнет и позже, если расширение HTTP-сервиса поставят в эту же базу. Переустановка снимает эту возможность заранее. Если расширение опроса вы не ставили, делать ничего не нужно.
Как убедиться, что помогло. Главное меню → Все функции (или «Функции для технического специалиста») → Стандартные → Регламентные и фоновые задания. Задание
MCP_PollingJobдолжно появиться в списке. Если пункта «Все функции» в меню нет, включите его: Сервис → Параметры.
Файловая база:
mcp-1c-advanced --install-polling /path/to/database \
--poll-user myuser \
--poll-password mypassword12
Клиент-серверная база:
mcp-1c-advanced --install-polling "SERVER01\MyDatabase" \
--server \
--poll-user myuser \
--poll-password mypassword12 \
--db-user admin \
--db-password dbpass
Что происходит при установке:
- Находит платформу 1С автоматически
- Устанавливает расширение
MCP_Polling. Механизм зависит от типа базы. Клиент-серверная база (флаг--server) всегда ставится через Конфигуратор (DESIGNER). Для файловой базы сначала ищетсяibcmd, и только если он не найден, установка переключается на Конфигуратор. Учётные данные информационной базы передаются при необходимости. Описание снято с версии 2.33.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.27). Определяется из пути, если не указана. Минимум для --install-polling: 8.3.23, установка на более раннюю платформу отклоняется. У команды --install минимум другой, 8.3.10. Если версию определить не удалось, проверка не выполняется и установка печатает предупреждение. На установку клиента опроса флаг действует с версии 2.33.0. По умолчанию: авто |
--poll-server-url URL | URL Go-сервера (по умолчанию http://localhost:9090) |
MCP_1C_IBCMD_PATH (переменная окружения) | Полный путь к ibcmd для установки в файловую базу. Если переменная задана, путь берётся из неё и больше нигде не ищется. Если не задана, ibcmd ищется по имени в каталогах $PATH, а затем в известных каталогах установки платформы 1С. Третий шаг добавлен в версии 2.33.0 |
Установка на сервере Linux без графической оболочки
На серверной установке платформы из типового tarball исполняемый файл ibcmd лежит в каталоге платформы и на $PATH не попадает. Замерено на двух хостах, Debian 13 и Ubuntu 24.04, платформа 8.3.27.2130: путь вида /opt/1cv8/x86_64/8.3.27.2130/ibcmd. Начиная с версии 2.33.0 такие каталоги входят в поиск, поэтому при установке платформы в её обычный каталог настраивать для этого ничего не нужно.
Задавайте MCP_1C_IBCMD_PATH тогда, когда платформа установлена в нестандартный каталог.
MCP_1C_IBCMD_PATH=/opt/1cv8/x86_64/8.3.27.2130/ibcmd \
mcp-1c-advanced --install-polling /path/to/database \
--poll-user myuser \
--poll-password mypassword12
Если ibcmd не найден ни переменной MCP_1C_IBCMD_PATH, ни в $PATH, ни в каталогах установки платформы, установка уходит на Конфигуратор, а он на машине без графического окружения может не запуститься. В этом случае установка печатает предупреждение, перечисляет полным списком каталоги, в которых искала, и показывает, как задать путь вручную. Для клиент-серверной базы Конфигуратор используется всегда, поэтому на неё эта переменная не влияет.
Шаг 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", "mypassword12"
]
}
}
}
Для Расширенной версии замените 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С запись уровня «Ошибка» с причиной и действиями.