# Руководство пользователя

Автор: Радзивиллович Сергей (prepod2003@yandex.ru, Telegram: @Prepod2003, ТГ канал: edt_ai_1c)

## Что такое плагин

1C:RSV MCP Server — плагин для 1C:EDT, встраивающий MCP-сервер (Model Context Protocol) прямо в среду разработки. Плагин даёт ИИ-ассистентам (Claude Code, Cursor, Windsurf, Roo Code, Gemini CLI, Qwen Code) прямой доступ к конфигурациям 1С: метаданным, коду, формам, справке платформы, валидации и даже отладчику.

Плагин запускает HTTP-сервер на `127.0.0.1:8770` внутри EDT. ИИ-ассистент подключается по протоколу MCP (JSON-RPC 2.0 over HTTP) и получает 27 инструментов в 7 группах, распределённых по 3 профилям.

Все данные обрабатываются локально — код конфигурации не передаётся в интернет. Сервер работает прямо внутри IDE, без внешних серверов и SaaS-посредников.

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

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

- 1C:EDT 2025.2
- Java 17 (Azul Zulu 17)
- ИИ-ассистент: Claude Code, Cursor, Windsurf, Roo Code, Gemini CLI, Qwen Code или VS Code + Copilot

### Установка

1. Скачать ZIP-архив `edt-rsv-repository-3.0.0-SNAPSHOT.zip` из релизов
2. В EDT: Справка → Установить новое ПО...
3. Добавить... → Архив... → выбрать скачанный ZIP
4. Отметить 1C:RSV MCP Server → Далее → Готово
5. Перезапустить EDT
6. Проверить: `curl http://localhost:8770/health`

### Подключение ИИ-ассистента

Claude Code (файл `~/.claude/claude_desktop_config.json`):

    {
      "mcpServers": {
        "1c-rsv": {
          "url": "http://127.0.0.1:8770/mcp",
          "transport": "http"
        }
      }
    }

Cursor / Windsurf (файл `.cursor/mcp.json`):

    {
      "mcpServers": {
        "1c-rsv": {
          "url": "http://127.0.0.1:8770/mcp"
        }
      }
    }

Roo Code (VS Code) (файл `.roo/mcp.json` или настройки Roo Code):

    {
      "mcpServers": {
        "1c-rsv": {
          "type": "streamable-http",
          "url": "http://127.0.0.1:8770/mcp"
        }
      }
    }

Gemini CLI (глобально `~/.gemini/settings.json`, или для проекта `.gemini/settings.json`):

    {
      "mcpServers": {
        "1c-rsv": {
          "httpUrl": "http://127.0.0.1:8770/mcp",
          "trust": true
        }
      }
    }

> Для Gemini CLI используется ключ `httpUrl` (не `url`). Глобальный конфиг `~/.gemini/settings.json` подключает MCP-сервер во всех проектах сразу.

Qwen Code CLI (глобально `~/.qwen/settings.json`, или для проекта `.qwen/settings.json`):

    {
      "mcpServers": {
        "1c-rsv": {
          "httpUrl": "http://127.0.0.1:8770/mcp"
        }
      }
    }

> Сервер автоматически согласует версию MCP-протокола с клиентом — совместим как с новыми (2025-11-25), так и со старыми (2024-11-05) клиентами.

### Файл правил для ИИ-ассистента

В комплекте с плагином поставляется файл правил — инструкции, которые учат ИИ-ассистента правильно работать с 1С через MCP. Файл правил:

- Запрещает ИИ читать/редактировать BSL- и MDO-файлы напрямую — только через инструменты MCP
- Объясняет профили и их ограничения
- Учит следовать паттернам конкретной конфигурации (использовать методы БСП, а не платформенные примитивы)
- Обеспечивает управление знаниями — результаты исследований сохраняются между сессиями
- Экономит токены — инструменты вызываются только при необходимости

Скопируйте содержимое `CLAUDE.md` из комплекта в файл правил вашего ИИ-ассистента:

ИИ-ассистент | Файл правил | Расположение
--- | --- | ---
Claude Code | `CLAUDE.md` | Корень проекта
Cursor | `.cursor/rules/rules.mdc` | Корень проекта
Windsurf | `.windsurfrules` | Корень проекта
Roo Code | `.roo/rules/rules.md` | Корень проекта
Gemini CLI | `GEMINI.md` | Корень проекта
Qwen Code | `.qwen/rules` | Корень проекта
Cline | `.clinerules` | Корень проекта

Содержимое правил одинаковое для всех ИИ-ассистентов — меняется только расположение файла.

При работе с проектом ИИ-ассистент автоматически создаст в папке `.ai/` два файла:

Файл | Назначение
--- | ---
`.ai/project-knowledge.md` | Знания о конфигурации: тип, версия, паттерны кода, ключевые модули
`.ai/current-task.md` | Текущая задача: план, статус шагов, хронология

> Рекомендация: добавьте `.ai/` в `.gitignore` или оставьте `project-knowledge.md` в репозитории — он может быть полезен всей команде.

