# Инструменты

Сервер предоставляет **11 MCP-инструментов**, разделённых на две группы: работа с кодом и работа с документацией.

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

### ask\_1c\_ai

Свободный вопрос к ИИ-ассистенту 1С:Напарник. Используется для любых вопросов по 1С, которые не подходят под специализированные инструменты: архитектурные вопросы, объяснения концепций, советы по разработке.

**Особенность:** в отличие от всех остальных инструментов (которые всегда создают новую сессию), `ask_1c_ai` по умолчанию **переиспользует последнюю сессию**, сохраняя контекст диалога. Это позволяет задавать уточняющие вопросы.

| Параметр             | Тип     | Обязательный | Описание                                                                              |
| -------------------- | ------- | ------------ | ------------------------------------------------------------------------------------- |
| `question`           | string  | Да           | Вопрос по разработке на 1С                                                            |
| `create_new_session` | boolean | Нет          | `true` — новая сессия (сброс контекста), `false` (по умолчанию) — продолжение диалога |

**Пример:** "Объясни разницу между ОбщийМодуль и МодульОбъекта"

***

### check\_1c\_code

Техническая проверка кода 1С: синтаксические ошибки, логические проблемы и проблемы производительности.

В режиме `direct` синтаксис проверяется через upstream `syntax-checker`, а затем ИИ анализирует логику и производительность. При недоступности upstream автоматически переключается на промпт-режим.

Для проверки стиля и стандартов используйте `review_1c_code`.

| Параметр | Тип    | Обязательный | Описание            |
| -------- | ------ | ------------ | ------------------- |
| `code`   | string | Да           | Код 1С для проверки |

**Пример:** "Проверь этот код на ошибки"

***

### review\_1c\_code

Code review кода 1С с точки зрения стиля и стандартов: именование переменных, соответствие стандартам ИТС, читаемость, структура, комментирование, обработка ошибок.

**Не проверяет** синтаксические ошибки и баги — для этого используйте `check_1c_code`.

| Параметр | Тип    | Обязательный | Описание         |
| -------- | ------ | ------------ | ---------------- |
| `code`   | string | Да           | Код 1С для ревью |

**Пример:** "Проведи code review этого модуля"

***

### rewrite\_1c\_code

ИИ анализирует код и предлагает собственную улучшенную версию с применением лучших практик, оптимизацией и объяснениями всех изменений. ИИ сам решает, что и как улучшить.

В отличие от `modify_1c_code` (который выполняет точные инструкции пользователя), `rewrite_1c_code` даёт ИИ свободу в выборе улучшений.

| Параметр | Тип    | Обязательный | Описание                                                                                                  |
| -------- | ------ | ------------ | --------------------------------------------------------------------------------------------------------- |
| `code`   | string | Да           | Код 1С для переписывания                                                                                  |
| `goal`   | string | Нет          | Направление улучшения: `optimize`, `readability`, `error handling` и т.д. Если не указано — ИИ решает сам |

**Пример:** "Перепиши этот код, улучши производительность"

***

### modify\_1c\_code

Модификация кода по явной инструкции пользователя: исправление конкретного бага, добавление функциональности, рефакторинг определённым способом. ИИ выполняет именно то, что указано.

Если код не передан — генерирует новый код по инструкции.

| Параметр      | Тип    | Обязательный | Описание                                                          |
| ------------- | ------ | ------------ | ----------------------------------------------------------------- |
| `instruction` | string | Да           | Описание требуемых изменений                                      |
| `code`        | string | Нет          | Исходный код для модификации (если пусто — генерация нового кода) |

**Пример:** "Добавь обработку ошибок и логирование в эту процедуру"

***

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

### search\_1c\_documentation

Поиск в документации платформы 1С:Предприятие для **конкретной версии**. Находит описания методов встроенного языка, объектов платформы, типов, событий, свойств.

В режиме `direct` использует upstream `knowledge-hub` для точных результатов.

| Параметр  | Тип    | Обязательный | Описание                                                                   |
| --------- | ------ | ------------ | -------------------------------------------------------------------------- |
| `query`   | string | Да           | Поисковый запрос                                                           |
| `version` | string | Нет          | Версия документации, например `v8.5.1`, `v8.3.25` (по умолчанию: `v8.5.1`) |

