Конфигурация
Режимы подключения к базе 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-сервер отвечает на подключение сразу, а поисковый индекс строится в фоне. В Расширенной и Профессиональной версиях, пока индекс строится, поиск по коду отвечает сообщением «Индекс базы ещё не готов. Он строится один раз после запуска сервера, время зависит от размера конфигурации. Повторите запрос позже», такой текст у сообщения с версии 2.41.0. Модуль объекта или менеджера на базе, подключённой к 1С, в это время запрашивается у самой 1С и приходит, если она его отдаёт, а чтение модуля, который сервер берёт только из выгрузки, например общего, отвечает отказом с тем же сообщением в тексте ошибки. Если сборка индекса прервалась, эти версии отвечают иначе: «Не удалось построить индекс базы» с причиной и просьбой перезапустить сервер. В Открытой версии поиск по выгрузке, пока индекс строится, отвечает ошибкой «Поиск по выгрузке не выполнен» с причиной search: search index is building, please retry. Индекс кэшируется на диске, поэтому повторный запуск использует готовый кэш и проходит практически мгновенно.
В Расширенной и Профессиональной версиях локальную выгрузку можно перечитывать периодически, не дожидаясь вызова reload_dump: флаг --local-dump-resync-interval или переменная MCP_1C_LOCAL_DUMP_RESYNC_INTERVAL. По умолчанию значение равно нулю, цикл не запускается вовсе, и без явно заданного значения поведение прежнее. Значение пишется длительностью с единицей измерения (15m, 1h30m), голое число секунд здесь не принимается. Сверка идёт только по файлам .bsl (относительный путь, время изменения, размер), поэтому правка, не затронувшая ни одного .bsl, например изменение только в XML формы, перестроения не вызывает. У каждой такой выгрузки свой независимый таймер, а сами перестроения идут по одному на процесс: база, которой слот занят, пропускает такт и повторяет попытку на следующем, а не ждёт.
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 сек)
Требования:
- Для команды
--install-pollingдействует проверка платформы от 8.3.23 (регламентные задания в расширениях). Это порог конкретного установщика, а не общая матрица совместимости поставки.- Для автозапуска: клиент-серверный режим (1С Сервер + PostgreSQL/MS SQL)
- В файловом режиме регламентные задания работают только при открытом клиенте 1С
В режиме фонового опроса анализ подсистем (analyze_subsystems) работает без выгрузки конфигурации: поиск объектов вне подсистем, состав и пересечения подсистем доступны прямо по живой базе (v2.29.0).
Шаг 1. Установка расширения
Для текущей поставки v2.43.2 сначала обновите MCP_HTTPService на месте по быстрому старту. Для документов, печати и выгрузки через опрос в одной базе нужны оба расширения MCP_HTTPService и MCP_Polling версии 0.10.2. Команда --install-polling ниже настраивает только клиент опроса и не заменяет обновление HTTP-расширения.
Обновились на 2.33.0? Переустановите расширение опроса
До версии 2.33.0 два расширения продукта конфликтовали между собой: расширение фонового опроса (
--install-polling) и расширение HTTP-сервиса (--install). Когда в одной базе оказывались оба, то из них, которое поставили вторым, платформа 1С не применяла вовсе и об этом не сообщала.Выглядело это исправно: установка доходила до конца, оба расширения числились в базе активными, установщик выводил те же строки, что и при успешной установке, ошибок не было ни у установщика, ни в журнале регистрации. Фактически опрос не шёл, потому что в базу не попадали ни регламентное задание
MCP_PollingJob, ни модули расширения опроса.Что сделать. Обновите бинарник до 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 секунд
- Настройки подключения встраиваются в код модуля
- С версии 2.41.0 после успешной установки печатает напоминание: безопасный режим 1С может не пропустить запрос расширения к серверу опроса. Там же названы способы это исправить для клиент-серверной и для файловой базы, подробно они описаны ниже
| Параметр | Описание |
|---|---|
--poll-user / --poll-password | Учетные данные Basic Auth между Go-сервером и 1С. Без них или с паролем короче 12 символов установка отказывает, не начавшись, если явно не отказаться от проверки подлинности флагом --poll-insecure-no-auth |
--db-user / --db-password | Пользователь информационной базы для установки: его получает Конфигуратор (DESIGNER) или ibcmd |
--server | Клиент-серверная база: значение --install-polling читается как адрес сервер\база |
--platform /path | Путь к платформе 1С (если не определяется автоматически) |
--platform-version | Версия платформы 1С (например 8.3.27). Определяется из пути, если не указана. Порог проверки --install-polling: 8.3.23; более ранняя платформа отклоняется. Порог legacy-команды Открытой редакции mcp-1c --install — 8.3.10. Это проверки конкретных установщиков, не общие требования ко всем возможностям. В текущих Расширенной и Профессиональной редакциях --install отказывает до изменения базы; используйте обновление на месте. Если версию определить не удалось, проверка не выполняется и установка печатает предупреждение. На установку клиента опроса флаг действует с версии 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 может находиться в каталоге платформы, например /opt/1cv8/x86_64/8.3.27.2130/ibcmd, и отсутствовать в $PATH. Начиная с версии 2.33.0 такие каталоги входят в поиск, поэтому при установке платформы в её обычный каталог настраивать для этого ничего не нужно.
Задавайте MCP_1C_IBCMD_PATH тогда, когда платформа установлена в нестандартный каталог. Пример ниже для bash.
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-сервер опроса. Если его не задать, при базе poll:// сервер опроса слушает :9090. 1С подключается за задачами по адресу, который обычно задаёт при установке флаг --poll-server-url, и этот адрес должен вести к серверу опроса. Серверу опроса нужны учётные данные: --poll-user и --poll-password (пароль не короче 12 символов) или --poll-auth ИМЯ=ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ для каждой базы. Без них процесс не запускается, если явно не отказаться от проверки подлинности флагом --poll-insecure-no-auth с точным значением i-understand-the-poll-endpoint-will-be-unauthenticated; такой отказ не принимается, если заданы учётные данные опроса или сервер обслуживает больше одной базы poll://. Значения должны совпадать с теми, с которыми обращается расширение, обычно это значения, заданные при установке командой --install-polling.
Файл: 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 - Опрос запускает регламентное задание
MCP_PollingJob. Если оно не запущено или безопасный режим 1С блокирует исходящий запрос расширения, опроса не будет, см. раздел про безопасный режим - В журнале регистрации 1С, событие
MCP.Polling: запись уровня «Информация» с текстомMCP Polling: starting, server=…, source=… - Проверка здоровья:
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, если соединение защищённое); Адрес: хост из адреса, по которому расширение обращается к серверу опроса (обычно его задаёт
--poll-server-urlпри установке), без протокола и порта (например,localhost); Порт: порт из того же адреса (например, 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не найден, команда тоже печатает ручные шаги и не прерывается с ошибкой.
Важно: С версии 2.41.0 сразу после успешной установки команда
--install-pollingсама напоминает, что безопасный режим 1С может не пропустить запрос расширенияMCP_Pollingк серверу опроса, и подсказывает, как быть: для клиент-серверной базы настроить профиль безопасности (флаг--configure-security-profile), для файловой снять безопасный режим с расширенияMCP_Polling. Кроме того, если в течение 60 секунд после запуска сервера опроса ни один клиент 1С не обратился, сервер один раз пишет в журнал (stderr) подсказку: причиной может быть безопасный режим, а ещё регламентное заданиеMCP_PollingJobможет быть не запущено. После того как вы разрешили соединение, переустановите расширение командой--install-polling: тогда при блокировке безопасным режимом расширение запишет в журнал регистрации 1С запись уровня «Ошибка» с причиной и действиями.