## Лицензирование

### Тарифные планы

1C:RSV MCP Server распространяется по подписке. Доступны три тарифа:

Тариф | Инструментов | Доступные группы
--- | --- | ---
Аналитик | 18 | Анализ метаданных, Анализ кода, Поиск и навигация
Разработчик | 26 | + Редактирование кода и отладка, Валидация, Сборка и управление (вкл. экспорт)
Архитектор | 27 | + Редактирование метаданных (~57 операций)

Подписка платная. Информация об оформлении и оплате — в Telegram-канале @edt_ai_1c.

### Пробный период — бесплатно

При первом запуске EDT после установки автоматически открывается диалог активации. Нажмите «Получить пробный период» — плагин активируется с тарифом Архитектор на 14 дней.

### Активация подписки

1. Оформите подписку на нужный тариф — подробности в Telegram-канале @edt_ai_1c
2. Получите код активации (формат: `ACT-DEV-XXXXXXXX`)
3. В EDT откройте Окно → Настройки → 1C:RSV → Лицензия → нажмите «Активировать новый код...»
4. Введите код → нажмите «Активировать»

Привязка к компьютеру происходит автоматически.

### Привязка к компьютеру

Лицензия привязывается к конкретному компьютеру через Machine ID — технический идентификатор, формируемый из аппаратных характеристик устройства.

При переустановке операционной системы или смене компьютера Machine ID изменится и старый код активации не подойдёт. В этом случае обратитесь в службу поддержки — мы выпустим новый код:

- Telegram: @Prepod2003
- Email: prepod2003@yandex.ru

### Управление лицензией

Окно → Настройки → 1C:RSV → Лицензия

Поле | Описание
--- | ---
Статус | АКТИВНА / ИСТЕКЛА / НЕ АКТИВИРОВАН
Тариф | Аналитик / Разработчик / Архитектор
Действует до | Дата окончания подписки
ID компьютера | Технический идентификатор для поддержки
Файл лицензии | Путь к локальному кэшу (`~/.edt-rsv/license.json`)

### Продление подписки

По истечении срока MCP-сервер перестанет запускаться. Для продолжения:

1. Приобретите новый код активации
2. Введите через «Активировать новый код...» на странице лицензии

## Интерфейс управления в EDT

### Индикатор в строке состояния

В нижней строке состояния EDT появляется значок 1C:RSV с цветным индикатором:

Цвет | Значение
--- | ---
Зелёный | Сервер работает, инструменты доступны
Серый | Сервер не запущен

При наведении отображается порт, количество активных инструментов и URL для подключения.

### Контекстное меню (клик по индикатору)

1. Управление сервером: Запустить / Перезапустить / Остановить

2. Профили — быстрое переключение набора инструментов:

- Аналитик [3 группы] — 18 инструментов
- Разработчик [6 групп] — 26 инструментов
- Архитектор [все 7] — 27 инструментов

Активный профиль отмечен галочкой. При переключении реестр инструментов мгновенно перезагружается — перезапуск EDT не требуется.

> Профиль и тариф — разные вещи. Тариф лицензии — это потолок доступа, определяемый подпиской. Профиль — пользовательская настройка в рамках тарифа. Например, пользователь с тарифом «Архитектор» может выбрать профиль «Аналитик», чтобы ограничить набор инструментов для ИИ.

3. Группы инструментов — тонкая настройка. Каждая группа имеет чекбокс для включения/отключения независимо от профиля.

### Страница настроек

Окно → Настройки → 1C:RSV — порт сервера (1024–65535, по умолчанию 8770) и управление группами.

## Что умеет плагин — примеры запросов

Главное преимущество MCP-сервера — вы общаетесь с ИИ-ассистентом на естественном языке. Не нужно знать имена инструментов и их параметры. Просто опишите задачу — ассистент сам подберёт нужные инструменты.

### Аналитик — изучение конфигурации

Знакомство с конфигурацией:

> «Расскажи, что это за конфигурация — тип, версия, какие подсистемы есть, сколько объектов»

> «Покажи все справочники, в имени которых есть "Контрагент"»

> «Какие реквизиты у документа РеализацияТоваровУслуг? Покажи табличные части с колонками»

Анализ кода:

> «Проанализируй подсистему Продажи — какие объекты входят, как связаны, где основная логика»

> «Покажи структуру модуля менеджера справочника Номенклатура — какие методы, экспортные ли»

> «Кто вызывает метод ПересчитатьСумму в документе ЗаказКлиента? Покажи цепочку вызовов»

> «Что изменилось в модуле объекта документа ЗаказКлиента с прошлого коммита?»

Поиск по коду:

> «Найди все места, где используется справочник Номенклатура — включая СправочникСсылка и СправочникОбъект»

> «Найди в коде все обращения к регистру ЦеныНоменклатуры»

Справка платформы:

> «Найди в справке платформы какие параметры принимает ВычислитьВыражениеСГруппировкойМассив»

