# 1C:RSV MCP Server — Релиз 3.3.0

## Содержание

- [Работа с формами](#работа-с-формами)
  - [Полный обход дерева формы](#полный-обход-дерева-формы)
  - [Информация о расположении элементов](#информация-о-расположении-элементов)
  - [Пагинация для больших форм](#пагинация-для-больших-форм)
  - [Контекст формы одним вызовом — `ai_context` target=Form](#контекст-формы-одним-вызовом--ai_context-targetform)
  - [Предупреждение о невидимой картинке кнопки](#предупреждение-о-невидимой-картинке-кнопки)
  - [Стандартные кнопки — сразу с иконкой](#стандартные-кнопки--сразу-с-иконкой)
  - [Обработчики событий форм и элементов](#обработчики-событий-форм-и-элементов)
  - [Пустая форма по умолчанию](#пустая-форма-по-умолчанию)
  - [Удаление реквизитов формы](#удаление-реквизитов-формы)
  - [Валидация типа формы](#валидация-типа-формы)
  - [Автоматическое размещение колонок таблицы на форме](#автоматическое-размещение-колонок-таблицы-на-форме)
  - [Полноценные таблицы динамического списка](#полноценные-таблицы-динамического-списка)
  - [Понятные сообщения про основную форму у регистров](#понятные-сообщения-про-основную-форму-у-регистров)
  - [Композитор настроек на форме](#композитор-настроек-на-форме)
- [Работа с объектами метаданных](#работа-с-объектами-метаданных)
  - [Платформенные типы данных](#платформенные-типы-данных)
  - [Создание объекта сразу с реквизитами и табличными частями](#создание-объекта-сразу-с-реквизитами-и-табличными-частями)
  - [План счетов — признаки учёта и субконто одним вызовом](#план-счетов--признаки-учёта-и-субконто-одним-вызовом)
  - [Удаление реквизитов и табличных частей объектов](#удаление-реквизитов-и-табличных-частей-объектов)
  - [Схема компоновки данных — не только для отчётов](#схема-компоновки-данных--не-только-для-отчётов)
- [Проверка запросов](#проверка-запросов)
  - [Настоящая проверка, а не грубая подсказка](#настоящая-проверка-а-не-грубая-подсказка)
- [Внешние обработки и отчёты](#внешние-обработки-и-отчёты)
  - [Экспорт в `.epf` / `.erf`](#экспорт-в-epf--erf)
  - [Поддержка проектов внешних обработок и отчётов](#поддержка-проектов-внешних-обработок-и-отчётов)
- [Расширения](#расширения)
  - [Заимствование сразу нескольких объектов в расширение](#заимствование-сразу-нескольких-объектов-в-расширение)
- [Улучшения инструментов](#улучшения-инструментов)
  - [Автовыбор проекта по имени объекта](#автовыбор-проекта-по-имени-объекта)
  - [Предупреждение о неизвестных параметрах](#предупреждение-о-неизвестных-параметрах)
  - [Справка `setProperty` и `addButton` переписана](#справка-setproperty-и-addbutton-переписана)
  - [Режим предпросмотра — посмотреть, что получится, без сохранения](#режим-предпросмотра--посмотреть-что-получится-без-сохранения)
- [Исправления](#исправления)
- [Улучшения документации](#улучшения-документации)

---

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

### Полный обход дерева формы

Режим `get_form_image format=structure` теперь возвращает всю форму целиком — включая автокомандные панели формы (AutoCommandBar / TopCommandBar / BottomCommandBar / FABCommandBar), автокомандные панели таблиц и контекстные меню. На каждой кнопке выводятся: `commandName` (например, `Form.StandardCommand.PostAndClose`), локализованный заголовок команды (`commandTitle`), подсказка, установленная картинка (`pictureRef`: `StdPicture.X` или `CommonPicture.X`). Можно искать элементы по описанию пользователя — например, «кнопка отмены поиска» = узел с `commandName`, оканчивающимся на `CancelSearch`.

### Информация о расположении элементов

У каждого узла дерева формы теперь есть:

- `position` — 0-based индекс внутри родителя. Агент понимает «поле A перед полем B», может точно указывать место вставки.
- `childrenGroup` — направление раскладки у групп (Vertical / Horizontal / AlwaysHorizontal / ...).
- `titleLocation` — расположение заголовка у полей и групп.
- `representation` — визуальное представление групп и кнопок.
- `placementArea` — для кнопок: в какой секции командной панели (UserCmds / ImportantCmds / MoreCmds).

Опциональный флаг `includeLayout=true` добавляет размеры, выравнивание и растяжение (`width`, `height`, `horizontalStretch`, `verticalStretch`, `horizontalAlign`, `verticalAlign`).

### Пагинация для больших форм

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

- `depth` — глубина разворачивания дерева (1 = только верхний уровень; каждый свёрнутый контейнер получает `truncated:true` + `childCount:N`).
- `subtree` — имя контейнера: дерево собирается только внутри него.
- `maxElements` — жёсткий потолок количества узлов (дефолт 500). При превышении в ответ добавляется `warning` с подсказкой, как сузить область.

В `ai_context` для target-формы аналогичные параметры: `formDepth`, `formSubtree`, `formMaxElements`.

### Контекст формы одним вызовом — `ai_context` target=Form

Инструмент `ai_context` теперь принимает форму как target: `Catalog.X.Form.ФормаСписка`, `Document.X.Form.ФормаДокумента` и т.д. (русский вариант `Форма` тоже работает). За один вызов возвращается:

- Информация о родительском объекте и форме (имя, синоним, тип формы)
- Дерево элементов (с теми же параметрами пагинации)
- Реквизиты формы с типами и флагом `main`
- Параметры формы
- Пользовательские и стандартные команды
- Обработчики событий
- Путь к модулю формы

Параметр `includeStandardCommands=false` отключает каталог платформенных команд (30–40 записей) — полезно, когда каталог уже известен и нужно сэкономить токены.

### Предупреждение о невидимой картинке кнопки

При установке `picture` на кнопку с `representation=Auto` и непустым текстом инструмент возвращает `warning`: при Auto платформа рисует только текст, картинку игнорирует. Агент получает готовую подсказку — поставить `representation=PictureAndText` или `Picture`. Это снимает типичную грабельку «поставил картинку, а в форме её не видно».

### Стандартные кнопки — сразу с иконкой

**Было:** когда AI-ассистент добавлял на форму стандартную кнопку платформы (например, «Провести и закрыть», «Записать», «Скопировать»), кнопка появлялась пустая — без иконки. Чтобы получить привычное «иконка + текст», приходилось отдельным шагом подбирать и устанавливать картинку.

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

### Обработчики событий форм и элементов

Новая операция `addEventHandler` — назначение обработчиков событий на форму, поля, таблицы и колонки таблиц. Автоматически создаёт процедуру-заглушку в модуле формы с правильной директивой и параметрами.

- Поддержка всех типов элементов: форма, поля ввода, флажки, таблицы, колонки таблиц
- Поддержка заимствованных форм расширений с выбором типа вызова (Перед / После / Вместо / Вместо с контролем)
- Имена событий принимаются как на английском (`OnCreateAtServer`), так и на русском (`ПриСозданииНаСервере`)
- Если процедура с таким именем уже есть в модуле — существующий код не перезаписывается

### Пустая форма по умолчанию

Операция `createForm` теперь по умолчанию создаёт пустую форму (без автоматически разложенных полей). Это исключает дублирование элементов, когда агент строит раскладку вручную. Стандартная раскладка EDT доступна через параметр `autoLayout=true`.

### Удаление реквизитов формы

Новая операция `removeFormAttribute` — удаление реквизита формы по имени. Автоматически удаляет связанные элементы формы (поля), очищает колонки и отсоединяет дополнительные данные.

### Валидация типа формы

При создании формы обработки или отчёта с типом `Generic` инструмент предупреждает, что форма не будет привязана к реквизитам объекта. Для обработок и отчётов рекомендуется `formType=Object`.

### Автоматическое размещение колонок таблицы на форме

Операция `addTable` теперь ведёт себя так же, как в EDT, когда разработчик перетаскивает табличную часть на форму мышкой. Если указан путь к данным, но не задан явный список колонок — колонки подбираются автоматически:

- Для табличной части объекта — из её реквизитов
- Для реквизита формы типа «Таблица значений» или «Дерево значений» — из его колонок
- Тип каждой колонки (поле ввода, флажок, поле выбора) определяется автоматически по типу данных

Разместить табличную часть на форме теперь можно одним вызовом, не перечисляя каждую колонку вручную. Если нужна именно пустая таблица — передайте `fields=[]`. Явный список колонок работает как раньше.

### Полноценные таблицы динамического списка

Операция `addDynamicListTable` теперь создаёт таблицу со всеми свойствами динамического списка, которые появляются у таблицы списка, созданной в EDT через мастер: строка поиска, автообновление, быстрый отбор над колонками, отображение «Список» (а не «Иерархический список», как было раньше). Всё, что видит пользователь в обычной форме списка справочника или документа, теперь сразу получается у таблицы динсписка.

### Понятные сообщения про основную форму у регистров

**Было:** при создании некоторых типов форм для регистров AI-ассистент получал в ответ техническое сообщение вида «метод не найден» — похоже на ошибку плагина, но на самом деле это особенность платформы 1С: у регистров накопления/бухгалтерии/расчёта «основной формы набора записей» вообще не бывает в модели, как и «формы выбора» у всех регистров. Сообщение путало — агент думал, что что-то не так, и пробовал другие варианты.

**Стало:** теперь плагин возвращает внятное пояснение — «у этого типа объекта нет такой основной формы по устройству платформы, это не ошибка, форма создана, но назначить её основной невозможно». Форма действительно создаётся как обычная (не основная), что технически корректно.

### Композитор настроек на форме

**Было:** реквизит «Настройки» с типом «КомпоновщикНастроек» и привязанные к нему таблицы отборов, группировок, сортировки и условного оформления приходилось добавлять на форму вручную в EDT. AI-ассистент создавал отчёт или обработку со схемой компоновки, но выводить настройки этой схемы на форму для пользователя — уже только руками. Это был отдельный шаг после всей остальной работы.

**Стало:** новая операция позволяет одним вызовом поставить на любую форму (обработки, отчёта, общей формы, формы документа) полноценный композитор настроек — так же, как это делает мастер EDT при создании формы отчёта, но доступно и для обработок.

Что делает операция:

- Добавляет на форму реквизит «Настройки» (тип — КомпоновщикНастроек).
- Добавляет на форму таблицу «Структура» — через неё пользователь в режиме предприятия настраивает группировки (добавляет/удаляет узлы, меняет выбранные поля, задаёт ресурсы).
- По желанию добавляет отдельные таблицы отборов, сортировок и условного оформления — через один параметр `standardItems`. Удобный алиас `"full"` добавляет сразу все четыре таблицы для полного UI настроек.
- Связывает форму с группой пользовательских настроек (слот для полей с пометкой «Быстрый доступ» в схеме).

Отдельный момент — **инициализация композитора из BSL-кода**. Платформа требует, чтобы композитор подключался к макету со схемой в коде модуля формы (обработчик «ПриСозданииНаСервере»), а не в метаданных. Плагин это не обходит, но в ответе операции возвращает **готовый BSL-пример**, который нужно вставить в модуль формы. Пример выверен по паттернам типовых конфигураций ERP — с корректной передачей схемы через временное хранилище, загрузкой настроек по умолчанию и правильным вызовом «ПолучитьМакет» в зависимости от того, где лежит макет (в обработке, в справочнике, в отчёте или как общий макет).

Важное предупреждение в справке: одного запроса в схеме недостаточно. Чтобы форма сразу показала живое дерево отчёта, схема должна содержать как минимум одну группировку и выбранные поля по умолчанию — добавляются отдельными операциями ДО создания формы. Эти «★ обязательные шаги» явно помечены в пошаговом сценарии. Без них пользователь откроет форму и увидит пустое «дерево Отчёт», где всё надо настраивать с нуля.

Новый справочный топик `help topic=composerWorkflow` — полный пошаговый сценарий от создания объекта до BSL-кода формирования итогового результата, со всеми обязательными шагами и готовым примером кода. AI-ассистент в режиме «агент читает справку» получает рецепт, по которому за 12 вызовов собирается работающая обработка с настраиваемыми пользователем отборами и группировками.

---

## Работа с объектами метаданных

### Платформенные типы данных

Добавлена поддержка типов данных платформы для реквизитов объектов и форм:

- Стандартный период / Стандартная дата начала
- Цвет / Шрифт / Граница
- Форматированная строка / Картинка / Момент времени

Имена принимаются и по-русски, и по-английски.

### Создание объекта сразу с реквизитами и табличными частями

**Было:** создание справочника или документа с реквизитами шло в несколько шагов. Сначала AI создавал сам объект, потом отдельно добавлял каждый реквизит, потом табличную часть, потом её колонки. Для документа с пятью реквизитами и табличной частью из трёх колонок получалось 10 вызовов AI.

**Стало:** один вызов. Скажите AI: «создай документ ЗаказКлиента с реквизитами Контрагент и Дата, табличной частью Товары с колонками Номенклатура и Количество» — плагин создаёт и объект, и все реквизиты, и табличную часть со всеми колонками за один вызов. Для справочника с пятью реквизитами — один вызов вместо шести. Если в одном пакете что-то не получилось (например, один из типов не найден) — объект всё равно создаётся, а в ответе видны и успешно добавленные реквизиты, и те, с которыми возникли проблемы.

### План счетов — признаки учёта и субконто одним вызовом

**Было:** создать план счетов AI мог, но добавить к нему признаки учёта (валютный, суммовой, количественный) или признаки учёта субконто напрямую из AI-ассистента было нельзя — приходилось добавлять вручную в EDT.

**Стало:** операция добавления полей регистра теперь работает и для плана счетов. Можно сказать AI: «добавь в план счетов Хозрасчётный признак учёта Валютный» — и он добавится автоматически с правильным типом данных (Булево по умолчанию, как в мастере EDT). Поддержаны два вида признаков: признак учёта (у самого счёта) и признак учёта субконто (у связанных аналитик).

### Удаление реквизитов и табличных частей объектов

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

- `removeObjectAttribute` — удалить реквизит объекта
- `removeTabularSection` — удалить табличную часть целиком (со всеми её реквизитами)
- `removeTabularSectionAttribute` — удалить один реквизит внутри табличной части

Работают как правый клик → «Удалить» в дереве объектов EDT. Плюс одна важная вещь, которую сам EDT при этом не делает: автоматически чистят связанные элементы форм. После операции формы не содержат «повисших» полей или колонок, ссылающихся на удалённые данные, — обновление конфигурации базы данных проходит без ошибок валидации.

Поддержаны справочники, документы, планы видов характеристик, задачи, бизнес-процессы, планы обмена. Для удаления ресурсов и измерений регистров осталась отдельная операция `removeRegisterField`. Для удаления элементов формы — `removeItem`.

### Схема компоновки данных — не только для отчётов

**Было:** создавать схему компоновки данных (с запросом, группировками, выбранными полями, ресурсами) AI-ассистент умел только для отчётов. Если в обработке нужен был «отчёт по товарам с настраиваемыми отборами» — макет типа «Схема компоновки данных» в обработке создать через AI было нельзя, приходилось делать это вручную в EDT, а плагин умел наполнять схему только внутри отчёта.

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

Для отчётов всё работает как раньше — макет «МакетОсновнойСхемыКомпоновкиДанных» создаётся автоматически и привязывается как главная схема. Для остальных объектов нужно указать имя макета (параметр `templateName`) — плагин находит или создаёт обычный макет с типом «Схема компоновки данных» и кладёт схему внутрь. В одной обработке можно держать несколько независимых DCS-макетов с разными отчётами.

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

---

## Проверка запросов

### Настоящая проверка, а не грубая подсказка

**Было:** инструмент `validate_query` делал самый минимум. Смотрел, что в запросе есть слово «ВЫБРАТЬ», что есть «ИЗ», что скобки парные и кавычки закрыты. Опечатка в ключевом слове (`ВЫБРАТ` вместо `ВЫБРАТЬ`, `УПОРЯДИЧИТЬ` вместо `УПОРЯДОЧИТЬ`) пропускалась — проверка считала запрос корректным. Неправильный порядок ключевых слов, неожиданный оператор внутри выражения, пропущенное значение после знака равенства — всё это тоже проходило молча. Фактически AI-ассистент не мог понять, что запрос сломан, пока не запускал его в 1С:Предприятии.

**Стало:** `validate_query` теперь гоняет запрос через тот же механизм разбора, которым язык запросов 1С пользуется внутри EDT. То есть проверка такая же, как если бы программист вставил этот запрос в модуль и открыл в редакторе — подчёркивания ошибок такие же.

Что теперь ловится:

- **Синтаксические ошибки любого рода**: опечатки в ключевых словах (`ВЫБРАТ`, `СГРУПИРОВАТЬ`, `УПОРЯДИЧИТЬ`), недопустимые токены в неожиданных местах, незакрытые или лишние скобки, незакрытые строковые литералы, оборванные выражения (`ПО Остатки.Товар =` без правой части).
- **Типовые проверки языка запросов**: неверные имена псевдонимов (с точкой или пробелом), некорректное использование агрегатных функций, несогласованность в `CASE … КОГДА … ТОГДА`, проблемы с `BETWEEN` и пр.
- **Проверки для запросов СКД** (при `isDcs: true`): корректность блоков `{ВЫБРАТЬ ...}` и `{ГДЕ ...}`, несоответствие полей между основной выборкой и настройками компоновки, неправильное использование параметров виртуальных таблиц.

В ответе у каждой ошибки теперь есть точные координаты:

- номер строки и колонки;
- смещение от начала текста и длина проблемного фрагмента;
- человеко-читаемый код диагностики (например, `Select dcs name must be in select fields`).

Этого достаточно, чтобы AI-ассистент сразу указал на проблемное слово в тексте и предложил исправление — не гадая, где именно что-то не так.

Сценарий использования:

> «Проверь запрос прежде чем вставлять в модуль» — AI вызывает `validate_query`, видит ошибку на строке 3 колонке 12, сам её исправляет, проверяет ещё раз, вставляет уже чистый запрос. Всё без обращения к пользователю.

**Что пока не проверяется:**

- Существование конкретной таблицы (`Справочник.Товары`) или поля (`Товары.Артикул`) в вашей конфигурации. Если AI написал `Справочник.Номенклатура` там, где справочник на самом деле называется `Товары`, инструмент этого не заметит. Такая проверка требует полного контекста проекта и в 1C:EDT встроена только в редактор запросов — её планируем добавить в будущих релизах. Пока надёжный способ поймать такие опечатки — открыть запрос в редакторе EDT или прогнать его в информационной базе.

- Стилистические предупреждения (соединение с подзапросом, отсутствие индекса у временной таблицы, отбор по виртуальной таблице и т. п.) — это отдельный набор проверок 1С-сообщества, его тоже планируем подключить.

---

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

### Экспорт в `.epf` / `.erf`

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

Пример промпта ИИ-ассистенту:

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

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

### Поддержка проектов внешних обработок и отчётов

Все инструменты плагина теперь работают с проектами внешних обработок и внешних отчётов наравне с конфигурациями и расширениями:

- Создание форм, реквизитов, полей, кнопок, обработчиков событий
- Чтение структуры и модулей, запись кода
- Контекст объекта (`ai_context`) — поддержка как английских, так и русских имён (`ВнешняяОбработка`, `ВнешнийОтчёт`)
- Экспорт в бинарный файл через `export_object`

---

## Расширения

### Заимствование сразу нескольких объектов в расширение

**Было:** когда расширение конфигурации нужно было наполнить десятком объектов из базы, AI заимствовал их по одному. Либо ставил режим «рекурсивно» — и тогда вместе с объектом в расширение попадали все его формы, реквизиты и команды, что обычно раздувало расширение ненужным содержимым.

**Стало:** новая операция `adoptObjects`, которая принимает список объектов и заимствует ровно его. Скажите AI: «заимствуй в моё расширение справочник Контрагенты, справочник Номенклатура и документ Заказ» — и все три заимствуются одним вызовом, без автоматического подтягивания форм или реквизитов. Если какой-то из объектов уже был заимствован ранее — он пропускается без ошибки, в ответе видно по каждому объекту отдельно, что с ним произошло: заимствован, уже был, не удалось.

---

## Улучшения инструментов

### Автовыбор проекта по имени объекта

Если в вызове не указан `projectName`, инструмент сам определяет нужный проект: находит объект в workspace через штатный EDT API (`IV8ProjectManager.getProject(EObject)`) и использует именно тот проект, где объект физически лежит. Раньше по умолчанию брался первый проект в workspace, из-за чего в ответе иногда оказывался не тот проект (например, внешний отчёт). Теперь поведение предсказуемое независимо от состава workspace.

### Предупреждение о неизвестных параметрах

При передаче неизвестного параметра в любую операцию инструмент теперь возвращает предупреждение с подсказкой похожего имени. Помогает быстрее находить опечатки в именах параметров.

### Справка `setProperty` и `addButton` переписана

Обе справки выровнены по единому шаблону: явный список поддерживаемых контекстов, выделенный блок предупреждений с самыми частыми ошибками, примеры с дефолтами, раздел с форматами значений. Длина справок сокращена: `addButton` с 35-строчной таблицей команд — до компактного списка с ссылкой на `ai_context` для полного каталога. Значения перечислений — CamelCase, как видит 1С-пользователь в EDT (`PictureAndText`, а не `PICTURE_AND_TEXT`).

### Режим предпросмотра — посмотреть, что получится, без сохранения

**Было:** любое изменение метаданных через AI-ассистента сразу применялось к проекту. Если AI ошибся с параметрами, неправильно понял тип или имя — получали испорченный проект, и приходилось откатывать изменения вручную.

**Стало:** к любой операции можно добавить параметр «посмотреть, что будет, но не сохранять» (`dryRun=true`). AI выполняет операцию в режиме симуляции: делает всё как обычно, возвращает подробный ответ («вот был бы создан такой справочник с такими реквизитами, таблицей, формой»), но все изменения **откатываются** — в проекте ничего не меняется, `list_metadata_objects` после такого вызова не видит ни справочника, ни его новых реквизитов.

Полезно:

- Хочется перепроверить сложную команду с несколькими реквизитами и табличной частью — AI делает предпросмотр, вы смотрите ответ, подтверждаете — AI повторяет уже реально.
- Неуверены, правильно ли указан тип (`CatalogRef.X`, `ОпределяемыйТип.Y`) — в режиме предпросмотра тип проверится и вернётся ошибка без ущерба проекту.
- Для пакетных операций (создание объекта с пятью реквизитами и двумя ТЧ) — сначала смотрите весь результат, потом применяете.

Режим предпросмотра работает почти для всех операций конструктора конфигурации. Единственное исключение — операции заимствования из базы в расширение (`adoptObject`, `adoptObjects`, `adoptChild`) и удаление реквизитов/табличных частей объекта: они по устройству платформы используют отдельные механизмы, которые нельзя откатить. В этих случаях плагин честно говорит «режим предпросмотра не поддерживается для этой операции — повтори без него, если готов применить».

---

## Исправления

### Накопление комментариев при замене метода

Исправлена ошибка в `write_module_source` (режим `replaceMethod`): при каждой записи метода блок комментариев перед процедурой дублировался. Теперь комментарии корректно обрабатываются и не накапливаются.

---

## Улучшения документации

- Операция `addEventHandler` добавлена в общий список операций и в пошаговый сценарий создания обработки
- Обновлена справка `createForm` — описание параметра `autoLayout`, предупреждения о типах форм
- Обновлена справка `addObjectAttribute` и `addFormAttribute` — секция платформенных типов
- Справка `addCommandHandler` — пояснение что операция только для кнопок, со ссылкой на `addEventHandler` для событий