**Пример:** "Найди в документации v8.3.25 описание HTTPСоединение"

***

### onec\_help

Поиск в документации платформы 1С:Предприятие (**последняя версия**). Аналог `search_1c_documentation`, но без указания версии.

Для поиска по конкретной версии используйте `search_1c_documentation`.

| Параметр | Тип    | Обязательный | Описание         |
| -------- | ------ | ------------ | ---------------- |
| `query`  | string | Да           | Поисковый запрос |

**Пример:** "Что такое РегистрНакопления?"

***

### its\_help

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

Результаты содержат идентификаторы документов (вида `its-...-hdoc`), которые можно передать в `fetch_its` для получения полного текста.

| Параметр | Тип    | Обязательный | Описание         |
| -------- | ------ | ------------ | ---------------- |
| `query`  | string | Да           | Поисковый запрос |

**Пример:** "Стандарты именования переменных в 1С"

***

### fetch\_its

Получение содержимого документа, каталога или базы ИТС по идентификатору. Обычно используется после `its_help` для чтения найденных документов.

Специальные идентификаторы: `root` (корень ИТС), `superior` (Руководитель), `v8std` (Стандарты разработки).

| Параметр | Тип    | Обязательный | Описание                                                |
| -------- | ------ | ------------ | ------------------------------------------------------- |
| `id`     | string | Нет          | Идентификатор документа/каталога (по умолчанию: `root`) |

**Пример:** После `its_help` получен ID `its-...-hdoc` → вызов `fetch_its` с этим ID

***

### diff\_1c\_documentation\_versions

Сравнение документации платформы 1С:Предприятие между двумя версиями. Показывает, что изменилось, добавилось или удалилось.

| Параметр    | Тип    | Обязательный | Описание                                                               |
| ----------- | ------ | ------------ | ---------------------------------------------------------------------- |
| `version_a` | string | Да           | Более ранняя версия (например, `v8.3.27`)                              |
| `version_b` | string | Да           | Более поздняя версия (например, `v8.5.1`)                              |
| `query`     | string | Нет          | Предметная область для сужения сравнения (например, "HTTP соединение") |

**Пример:** "Что изменилось между v8.3.25 и v8.5.1 в области работы с HTTP?"

***

### config\_help

Поиск документации по конкретному **прикладному решению** (конфигурации) 1С: объекты, модули, регистры, документы, справочники, бизнес-логика.

В отличие от `search_1c_documentation` / `onec_help` (которые ищут по документации **платформы**), `config_help` ищет по документации **конфигурации** (приложения).

| Параметр      | Тип    | Обязательный | Описание                                                                                                                                                              |
| ------------- | ------ | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`       | string | Да           | Поисковый запрос                                                                                                                                                      |
| `config_name` | string | Нет          | Название конфигурации: `ERP`, `Бухгалтерия предприятия`, `Управление торговлей`, `ЗУП` и др. Если не указано — используется значение из переменной `ONEC_CONFIG_NAME` |

**Пример:** "Как работает проведение документа Реализация в ERP?"

## Режимы вызова (direct vs standard)

Ряд инструментов поддерживает два режима работы, переключаемых переменной `MCP_TOOL_CALL_MODE`:

| Инструмент                       | Direct mode                                           | Standard mode    |
| -------------------------------- | ----------------------------------------------------- | ---------------- |
| `check_1c_code`                  | Синтаксис через `syntax-checker`, логика через промпт | Всё через промпт |
| `search_1c_documentation`        | Upstream `Search_Documentation`                       | Промпт           |
| `onec_help`                      | Upstream `Search_Documentation`                       | Промпт           |
| `its_help`                       | Upstream `Search_ITS`                                 | Промпт           |
| `fetch_its`                      | Upstream `Fetch_ITS`                                  | Промпт           |
| `diff_1c_documentation_versions` | Upstream `Diff_Documentation_Versions`                | Промпт           |
| Остальные                        | Только промпт                                         | Только промпт    |

Подробнее о режимах — в разделе [Конфигурация](https://docs.onerpa.ru/mcp-servery-1c/servery/code-checker/konfiguraciya).