> «Покажи документацию по типу HTTPСоединение — конструктор, методы, свойства»

> «Какие есть функции языка запросов 1С для работы с датами?»

Формы и справка:

> «Покажи, как выглядит форма списка справочника Партнеры — хочу увидеть картинку»

> «Прочитай встроенную справку документа ЗаказКлиента»

### Разработчик — код, валидация, отладка

Написание кода:

> «Найди в конфигурации примеры использования Запрос.Выполнить и напиши аналогичный метод для выборки цен по номенклатуре»

> «Добавь в модуль объекта документа ЗаказКлиента процедуру ПроверитьЗаполнение, которая проверяет наличие строк в табличной части»

> «Замени метод ПересчитатьИтоги в модуле формы — вместо прямого расчёта используй вызов серверной функции»

Валидация:

> «Проверь ошибки в документе ЗаказКлиента и исправь автоматически где возможно»

> «Покажи все ошибки уровня ERROR в проекте — топ-10 самых частых»

Проверка запросов 1С (`validate_query`):

> «Проверь синтаксис этого запроса: ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура ГДЕ ЭтоГруппа = ЛОЖЬ»

> «В процедуре ПодготовитьЗапросПоТоварам модуля менеджера отчёта ОстаткиТоваров есть запрос — прочитай его и прогони через validate_query»

> «Пройдись по менеджер-модулю отчёта Продажи — там несколько запросов в разных процедурах, проверь каждый, покажи ошибки с номерами строк»

> «Проверь запрос из набора данных НаборПродаж в схеме компоновки отчёта АнализПродаж — это DCS, передай isDcs=true»

> «Напиши метод ПолучитьТоварыПоАртикулу(ПрефиксАртикула) с запросом к справочнику Товары и параметром отбора. Перед тем, как вставить в модуль менеджера, проверь запрос через validate_query»

Отладка:

> «Поставь точку останова в ПриСозданииНаСервере документа ЗаказКлиента и покажи значение Объект.Партнер, когда я открою документ»

> «Покажи все переменные в текущей точке останова»

> «Вычисли выражение Объект.Товары.Количество() в контексте отладки»

Сборка:

> «Обнови информационную базу из проекта»

> «Очисти кэш и пересобери проект — в валидации ложные ошибки»

Внешние обработки и отчёты:

> «Собери внешнюю обработку ПроверкаКурсов в файл D:/Обмен/ПроверкаКурсов.epf»

> «Выгрузи отчёт АнализПродаж в .erf — путь спросишь у меня»

### Архитектор — создание объектов, форм, отчётов

Создание объектов:

> «Создай справочник Товары с реквизитами Наименование (Строка 150), Артикул (Строка 25) и Цена (Число 15,2). Добавь табличную часть Характеристики с колонками Наименование и Значение. Создай форму элемента и установи её основной»

> «Создай документ ЗаказПоставщику с реквизитами Контрагент (СправочникСсылка.Контрагенты), Склад, Сумма и табличной частью Товары (Номенклатура, Количество, Цена, Сумма)»

> «Создай регистр накопления ОстаткиТоваров с измерениями Номенклатура и Склад, ресурсом Количество, регистратор — ПриходнаяНакладная»

Работа с формами:

> «Добавь на форму элемента справочника Товары группу "Основное" с полями Наименование и Артикул, и группу "Цены" с полем Цена»

> «Добавь кнопку "Рассчитать итоги" на форму документа ЗаказКлиента и создай для неё обработчик на сервере»

> «Подбери стандартную картинку для подсистемы Склад и установи её»

> «Добавь на форму таблицу динамического списка по регистру ОстаткиТоваров»

Макеты и печатные формы:

> «Создай документу Накладная макет печати с шапкой (номер, дата, контрагент), строками товаров и итогом по сумме»

> «Сделай отчёт продаж товаров по месяцам: слева список товаров, сверху Январь/Февраль/Март, в ячейках суммы, снизу итоги по каждому месяцу»

> «Добавь справочнику Контрагенты макет визитки и именованную область ДанныеКонтакта»

Типы данных и определяемые типы:

> «Добавь справочнику Контрагенты реквизит Фото типа ХранилищеЗначения»

> «Создай определяемый тип ПользовательСистемы из Справочник.Пользователи и Справочник.ВнешниеПользователи, и добавь его реквизитом документу Поручение»

> «Добавь в регистр накопления ТоварыНаСкладах реквизит Комментарий» — реквизиты теперь работают во всех 4 видах регистров

Отчёты СКД:

> «Создай отчёт ПродажиПоКонтрагентам с группировкой по контрагентам и сортировкой по сумме»

> «Добавь в отчёт условное оформление: если сумма больше 100000, выделить строку жёлтым»

> «Добавь в отчёт отбор по периоду и контрагенту»

Расширения:

> «Заимствуй документ ЗаказКлиента в расширение и добавь реквизит КодПроекта»

Права и подсистемы:

> «Создай роль ТолькоЧтениеСклад с правами Чтение и Просмотр на все складские справочники»

> «Включи документ ЗаказПоставщику в подсистему Закупки»

## Профили и группы инструментов

### Профиль «Аналитик» — 18 инструментов

Профиль только для чтения. Для изучения и документирования конфигураций без внесения изменений.

#### Анализ метаданных (8 инструментов)

Инструмент | Описание
--- | ---
`show_edt_version` | Версия и сборка EDT, информация о JVM и ОС
`list_workspace_projects` | Список проектов в текущем workspace
`list_metadata_objects` | Каталог объектов метаданных с фильтрацией по типу и имени
`get_object_details` | Полная структура объекта: реквизиты, табличные части, формы, команды
`get_config_properties` | Свойства конфигурации: версия, подсистемы, статистика объектов
`get_form_image` | Визуализация формы — PNG-картинка или полное JSON-дерево элементов (включая командные панели, позиции, картинки и представление кнопок). Пагинация для больших форм.
`get_platform_docs` | Синтаксис-помощник: API платформы, язык запросов, директивы, функции СКД
`get_object_help` | Встроенная справка объекта (HTML-документация по кнопке «?»)

`get_platform_docs` — полноценный синтаксис-помощник для ИИ. Покрывает тысячи топиков: все типы платформы (Запрос, ТаблицаЗначений, HTTPСоединение...) с методами, свойствами и конструкторами. Язык запросов, директивы компиляции, аннотации расширений, ~130 функций СКД. Поиск без учёта регистра, русские и английские имена, точечная нотация (`Запрос.Выполнить`).

#### Анализ кода (7 инструментов)

Инструмент | Описание
--- | ---
`list_modules` | Все BSL-модули проекта с типом, размером, количеством строк
`read_module_source` | Чтение исходника модуля целиком или по диапазону строк
`get_module_structure` | Карта методов: сигнатуры, параметры, области, экспортные/внутренние
`read_method_source` | Код конкретной процедуры/функции по имени
`get_method_call_hierarchy` | Иерархия вызовов: входящие и исходящие, до 3 уровней глубины
`ai_context` | Умный сборщик контекста — метаданные объекта, дерево формы с реквизитами и командами, код модуля, вызовы за один запрос
`diff_module` | Сравнение модуля с версией из git (summary / unified / methods)

`ai_context` — заменяет 5–7 отдельных вызовов. Принимает четыре вида цели: объект метаданных (`Catalog.Х`, `Document.Х`, регистры, ChartOf*, BusinessProcess, Task и др.), форма (`Catalog.Х.Form.ФормаСписка` — возвращает дерево элементов, реквизиты с типами, команды, обработчики), общий модуль или путь к .bsl-файлу. Три режима: `minimal` (быстрый обзор), `standard` (для большинства задач), `full` (максимум: код + вызовы + ссылки). Для больших форм поддерживается пагинация дерева. Лучший первый шаг при работе с незнакомым объектом или формой.

#### Поиск и навигация (3 инструмента)

Инструмент | Описание
--- | ---
`search_in_code` | Полнотекстовый поиск по BSL-коду с регулярными выражениями
`find_object_references` | Все места использования объекта в коде. Режим `deep` для производных типов
`resolve_symbol` | Переход к определению метода с подсказками при опечатках

### Профиль «Разработчик» — 26 инструментов

К 18 инструментам аналитика добавляются инструменты для редактирования кода, отладки, валидации и сборки.

#### Редактирование кода и отладка (2 инструмента)

Инструмент | Описание
--- | ---
`write_module_source` | Запись BSL-кода (6 режимов: replace, replaceLines, replaceMethod, append, insertBefore, insertAfter)
`launch_debugger` | Полноценная отладка 1С — 16 действий (запуск, breakpoints, пошаговое выполнение, переменные, evaluate)

`write_module_source` — по умолчанию работает в режиме симуляции (`dryRun=true`). Автоматический бэкап перед каждой записью, проверка базовой структуры BSL (парность `Процедура`/`КонецПроцедуры`, `Функция`/`КонецФункции`, `Если`/`КонецЕсли`), блокировка при удалении >50% строк.

Встроенная валидация EDT сразу в ответе записи. После успешной записи (не dry-run) `write_module_source` сам дожидается полной валидации EDT по записанному файлу и возвращает её результат в том же ответе, в поле `validation`: список ошибок с текстом/строкой/файлом, счётчики `errorCount`/`warningCount`, готовая подсказка «3 ошибок в записанном файле. Исправь их перед продолжением» или «0 ошибок — код корректен». AI-ассистенту не нужно отдельно звать `get_validation_errors` — ошибки уже в ответе. Цикл «записал → проверил → исправил → записал ещё раз» замыкается без обращения к пользователю и без дополнительного вызова инструмента. Попадают только ошибки по записанному файлу — посторонние старые ошибки демо-конфигурации не засоряют ответ. Для серии быстрых правок валидацию можно выключить параметром `validateAfterWrite=false` и позвать её вручную в конце.

