---
name: 1c-naparnik
description: "1C:Naparnik (1С:Напарник) MCP server tools - BSL code analysis, review, rewriting, ITS knowledge base, platform documentation search, configuration documentation. Use when checking BSL code quality, searching ITS standards, reading platform docs, comparing versions, or finding configuration-specific documentation."
---

# 1С:Напарник - MCP Tools Reference

MCP-сервер **1c-naparnik** - интеграция с API 1С:Напарник (code.1c.ai). 12 инструментов: 6 для анализа/модификации BSL-кода, 6 для поиска по документации и базе знаний ИТС.

## When to Use

Используй инструменты 1c-naparnik когда:
- Нужно проверить качество BSL-кода (стиль, архитектура, стандарты)
- Нужно проверить код на синтаксические ошибки, логические проблемы, антипаттерны производительности
- Нужно получить code review по стандартам ИТС
- Нужно переписать или модифицировать BSL-код с улучшениями
- Нужно объяснение конкретной конструкции языка BSL
- Нужно найти методологическую статью или стандарт на ИТС
- Нужно прочитать конкретный документ ИТС по ID
- Нужно найти информацию в документации платформы (встроенные функции, типы, события)
- Нужно сравнить изменения между версиями платформы
- Нужно найти информацию по конкретной конфигурации (ERP, ЗУП, Бухгалтерия)

## Prerequisites Check

Сервер работает через Docker-контейнер на порту 8007. Если инструменты не отвечают - сообщи пользователю:
> MCP-сервер 1c-naparnik недоступен. Запустите Docker-контейнер:
> ```
> cd <путь к 1c-code-checker> && docker compose up -d
> ```

---

## Tools by Category

### Анализ и модификация кода (6 инструментов)

#### `ask_1c_ai` - Свободный вопрос к ИИ

Основной инструмент для любых вопросов по 1С. Поддерживает контекст диалога (сессии).

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `question` | да | Вопрос (код, задача, архитектурный вопрос) |
| `create_new_session` | нет | `true` - новая сессия (сброс контекста), `false` - продолжение (default) |

Когда использовать:
- **ОБЯЗАТЕЛЬНО** после каждого написания/изменения BSL-кода - быстрая проверка качества
- Общие вопросы по архитектуре, паттернам, подходам 1С
- Вопросы, не подходящие под специализированные инструменты
- Когда нужен контекст предыдущего диалога (серия связанных вопросов)

#### `check_1c_code` - Техническая проверка кода

Проверка синтаксиса, логических ошибок, антипаттернов производительности (запросы в цикле, N+1, обращение через точку).

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `code` | да | BSL-код для проверки |
| `check_type` | нет | Тип проверки (по умолчанию - полная) |

Когда использовать:
- Проверка: скомпилируется ли код, есть ли баги
- Поиск антипаттернов производительности
- Альтернатива `check_syntax` (1c-syntax-checker-mcp) с расширенным анализом логики

#### `review_1c_code` - Code review стиля и стандартов

Ревью по стандартам ИТС: именование, структура, читаемость, соответствие стандартам. НЕ проверяет синтаксис.

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `code` | да | BSL-код для ревью |

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

#### `rewrite_1c_code` - Улучшение кода (ИИ решает что улучшить)

ИИ анализирует код и предлагает свою улучшенную версию. В отличие от `modify_1c_code`, здесь ИИ сам решает, что и как улучшить.

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `code` | да | BSL-код для улучшения |
| `goal` | нет | Направление улучшения (например: "производительность", "читаемость") |

Когда использовать:
- Рефакторинг: хочешь увидеть, как ИИ переписал бы код
- Нужна альтернативная реализация для сравнения
- Оптимизация кода без конкретной инструкции

#### `modify_1c_code` - Модификация по инструкции

