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

Сервер предоставляет **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`                | Промпт           |
| Остальные                        | Только промпт                                         | Только промпт    |

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.onerpa.ru/mcp-servery-1c/servery/code-checker/instrumenty.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