#### Валидация (2 инструмента)

Инструмент | Описание
--- | ---
`get_validation_errors` | Ошибки и предупреждения EDT. По умолчанию показывает только файлы, изменённые в текущей сессии (режим `session`) — без посторонних старых ошибок. Умеет ждать «тишины» от асинхронного коммита маркеров и отдаёт полную инфо по каждой ошибке (текст, файл, строка, описание, автофикс).
`validate_query` | Проверка запросов 1С через настоящий парсер языка запросов — тот же, что в редакторе EDT. Ловит все синтаксические ошибки (опечатки в ключевых словах, лишние/пропущенные скобки, незакрытые литералы), типовые проверки языка и структурные ошибки СКД. Поддерживает обычные запросы и запросы СКД (`isDcs=true`).

`get_validation_errors` — по умолчанию режим `scope=session` и `severity=ERROR`. Показывает только реальные ошибки и только в тех файлах, которые AI или вы сами трогали в текущей сессии EDT. Для полного скана проекта перед релизом — `scope=project`. Для одного объекта — `scope=object + objectName`. На крупных базах (ERP, УТ, БП) работает мгновенно — не тянет десятки тысяч старых маркеров. Жалоба «AI правит, в EDT крест, а инструмент возвращает 0» закрыта — инструмент надёжно дожидается, пока EDT доварит маркеры на свежезаписанный файл.

`validate_query` — запускает настоящий разбор текста запроса, как если бы вы открыли его в редакторе EDT. Подхватывает те же подчёркивания и сообщения. В ответе по каждой ошибке — уровень (ERROR / WARNING / INFO), текст на русском, точные координаты (строка, колонка, смещение и длина проблемного фрагмента) и код диагностики. Этого достаточно, чтобы AI сразу указал на проблемное слово и предложил исправление. Параметр `isDcs=true` переключает на парсер DCS — проверяются блоки `{ВЫБРАТЬ ...}` / `{ГДЕ ...}` и параметры виртуальных таблиц. Типичный сценарий: AI проверяет запрос перед `write_module_source`, исправляет и перепроверяет — в код попадает уже чистый запрос. Ограничение: не проверяет существование конкретных таблиц и полей в вашей конфигурации (это требует полного контекста проекта и в EDT есть только в редакторе запросов) — запланировано на будущие релизы.

Как вы запускаете проверку. Отдельной «автоматической» привязки к другим инструментам пока нет — вы просто просите AI-ассистента проверить запрос. Дальше AI сам решает, передавать ли готовый текст или сначала прочитать его из модуля/схемы СКД. Частые формулировки: «проверь запрос: …», «в процедуре N модуля M есть запрос — проверь его», «пройдись по менеджер-модулю отчёта X и проверь каждый запрос», «проверь запрос из схемы компоновки отчёта Y», «напиши метод выборки …, проверь запрос перед вставкой в модуль». Примеры — в разделе «Разработчик — код, валидация, отладка».

Можно поставить на автомат через настройки AI. Если не хочется каждый раз говорить «проверь запрос», пропишите в правилах своего AI-ассистента (в Claude Code — `CLAUDE.md` проекта, в Cursor — Rules for AI, в Windsurf — memories): «перед каждым `write_module_source`, если в коде есть строковый литерал с запросом (присваивание `Запрос.Текст = "…"` или аналогичное), сначала вызови `validate_query` на извлечённый текст; если есть ошибки — исправь и перепроверь, только потом записывай модуль». Сильные модели соблюдают такое правило стабильно.

Встроенная автоматика на уровне плагина — запланирована на будущий релиз. По аналогии с тем, как `write_module_source` уже сам возвращает ошибки EDT в поле `validation` ответа, плагин будет сам извлекать QL-литералы из записываемого BSL (и `queryText` из DCS-наборов данных) и возвращать проверку запросов в том же ответе — агенту не придётся помнить про отдельный вызов.

#### Сборка и управление (4 инструмента)

Инструмент | Описание
--- | ---
`sync_database` | Обновление информационной базы из проекта EDT
`rebuild_project` | Очистка кэша и пересборка проекта
`list_applications` | Список зарегистрированных информационных баз (нужен для отладчика)
`export_object` | Экспорт внешней обработки/отчёта в бинарный .epf/.erf файл

`export_object` — собирает проект внешней обработки или отчёта в готовый бинарный файл .epf / .erf, который можно сразу открыть в 1С. Платформа 1С и тип файла определяются автоматически, один вызов. (Проверено на Windows; на Linux и macOS должно работать — но прогона пока не было.)

### Профиль «Архитектор» — 27 инструментов

К 26 инструментам разработчика добавляется конструктор конфигурации.

#### Редактирование метаданных (1 инструмент, ~57 операций)

Инструмент | Описание
--- | ---
`edit_metadata` | Единый конструктор: создание объектов, реквизитов, форм, элементов, отчётов СКД, расширений

