> For the complete documentation index, see [llms.txt](https://docs.onerpa.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.onerpa.ru/mcp-servery-1c/servery/code-checker.md).

# 1CCodeChecker

Проверка, анализ и работа с кодом и документацией 1С через сервис 1С:Напарник.

## Назначение

1CCodeChecker — MCP-сервер, построенный на базе [FastMCP](https://github.com/jlowin/fastmcp), который интегрируется с сервисом **1С:Напарник** (code.1c.ai). Предоставляет ИИ-ассистенту набор из **11 инструментов** для полноценной работы с экосистемой 1С:Предприятие:

* Проверка и анализ кода (синтаксис, логика, производительность, стиль)
* Переписывание и модификация кода с автоматической валидацией
* Поиск по документации платформы с поддержкой версий
* Работа с базой знаний ИТС (поиск, чтение документов, стандарты)
* Сравнение документации между версиями платформы
* Поиск по документации прикладных конфигураций (ERP, БП, УТ и др.)
* Свободные вопросы к ИИ-ассистенту 1С:Напарник

## Возможности

ИИ получает инструменты для:

* **Проверки кода** — синтаксические ошибки, логические проблемы, производительность
* **Ревью кода** — стиль, стандарты ИТС, именование, структура, комментирование
* **Переписывания кода** — ИИ предлагает улучшенную версию с объяснениями
* **Модификации кода** — точное выполнение инструкций пользователя
* **Поиска по документации платформы** — с указанием версии (v8.3.x, v8.5.x)
* **Поиска по базе знаний ИТС** — стандарты, методики, статьи
* **Чтения документов ИТС** — получение полного содержимого по ID
* **Сравнения версий документации** — что изменилось между версиями платформы
* **Поиска по конфигурациям** — документация прикладных решений
* **Свободных вопросов** — любые вопросы по разработке на 1С

## Примеры использования

* "Проверь этот код на ошибки" → `check_1c_code`
* "Проведи code review этого модуля" → `review_1c_code`
* "Перепиши этот код, улучши производительность" → `rewrite_1c_code`
* "Добавь обработку ошибок в эту процедуру" → `modify_1c_code`
* "Что такое РегистрНакопления в 1С?" → `onec_help`
* "Найди в документации v8.3.25 описание HTTP-соединений" → `search_1c_documentation`
* "Какие стандарты именования переменных в ИТС?" → `its_help`
* "Что изменилось между v8.3.25 и v8.5.1?" → `diff_1c_documentation_versions`
* "Как работает проведение документов в ERP?" → `config_help`
* "Объясни разницу между ОбщийМодуль и МодульОбъекта" → `ask_1c_ai`

## Требования

* Docker Engine или Docker Desktop с поддержкой Linux-контейнеров
* Лицензионный ключ MCP (`LICENSE_KEY`)
* **Токен 1С:Напарник** (`ONEC_AI_TOKEN`, только для подписчиков ИТС)
* Доступ в интернет к code.1c.ai

{% hint style="info" %}
Токен 1С:Напарник доступен **подписчикам ИТС**. Оформить подписку можно на [developer.1c.ru](https://developer.1c.ru/). Если у вас нет подписки, используйте [SyntaxCheckServer](/mcp-servery-1c/servery/syntax-check-server.md) как альтернативу для проверки синтаксиса.
{% endhint %}

## Доступные инструменты MCP

ИИ получает **11 инструментов**:

### Анализ и работа с кодом

| Инструмент        | Описание                                                           |
| ----------------- | ------------------------------------------------------------------ |
| `ask_1c_ai`       | Свободный вопрос к ИИ 1С:Напарник (с поддержкой контекста диалога) |
| `check_1c_code`   | Проверка кода: синтаксис, логика, производительность               |
| `review_1c_code`  | Code review: стиль, стандарты ИТС, именование, структура           |
| `rewrite_1c_code` | Переписывание кода ИИ с улучшениями и объяснениями                 |
| `modify_1c_code`  | Модификация кода по явной инструкции пользователя                  |

### Документация и база знаний

| Инструмент                       | Описание                                                                               |
| -------------------------------- | -------------------------------------------------------------------------------------- |
| `search_1c_documentation`        | Поиск в документации платформы (с указанием версии)                                    |
| `onec_help`                      | **Устаревший алиас** `search_1c_documentation`; сохранён для существующих конфигураций |
| `its_help`                       | Поиск по базе знаний ИТС (стандарты, методики, статьи)                                 |
| `fetch_its`                      | Чтение содержимого документа ИТС по ID                                                 |
| `diff_1c_documentation_versions` | Сравнение документации между версиями платформы                                        |
| `config_help`                    | Поиск документации по прикладным конфигурациям (ERP, БП, ЗУП и др.)                    |

Подробное описание каждого инструмента — в разделе [Инструменты](/mcp-servery-1c/servery/code-checker/instrumenty.md).

В текущем beta-канале пять инструментов с кодом принимают `files`: сервер читает до 20 файлов из смонтированных read-only корней `ONEC_AI_WORKSPACE_ROOTS`, возвращает их SHA-256 в `sources` и не записывает workspace. Это надёжнее передачи большого модуля inline. Абсолютный путь с машины клиента разрешается только через явный `ONEC_AI_WORKSPACE_PATH_MAP`; относительный путь читается от объявленного корня. См. [Инструменты](https://docs.onerpa.ru/mcp-servery-1c/servery/pages/WnpyioRwKeeESgo9TMwY#чтение-исходников-из-workspace-beta) и [Установку](https://docs.onerpa.ru/mcp-servery-1c/servery/pages/2FHaTdgGS2Nzh9mZLpOH#beta-с-чтением-исходников-из-workspace).

`ONEC_AI_WORKSPACE_PATH_MAP` проверен непосредственно в опубликованном `light-beta`.

Beta-образы от 2026-08-24 (`latest-beta`, `light-beta`, `arm64-beta`) добавили повторы upstream-транспорта. Причина измерена: проверка модуля на 163 КБ дважды падала с пустым «Ошибка сети при отправке сообщения: » — это `httpx.ReadTimeout`, у которого пустой `str()`. `ONEC_AI_TIMEOUT` (30 с) был таймаутом чтения SSE-потока, поэтому тридцать секунд молчания upstream убивали операцию, которую бюджет ещё разрешал. Теперь границей чтения потока служит только остаток бюджета операции, а сам бюджет по умолчанию — 300 секунд. Транспортный сбой в запросе или в раунде подтверждения повторяется до `ONEC_AI_TRANSPORT_RETRIES` раз, каждый раз на свежей дискуссии (сломанная освобождается; переиспользованная дискуссия не повторяется никогда) и никогда за пределами дедлайна. Число попыток видно в диагностике, в причине отката и в телеметрии, а транспортная ошибка называет свой класс исключения.

## Порт

**8007**

## Образ Docker

```
comol/1c-code-checker:latest
```

Stable: `latest`, `arm64`; beta: `latest-beta`, `light-beta`, `arm64-beta`. В stable варианта `light` нет. Система плагинов ниже относится к новым beta-сборкам. Подробнее: [Каналы образов](/mcp-servery-1c/kanaly-obrazov.md).

## Быстрый старт

```powershell
docker run -d -p 8007:8007 `
  --name 1c_code_checker `
  -e LICENSE_KEY=YOUR_LICENSE_KEY `
  -e ONEC_AI_TOKEN=YOUR_NAPARNIK_TOKEN `
  comol/1c-code-checker:latest
```

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

```json
{
  "mcpServers": {
    "1c-code-checker-mcp": {
      "url": "http://localhost:8007/mcp",
      "connection_id": "1c_code_checker_001"
    }
  }
}
```

## Режимы вызова инструментов

Сервер поддерживает два режима работы (переменная `MCP_TOOL_CALL_MODE`):

* **`direct`** (по умолчанию) — инструменты вызывают upstream-инструменты 1С.ai напрямую для более точных результатов
* **`standard`** — все инструменты работают через промпты (текстовые запросы)

Если direct-путь недоступен, ответ приходит промпт-путём и несёт машиночитаемое `fallback_reason` — какая возможность была затронута и в какое состояние разрешилась.

Подробнее — в разделе [Конфигурация](/mcp-servery-1c/servery/code-checker/konfiguraciya.md).

## Правки кода — это предложения

`rewrite_1c_code` и `modify_1c_code` возвращают предложение с хешем вашего исходника, побайтно точным diff и статусом валидации (`passed`, `failed`, `not_performed`, `unavailable`). **Сервер ничего не применяет**: применить правку можно только к исходнику с совпадающим `original_hash` и только при `safe_to_apply`. Подробнее — в разделе [Инструменты](/mcp-servery-1c/servery/code-checker/instrumenty.md).

## HTTP-эндпоинты

| Эндпоинт            | Назначение                                                                                                          |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `/mcp`              | MCP (streamable-http; при `USESSE=true` — SSE)                                                                      |
| `/health`           | Живость и состояние конфигурации/upstream; не выполняет сетевой вызов к 1С.ai                                       |
| `/ready`            | Готовность принимать трафик: конфигурация прошла проверку и обязательные возможности доступны                       |
| `/plugins`          | Загруженные плагины, хуки, ошибки и текущая эпоха                                                                   |
| `/plugins/reload`   | Атомарно перечитать каталог плагинов; `409`, если новый набор не загружается целиком                                |
| `/metrics/sessions` | Счётчики транспортных сессий MCP                                                                                    |
| `/release`          | Идентичность выпуска: версия, переданный оператором digest и его состояние, версия upstream-контракта, время сборки |

{% hint style="warning" %}
Образ не может автоматически знать собственный registry digest. В текущем beta-кандидате исходников оператор передаёт `CHECKER_IMAGE_DIGEST=sha256:<digest>` вместе с запуском `comol/1c-code-checker@sha256:<digest>`; иначе `/release` возвращает `image_digest_available=false`. Этот контракт ещё не подтверждён в опубликованных образах.
{% endhint %}

## Оригинальная идея

[github.com/artesk/1copilot\_MCP](https://github.com/artesk/1copilot_MCP)

## Структура раздела

* [Установка](/mcp-servery-1c/servery/code-checker/ustanovka.md) — команды запуска и проверка работы
* [Получение токена](/mcp-servery-1c/servery/code-checker/poluchenie-tokena.md) — как получить токен 1С:Напарник
* [Инструменты](/mcp-servery-1c/servery/code-checker/instrumenty.md) — подробное описание всех 11 инструментов
* [Конфигурация](/mcp-servery-1c/servery/code-checker/konfiguraciya.md) — переменные окружения и режимы работы

## Доработка плагинами (beta)

Новые beta-сборки поддерживают плагины без пересборки образа. Каталог — `/app/plugins`, полный контракт — `/app/MCP_1copilot/plugin_api.py`, пример — `/app/plugins/example.py`. Все хуки call-scoped: сервер ничего не индексирует, поэтому правка требует только перезагрузки и никогда не вызывает пересборку.

| Хук                               | Когда срабатывает                                                       | Что можно изменить                                                               |
| --------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `on_startup(config)`              | После проверки лицензии и конфигурации, до открытия порта               | Ничего; секреты заменены маркерами                                               |
| `on_request(request)`             | После проверок аргументов инструмента                                   | Аргументы того же инструмента и тех же типов                                     |
| `on_upstream_call(call, request)` | Последняя точка перед отправкой в `code.1c.ai`, включая fallback-промпт | Текст промпта или аргументы вызова; нельзя сменить mode/capability/upstream tool |
| `on_result(result, request)`      | После ответа upstream, до типизированного конверта                      | Только `answer`; diff и `safe_to_apply` пересчитываются заново                   |

Таблица `TOOL_PRESETS` добавляет read-only MCP-инструменты как пресеты одного из 11 штатных с фиксированными аргументами. Токен `ONEC_AI_TOKEN` и `LICENSE_KEY` не попадают в payload, журнал и `/plugins`.

```powershell
# Проверить файл без токена, лицензии и сети
docker run --rm -v "E:/plugins/checker/10-policy.py:/tmp/plugin.py" `
  comol/1c-code-checker:latest-beta `
  python -m MCP_1copilot --dry-run /tmp/plugin.py

# Подключить каталог и перечитать его без перезапуска
# ... -v "E:/plugins/checker:/app/plugins" ...
Invoke-RestMethod -Uri "http://localhost:8007/plugins"
Invoke-RestMethod -Method Post -Uri "http://localhost:8007/plugins/reload"
```

Подробнее: [Система плагинов](/mcp-servery-1c/sistema-pluginov.md) и [справочник хуков 1CCodeChecker](/mcp-servery-1c/sistema-pluginov/spravochnik-hukov.md#1ccodechecker).