Изменение кода по точной инструкции пользователя. В отличие от `rewrite_1c_code`, здесь ИИ следует конкретному указанию.

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `instruction` | да | Что именно изменить (например: "добавить обработку пустого результата запроса") |
| `code` | нет | BSL-код для модификации (если не указан - генерирует с нуля) |

Когда использовать:
- Точечное исправление бага ("исправить обработку NULL")
- Добавление конкретной функциональности
- Рефакторинг с конкретным направлением ("вынести в отдельную функцию")

#### `explain_1c_syntax` - Объяснение синтаксиса

Объяснение конкретного ключевого слова, оператора, конструкции или встроенной функции BSL.

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `syntax_element` | да | Элемент синтаксиса (например: `ДобавитьОбработчикОповещения`, `Запрос.УстановитьПараметр`) |
| `context` | нет | Контекст для более точного объяснения |

Когда использовать:
- Незнакомая конструкция BSL
- Нужно точное объяснение конкретного ключевого слова/оператора
- Для широких вопросов лучше `ask_1c_ai`

---

### Документация и база знаний (6 инструментов)

#### `its_help` - Поиск по ИТС

Поиск методологических рекомендаций, стандартов разработки, статей на ИТС (its.1c.ru). Возвращает список документов с ID.

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `query` | да | Поисковый запрос (например: "стандарт именования переменных", "обработка ошибок") |

Когда использовать:
- Поиск стандартов разработки ИТС
- Методологические рекомендации (как правильно реализовать обмен, печатные формы, отчеты)
- Статьи по конфигурированию и администрированию
- **Результат** - список документов с ID. Для чтения используй `fetch_its`

#### `fetch_its` - Чтение документа ИТС

Получение содержимого документа ИТС по ID. Используется после `its_help`.

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `id` | нет | ID документа (`its-...-hdoc`, `its-...-hdir`) или `root` для оглавления |

Когда использовать:
- Чтение конкретного документа ИТС после поиска через `its_help`
- Навигация по структуре ИТС (`id="root"` - корень)
- Поддерживает: `root`, `superior`, `v8std`, документы и каталоги

Типичный workflow: `its_help("стандарты именования")` -> получить ID -> `fetch_its(id="its-...-hdoc")`

#### `search_1c_documentation` - Документация платформы (по версии)

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

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `query` | да | Поисковый запрос (например: "HTTPСоединение", "ЗаписьJSON") |
| `version` | нет | Версия платформы (например: "8.3.25", "8.5.1") |

Когда использовать:
- Нужна документация для **конкретной версии** платформы
- Проверка: есть ли метод/тип в определенной версии
- Если версия не важна - используй `onec_help`

#### `onec_help` - Документация платформы (последняя версия)

Поиск в документации платформы последней версии. Упрощенный вариант `search_1c_documentation` без указания версии.

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

Когда использовать:
- Быстрый поиск по документации платформы без привязки к версии
- Проверка существования метода/типа/свойства
- Если нужна конкретная версия - используй `search_1c_documentation`

#### `diff_1c_documentation_versions` - Сравнение версий

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

| Параметр | Обязательный | Описание |
|---|:---:|---|
| `version_a` | да | Ранняя версия (например: "8.3.24") |
| `version_b` | да | Поздняя версия (например: "8.3.25") |
| `query` | нет | Фильтр по теме (например: "HTTP", "JSON") |

Когда использовать:
- Миграция между версиями платформы - что изменилось
- Проверка: когда появился конкретный метод/тип
- Оценка breaking changes между версиями

#### `config_help` - Документация конфигураций

Поиск по документации прикладных конфигураций: ERP, ЗУП, Бухгалтерия, УТ и др. Объекты, модули, регистры, документы, бизнес-логика конфигурации.

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

Когда использовать:
- Как работает конкретный механизм в ERP/ЗУП/Бухгалтерии
- Назначение объекта, регистра, документа конфигурации
- Бизнес-логика конкретной конфигурации
- НЕ для API платформы (используй `onec_help`/`search_1c_documentation`)

---

## Typical Workflows