> Важно. Группа «Редактирование метаданных» отключена по умолчанию. Для включения: Окно → Настройки → 1C:RSV → включите группу.

## Конструктор конфигурации — edit_metadata

Единый инструмент для создания и настройки объектов метаданных, форм, макетов печатных форм и отчётов. Содержит около 57 операций в 7 областях. Все изменения выполняются через нативные сервисы EDT — результат идентичен ручному созданию в конструкторе.

### Дерево операций

edit_metadata (~57 операций) │ ├── Объекты метаданных (8 операций) │ ├── createObject — создание (30+ типов: справочники, документы, регистры...) │ ├── setObjectProperty — свойства (с подсказками похожих имён при опечатках) │ ├── addObjectAttribute / removeObjectAttribute — реквизиты объекта, удаление с автоочисткой полей форм │ ├── addTabularSection / removeTabularSection — табличные части целиком │ └── addTabularSectionAttribute / removeTabularSectionAttribute — колонки табличной части │ ├── Специализированные объекты (6 операций) │ ├── addRegisterField / removeRegisterField — поля всех 4 видов регистров + признаки учёта и субконто плана счетов │ ├── addEnumValue — значения перечислений │ ├── addSubsystemContent / removeSubsystemContent — состав подсистем │ ├── setRoleRight — права ролей (русские и английские имена) │ └── setDefinedTypeTypes — состав определяемого типа │ ├── Формы (15 операций) │ ├── createForm — создание (элемент, список, выбор, общая, запись регистра) │ ├── addFormAttribute / addFormAttributeColumn — реквизиты формы │ ├── addDynamicListTable — таблица динамического списка (отображение «Список», со строкой поиска и автообновлением) │ ├── addField, addGroup, addButton — элементы формы (addButton со стандартной командой сразу получает иконку платформы — «провести и закрыть», «записать», «скопировать» и др.) │ ├── addTable — таблица для ТЧ или реквизита-таблицы формы (колонки автоматически из источника или вручную) │ ├── addDecoration, addRadioButton — декорации и переключатели │ ├── setProperty — свойства элементов (цвета, шрифты, картинки, представление кнопок, положение заголовка, размеры, выравнивание — всё пакетно) │ ├── listPictures — поиск среди 763 стандартных картинок │ ├── addCommandHandler — обработчики кнопок │ └── setupSettingsComposerOnForm — композитор настроек на форме (реквизит + таблицы UI + ExtInfo + BSL-пример в ответе) │ ├── Макеты печатных форм (4 операции) │ ├── addTemplate — создание макета (табличный, текстовый, СКД и др.) │ ├── setTemplateCell — содержимое ячейки (текст, шрифт, цвет, выравнивание) │ ├── mergeTemplateCells — объединение диапазонов ячеек │ └── drawTemplate — пакетное заполнение (ячейки, ширины, именованные области) │ ├── Расширения (4 операции) │ ├── adoptObject — заимствовать один объект из базы (опц. рекурсивно с дочерними элементами) │ ├── adoptObjects — заимствовать несколько объектов явным списком одним вызовом │ ├── adoptChild — заимствовать дочерний элемент │ └── adoptFormItem — заимствовать элемент формы │ ├── Отчёты СКД (22 операции) │ ├── createReportSchema, addDataSet, addDataSetField — структура │ ├── addSchemaParameter, addCalculatedField, addTotalField — вычисления │ ├── addSettingsGroup/Table/Chart — группировки и визуализация │ ├── addSettingsFilter/Order — отборы и сортировки │ ├── addConditionalAppearance — условное оформление │ └── setOutputParameter, addSettingsVariant — настройки вывода │ └── Общее (2 операции) ├── moveItem — перемещение элементов └── removeItem — удаление элементов

### Ключевые возможности

Картинки. Свойства `setObjectProperty` и `setProperty` принимают как стандартные картинки EDT (763 шт., поиск через `listPictures`), так и общие картинки конфигурации в формате `CommonPicture.ИмяКартинки`.

Пакетный режим. Большинство операций поддерживают создание нескольких элементов за один вызов. Справочник с 10 реквизитами, табличной частью и формой — за 3–4 вызова вместо 15. `createObject` умеет сразу создавать реквизиты и табличные части (с их колонками), так что полноценный справочник или документ собирается одним вызовом.

Режим предпросмотра. К любой операции конструктора метаданных можно добавить параметр `dryRun=true` — плагин выполнит её в транзакции и откатит. В ответе будет видно, что получилось бы (созданные реквизиты, формы, элементы), но в проекте ничего не меняется. Полезно для перепроверки сложных пакетных вызовов или когда неуверен в правильности типа. Не применяется только к операциям заимствования и удаления реквизитов/ТЧ — там плагин честно говорит, что режим предпросмотра невозможен.

Реквизиты по умолчанию. Тип реквизита можно не указывать — поставится Строка длиной 10, ровно как при нажатии кнопки «+ Реквизит» в EDT. Работает для всех объектов с реквизитами (справочники, документы, все 4 вида регистров, планы счетов, планы видов характеристик и расчёта, бизнес-процессы, задачи, планы обмена).

