Начало работы

Конфигурация

Режимы подключения к базе 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, либо не указывайте флаг.

Аутентификация

Три способа задать учетные данные (по приоритету):

  1. Флаги CLI: --user и --password (или --auth NAME=USER:PASS в мультибазовом режиме)
  2. Переменные окружения: MCP_1C_USER и MCP_1C_PASSWORD
  3. Без аутентификации (если 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. Находит платформу 1С автоматически
  2. Устанавливает расширение MCP_Polling. На серверах Linux без графической оболочки установка выполняется через ibcmd, а при его отсутствии автоматически используется Конфигуратор (DESIGNER); учётные данные информационной базы передаются при необходимости (v2.29.0)
  3. Расширение содержит модуль MCP_PollingClient и регламентное задание MCP_PollingJob
  4. Авторестарт при сбое: 3 попытки, интервал 60 секунд
  5. Настройки подключения встраиваются в код модуля
ПараметрОписание
--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 URLURL 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. Проверка

  1. Запустите AI-клиент - MCP-сервер стартует и слушает :9090
  2. Регламентное задание автоматически начинает polling
  3. В журнале регистрации 1С: "MCP.Polling: polling loop started"
  4. Проверка здоровья: curl http://localhost:9090/health

HTTP-эндпоинты

ЭндпоинтМетодОписание
/pollGETLong poll, таймаут 25 сек. 200 + JSON при наличии задачи, 204 если задач нет
/result/{id}POSTРезультат выполнения задачи. 200 при успехе, 404 если задача не найдена
/healthGETПроверка здоровья сервера. Без авторизации

Важно: /poll и /result требуют Basic Auth (--poll-user/--poll-password).

Сравнение режимов

КритерийHTTP-сервис (стандартный)Long Polling
Мин. версия платформы8.3.108.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. Откройте консоль администрирования серверов 1С (или утилиту RAC).
  2. Создайте профиль безопасности: кластер → Профили безопасности → Создать. Включите флаг «Профиль безопасного режима»; флаг «Полный доступ к интернет-ресурсам» оставьте выключенным.
  3. Добавьте в профиль разрешённый интернет-ресурс: Протокол: HTTP (или HTTPS, если соединение защищённое); Адрес: хост mcp-1c без протокола и порта (например, localhost); Порт: порт из --listen (например, 9090); Имя: любое уникальное.
  4. В свойствах информационной базы укажите этот профиль в поле «Профиль безопасности безопасного режима» (именно безопасного режима, оно управляет кодом расширения).
  5. Перезапустите сеансы базы: изменения профиля применяются после отключения последнего соединения.

Файловая база

  1. В 1С:Предприятии с правами администратора откройте: «Все функции» (или «Функции для технического специалиста») → Расширения конфигурации.
  2. Выберите расширение MCP_Polling.
  3. Снимите у него флажок «Безопасный режим».
  4. Перезапустите 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С запись уровня «Ошибка» с причиной и действиями.