### Проверка качества BSL-кода (после написания/изменения)

```
1. ask_1c_ai(question="<код>") - быстрая проверка качества (ОБЯЗАТЕЛЬНО)
2. check_1c_code(code="<код>") - синтаксис + логика + производительность (при необходимости)
3. review_1c_code(code="<код>") - стиль и стандарты ИТС (перед коммитом)
```

### Рефакторинг кода

```
1. review_1c_code(code="<код>") - получить замечания
2. rewrite_1c_code(code="<код>", goal="производительность") - вариант ИИ
 ИЛИ
 modify_1c_code(instruction="вынести запрос в отдельную функцию", code="<код>") - точечное изменение
3. ask_1c_ai(question="<новый код>") - проверка результата
```

### Поиск стандарта ИТС

```
1. its_help(query="обработка исключений") - найти документы
2. fetch_its(id="its-...-hdoc") - прочитать нужный документ
```

### Проверка API платформы

```
Вариант A (с версией):
 search_1c_documentation(query="HTTPСоединение", version="8.3.25")

Вариант B (последняя версия):
 onec_help(query="HTTPСоединение")
```

### Миграция между версиями

```
1. diff_1c_documentation_versions(version_a="8.3.24", version_b="8.3.25")
2. diff_1c_documentation_versions(version_a="8.3.24", version_b="8.3.25", query="HTTP")
```

### Поиск по документации конфигурации

```
config_help(query="расчет себестоимости", config_name="ERP")
```

---

## Разграничение с другими MCP-серверами

| Задача | 1c-naparnik | Альтернатива | Когда что |
|--------|-------------|-------------|-----------|
| Синтаксис BSL (изолированный код) | `check_1c_code` | `check_syntax` (1c-syntax-checker-mcp) | Напарник дополнительно проверяет логику и производительность |
| Синтаксис BSL (в контексте проекта EDT) | `check_1c_code` | `get_project_errors` (1c-edt) | EDT проверяет в контексте проекта (типы, ссылки), Напарник - изолированный код |
| Валидация запросов | - | `validate_query` (1c-edt) | EDT для запросов (семантика + контекст метаданных), Напарник не валидирует запросы отдельно |
| API платформы | `onec_help`, `search_1c_documentation` | `search` (bsl-platform-help) | bsl-platform-help - локальный, быстрый, офлайн. Напарник - через API, полнее, поддерживает версии |
| Стандарты ИТС | `its_help` + `fetch_its` | - | Только в Напарнике. Уникальная возможность |
| Документация конфигураций | `config_help` | - | Только в Напарнике. Уникальная возможность |
| Сравнение версий | `diff_1c_documentation_versions` | - | Только в Напарнике. Уникальная возможность |
| Code review стиля | `review_1c_code` | - | Только в Напарнике. По стандартам ИТС |
| Рефакторинг BSL | `rewrite_1c_code`, `modify_1c_code` | - | Только в Напарнике |
| Функции БСП | - | `search_ssl` (1c-mcp_ssl_server) | Только в БСП-сервере |

### Когда что искать

| Что ищешь | Инструмент | Сервер |
|-----------|-----------|--------|
| Стандарт разработки ИТС, методологическая статья | `its_help` + `fetch_its` | 1c-naparnik |
| Встроенная функция/тип платформы (быстро, офлайн) | `search` | bsl-platform-help |
| Встроенная функция/тип для конкретной версии | `search_1c_documentation` | 1c-naparnik |
| Механизм конфигурации (ERP, ЗУП, Бухгалтерия) | `config_help` | 1c-naparnik |
| Функция/модуль БСП | `search_ssl` | 1c-mcp_ssl_server |
| Код в проекте (полнотекстовый/regex) | `search_in_code` | 1c-edt |
| Структура объекта метаданных | `get_metadata_details` | 1c-edt |
| Что изменилось между версиями платформы | `diff_1c_documentation_versions` | 1c-naparnik |