Типы данных. Принимаются русские и английские имена — `Строка`/`String`, `Число`/`Number`, `ХранилищеЗначения`/`ValueStorage`, `ДвоичныеДанные`, `УникальныйИдентификатор`, ссылочные (`CatalogRef.X`/`СправочникСсылка.X`), а также определяемые типы (`DefinedType.X`/`ОпределяемыйТип.X`).

Расширения. При добавлении реквизитов со ссылочными типами инструмент автоматически заимствует связанные объекты.

Макеты печатных форм. Полный цикл сборки макета: создание объекта, рисование ячеек с оформлением, объединения, ширины колонок, именованные области (`Шапка`, `СтрокаТовара`, `Подвал`). `drawTemplate` делает всё одним пакетным вызовом — готовый макет, идентичный нарисованному вручную в EDT.

Отчёты СКД. Полный цикл: схема, наборы данных, параметры, ресурсы, группировки, таблицы, диаграммы, отборы, сортировки, условное оформление, варианты настроек. Минимальный отчёт — 6 вызовов. В справке есть готовый рабочий сценарий для матричных отчётов («товары × месяцы»).

Схема компоновки — не только для отчётов. Схему компоновки данных (с запросом, группировками, ресурсами, отборами) теперь можно создавать не только в отчётах, но и в обработках, справочниках, документах, планах счетов, бизнес-процессах, задачах и планах обмена — везде, где в 1С бывают макеты типа «Схема компоновки данных». Открывается типовой сценарий «обработка с настраиваемыми отборами»: AI собирает в обработке макет со схемой, форму с реквизитом-композитором и кнопкой «Сформировать» — пользователь в режиме предприятия задаёт отборы и группировки сам.

Композитор настроек на форме. Операция `setupSettingsComposerOnForm` одним вызовом добавляет на любую форму (обработки, отчёта, общей формы) реквизит типа КомпоновщикНастроек, UI-таблицы настроек (дерево группировок, отборы, сортировка, условное оформление — через параметр `standardItems`; алиас `full` = все четыре) и привязку ExtInfo формы. Работает как галочка «Настройки на форме» в мастере EDT, но доступно не только для отчётов. В ответе возвращается готовый BSL-пример для обработчика `ПриСозданииНаСервере` — с корректной инициализацией композитора из макета со схемой. Полный пошаговый сценарий — в справочнике через `help topic=composerWorkflow`.

### Встроенная справка

У инструмента есть собственный справочник, который ИИ-ассистент запрашивает при необходимости:

- `help` — список всех операций
- `help topic=<операция>` — подробная справка с примерами
- `help topic=types` — каталог типов данных для реквизитов
- `help topic=objectTypes` — типы объектов, которые можно создать
- `help topic=formTypes` — типы форм
- `help topic=workflow` — типичный сценарий работы от создания объекта до обработчиков
- `help topic=matrixWorkflow` — рабочий сценарий для матричных отчётов (товары × месяцы)
- `help topic=composerWorkflow` — обработка или отчёт с композитором настроек на форме: отборы, группировки, BSL-код инициализации

ИИ-ассистенту не нужно знать внутреннее устройство EDT — он спрашивает у инструмента, что доступно, и получает готовые примеры.

## Отладка через ИИ-агента — launch_debugger

Инструмент `launch_debugger` позволяет ИИ-агенту отлаживать код 1С так же, как это делает разработчик в EDT:

- Точки останова — настоящие BSL breakpoints, видимые отладчику EDT. Поддержка условных точек останова
- Запуск отладки — клиент 1С запускается в режиме отладки одной командой
- Пошаговое выполнение — шаг через строку, вход в метод, выход из метода
- Чтение переменных — локальные переменные метода + все реквизиты формы (Объект, ЭтаФорма, Элементы)
- Вычисление выражений — любое BSL-выражение в контексте точки останова
- Стек вызовов — текущая строка, метод, цепочка вызовов
- Управление выполнением — продолжить, приостановить, завершить

### Все 16 действий

Группа | Действия | Описание
--- | --- | ---
Сессия | `launch`, `status`, `terminate` | Запуск отладки, статус сессий, завершение
Выполнение | `resume`, `stepOver`, `stepInto`, `stepReturn`, `suspend` | Пошаговое выполнение
Состояние | `getState`, `getVariables`, `getVariable`, `evaluate` | Стек вызовов, переменные, вычисление
Breakpoints | `listBreakpoints`, `addBreakpoint`, `removeBreakpoint`, `toggleBreakpoint` | Управление точками останова

### Примеры вычислений через evaluate

Выражение | Результат
--- | ---
`Объект.Партнер` | `"Дальстрой"` (СправочникСсылка.Партнеры)
`Объект.Товары.Количество()` | `"5"` (Число)
`1 + 2 + 3` | `"6"` (Число)
`"Привет" + " мир!"` | `"Привет мир!"` (Строка)
`Объект.Дата` | `"01.10.2022 12:00:00"` (Дата)

### Типичный сценарий

Попросите ассистента:

> «Поставь точку останова в ПриСозданииНаСервере документа ЗаказКлиента и покажи значение Объект.Партнер, когда я открою документ»

Агент поставит breakpoint, дождётся остановки, вычислит выражение и вернёт результат с типом.

## Внешние обработки и отчёты

Все инструменты плагина работают с проектами внешних обработок (.epf) и внешних отчётов (.erf) наравне с обычными конфигурациями и расширениями. Вы можете полностью создать внешнюю обработку в EDT с помощью ИИ-ассистента и получить готовый бинарный файл для открытия в 1С.

### Полная поддержка всех инструментов

Для проектов внешних обработок и отчётов доступно всё то же, что и для обычных конфигураций:

- Конструктор форм — создание форм, реквизитов, полей, кнопок, обработчиков событий
- Работа с кодом — чтение и запись BSL-модулей, проверка синтаксиса
- Анализ — структура объектов, список модулей, иерархия вызовов
- Контекст объекта (`ai_context`) — понимает имена как на английском (`ExternalDataProcessor.МояОбработка`), так и на русском (`ВнешняяОбработка.МояОбработка`)

### Экспорт в бинарный файл

Инструмент `export_object` собирает проект внешней обработки или отчёта в готовый бинарный файл .epf / .erf, который можно сразу открыть в 1С. ИИ-ассистент спросит у вас, куда сохранить файл, и выполнит экспорт одним вызовом. Платформа 1С и тип файла (по типу объекта) определяются автоматически — никаких настроек и ручных путей не требуется. Весь процесс занимает 1–2 секунды.

Пример промпта:

> «Собери мою внешнюю обработку `ПроверкаКурсов` в файл `D:/Отчёты/Передача/ПроверкаКурсов.epf`»

Проверено на Windows. На Linux и macOS должно работать — платформа 1С и шаги сборки кросс-платформенные — но прогона на этих системах пока не было; если пользуетесь — напишите, как себя ведёт.

## Рекомендации по работе с ИИ-ассистентом

### Выбор модели

Для серьёзной разработки 1С рекомендуются топовые модели: Claude Opus, Claude Sonnet. Они лучше понимают контекст 1С, следуют правилам и реже галлюцинируют.

При работе с бесплатными или средними моделями (Claude Haiku, GPT-4o-mini, Gemini Flash):

- Контролируйте процесс жёстче — модель чаще будет игнорировать правила
- Для чтения и анализа средние модели подходят, для записи кода — контроль обязателен

### Контроль галлюцинаций

Даже топовые модели могут «выдумывать» методы платформы 1С. Для минимизации:

1. Синтаксис-помощник — пусть ИИ проверяет сигнатуры через `get_platform_docs`
2. Примеры из проекта — ИИ должен искать аналогичный код в конфигурации (3–5 примеров)
3. Встроенная справка — `get_object_help` помогает понять бизнес-логику без домыслов
4. Проверка запросов — `validate_query` до вставки в код
5. Цикл валидации — после каждой записи кода: `get_validation_errors` → исправление → повторная проверка до 0 ошибок ERROR

### Планирование

Для сложных задач обязательно:

1. Попросите ИИ составить план реализации
2. Зафиксируйте план в `.ai/current-task.md`
3. Обновляйте статус после каждого шага
4. При новой сессии — ИИ сначала прочитает план и продолжит с нужного места

### Что контролировать

- Режим записи — `replaceMethod` для одного метода, а не `replace` для всего модуля
- dry-run — каждая запись начинается с `dryRun: true`
- Паттерны конфигурации — ИИ ищет примеры в проекте, а не генерирует «по памяти»
- Методы БСП — в типовых конфигурациях ИИ использует обёртки БСП, а не платформенные примитивы

### Автобэкап

Плагин автоматически создаёт резервную копию модуля перед каждой записью:

- Бэкапы хранятся в `~/.edt-rsv/backups/`
- Максимум 5 бэкапов на каждый модуль, старые удаляются автоматически
- Для восстановления: скопируйте `.bsl.bak` файл на место модуля или используйте его содержимое как `source` для `write_module_source`

## Технические характеристики

Параметр | Значение
--- | ---
Инструментов | 26 в 7 группах
Профилей | 3 (Аналитик, Разработчик, Архитектор)
Протокол | MCP Streamable HTTP (2025-11-25 / 2024-11-05)
Порт по умолчанию | 8770 (настраиваемый, 1024–65535)
Формат ответов | JSON (все инструменты)
ИИ-ассистенты | Claude Code, Cursor, Windsurf, Roo Code, Gemini CLI, Qwen Code
Совместимость | 1C:EDT 2025.2, Java 17
Установка | Справка → Установить новое ПО → Архив

1C:RSV MCP Server — самый функциональный MCP-сервер для работы ИИ-ассистентов с 1С:EDT