Описание инструментов MCP-сервера 1C:RSV
MCP-сервер 1C:RSV предоставляет 27 инструментов для работы с 1С:EDT через AI-ассистента. Инструменты организованы в 7 групп и доступны в трёх профилях в зависимости от вашей роли. Все инструменты работают с любыми типами проектов: конфигурации, расширения, внешние обработки и внешние отчёты.
Профили определяют, какие инструменты видит AI-ассистент:
| Профиль | Назначение | Инструментов | Группы |
|---|---|---|---|
| Аналитик | Изучение конфигурации без внесения изменений | 18 | 3 группы (только чтение) |
| Разработчик | Повседневная разработка: анализ + запись кода + валидация + экспорт | 26 | 6 групп |
| Архитектор | Полный контроль: создание объектов, форм, отчётов СКД | 27 | 7 групп |
Каждый следующий профиль включает все инструменты предыдущего.
Профиль «Аналитик» — 18 инструментов
Профиль для изучения и документирования конфигураций 1С. Аналитик может исследовать структуру метаданных, читать код, искать зависимости, просматривать формы и справку — без возможности что-либо изменить.
Анализ метаданных (8 инструментов)
Группа для изучения структуры конфигурации: какие объекты есть, из чего они состоят, как выглядят формы, что написано в справке платформы.
Возвращает версию установленной 1C:EDT, номер сборки, дату, а также информацию о Java и операционной системе. Полезно для диагностики и проверки совместимости.
Возвращает список всех проектов, открытых в текущем рабочем пространстве EDT. Каждый проект содержит имя, путь на диске и признак — является ли он проектом 1С. Используйте этот инструмент первым, чтобы узнать точные имена проектов для передачи в другие инструменты.
Возвращает перечень объектов конфигурации с фильтрацией по типу и имени. Поддерживает около 39 типов объектов: справочники, документы, регистры (сведений, накопления, бухгалтерии, расчёта), планы счетов, планы видов характеристик, планы видов расчёта, бизнес-процессы, задачи, перечисления, обработки, отчёты, общие модули, подсистемы, роли и другие.
Для каждого объекта возвращается имя, синоним, количество реквизитов и форм. Поддерживается пагинация — для больших конфигураций всегда указывайте фильтр по типу или маску имени.
Возвращает полную структуру конкретного объекта: все реквизиты с типами данных, табличные части с колонками, список форм, команд и модулей. Для разных типов объектов возвращаются специфичные поля — например, у справочников видна иерархия и владельцы, у документов — тип нумерации, у регистров — измерения и ресурсы.
Возвращает общие свойства конфигурации: имя, версию, режим совместимости, список подсистем и статистику по количеству объектов каждого типа. Позволяет быстро понять, с какой конфигурацией вы работаете.
Показывает управляемую форму объекта в двух форматах:
- Картинка (PNG) — визуальное представление формы, как она выглядит в 1С.
- Структура (JSON) — полное дерево элементов формы: группы, поля, таблицы с колонками, кнопки, декорации, командные панели формы и таблиц, контекстные меню.
У каждой кнопки указывается связанная команда (стандартная команда платформы или пользовательская), локализованный заголовок, подсказка и установленная картинка. Удобно искать элементы по описанию пользователя — например, «кнопка отмены поиска» → узел с командой CancelSearch.
Расположение элементов: у каждого узла указан порядковый номер внутри родителя (position), направление раскладки группы (childrenGroup: вертикально/горизонтально), положение заголовка, представление кнопки, секция в командной панели. Агент может точно понять, что идёт за чем, и указать место для вставки нового элемента.
Пагинация для больших форм: параметры depth, subtree, maxElements позволяют получать форму частями. На формах типовых конфигураций с сотнями элементов можно сначала взять верхний уровень (depth=1), потом раскрыть нужную ветку (subtree=ПанельКоманд) — без перегрузки контекста.
Полноценный синтаксис-помощник, доступный AI-ассистенту. Покрывает тысячи топиков:
- API платформы — все типы (Запрос, ТаблицаЗначений, HTTPСоединение и сотни других), их методы, свойства, конструкторы. Поддерживается точечная нотация: Запрос.Выполнить, HTTPСоединение.Получить.
- Встроенный язык — ключевые слова (Если, Для, Пока, Попытка), базовые типы (Число, Строка, Дата, Булево).
- Язык запросов — ВЫБРАТЬ, ИЗ, ГДЕ, СОЕДИНЕНИЕ, ОБЪЕДИНИТЬ, ИТОГИ, ВЫРАЗИТЬ, ПОДОБНО и все агрегатные функции.
- Директивы компиляции — &НаСервере, &НаКлиенте, &НаСервереБезКонтекста и другие.
- Аннотации расширений — &Вместо, &После, &Перед, &ИзменениеИКонтроль.
- Функции СКД — около 130 функций языка выражений системы компоновки данных.
Поиск работает без учёта регистра и понимает как русские, так и английские имена.
Читает справку, заложенную разработчиками конфигурации в объект метаданных. Это те самые HTML-страницы, которые открываются по кнопке «?» в пользовательском интерфейсе 1С. Дополнительно возвращает комментарий из описания объекта, синоним и список подсистем. Позволяет аналитику получить содержательное описание объекта без погружения в код.
Анализ кода (7 инструментов)
Группа для чтения и исследования BSL-кода: просмотр модулей, чтение методов, анализ цепочек вызовов, сравнение с предыдущими версиями.
Возвращает перечень всех BSL-модулей в проекте с указанием типа (модуль объекта, менеджера, формы, общий модуль), размера в байтах и количества строк. Поддерживает фильтрацию по типу модуля, объекту-владельцу и сортировку по размеру — удобно для поиска самых крупных модулей.
Читает исходный код BSL-модуля целиком или по указанному диапазону строк. Модуль можно указать двумя способами: путём к файлу или парой «имя объекта + тип модуля». Поддерживает фильтрацию — можно исключить комментарии или пустые строки.
Возвращает список всех процедур и функций модуля с их сигнатурами, параметрами, признаком экспортности, номерами строк и принадлежностью к областям (#Область). Позволяет быстро понять структуру модуля перед тем, как читать конкретные методы.
Читает полный текст конкретной процедуры или функции по имени — от объявления до КонецПроцедуры/КонецФункции, включая документирующий комментарий над методом. Удобнее, чем читать весь модуль, когда нужен один метод.
Показывает, кто вызывает указанный метод (входящие вызовы) и что вызывает сам метод (исходящие вызовы). Поддерживает рекурсивный анализ до 3 уровней глубины. Незаменим для оценки влияния изменений — перед модификацией метода всегда полезно проверить, откуда он вызывается.
Одним вызовом собирает всю релевантную информацию. Четыре вида цели анализа:
- Объект метаданных —
Catalog.Номенклатура,Document.Х, любой регистр, план видов характеристик, бизнес-процесс и т.д. Возвращает структуру, реквизиты, табличные части, модули, методы, иерархию вызовов, ссылки в коде. - Форма —
Catalog.Х.Form.ФормаСписка,Document.Х.Form.ФормаДокумента. Возвращает дерево элементов, реквизиты формы с типами, параметры, пользовательские и стандартные команды, обработчики событий, путь к модулю. Поддерживает пагинацию (formDepth,formSubtree,formMaxElements) для больших форм. - Общий модуль —
CommonModule.ХилиОбщийМодуль.Х. - Путь к .bsl-модулю — для случаев, когда нужен контекст конкретного файла.
Три режима глубины: minimal (метаданные + список модулей), standard (+ структура методов, по умолчанию), full (+ исходный код + иерархия вызовов + ссылки). Заменяет 5–7 последовательных вызовов отдельных инструментов. Оптимальный первый шаг перед работой с незнакомым объектом или формой.
Сравнивает текущее состояние BSL-модуля с предыдущей версией из системы контроля версий. Три режима:
- summary — сводка: какие методы добавлены, изменены, удалены.
- unified — полный diff в формате git.
- methods — построчный diff для каждого изменённого метода отдельно.
Ищет текст или регулярное выражение по BSL-коду проекта. Поддерживает фильтрацию по конкретному объекту, поиск без учёта регистра, вывод контекста вокруг найденных строк. Три режима вывода: полные результаты с контекстом, только счётчики по файлам, только список файлов.
Находит все места использования объекта метаданных в BSL-коде. В режиме deep автоматически ищет все производные типы: СправочникСсылка, СправочникОбъект, Справочники и т.д. Незаменим при анализе зависимостей перед рефакторингом или удалением объекта.
Находит процедуру или функцию по имени и возвращает её местоположение, исходный код и документирующий комментарий. Поддерживает двухкомпонентный формат ОбщийМодуль.МойМетод (поиск в конкретном модуле) и однокомпонентный МойМетод (поиск по всему проекту). При неточном имени предлагает похожие варианты.
Профиль «Разработчик» — добавляет 8 инструментов
К 18 инструментам аналитика добавляются инструменты для редактирования кода, отладки, валидации, управления сборкой и экспорта внешних обработок. Всего у разработчика 26 инструментов.
Редактирование кода и отладка (2 инструмента)
Записывает BSL-код в модуль объекта метаданных. Поддерживает 6 режимов записи для разных задач:
| Режим | Назначение |
|---|---|
| replace | Замена всего модуля целиком (для пустых или очень маленьких модулей) |
| replaceLines | Замена диапазона строк (для точечных правок) |
| replaceMethod | Замена одного метода по имени (самый безопасный способ изменить метод) |
| append | Добавление кода в конец модуля |
| insertBefore | Вставка перед указанной строкой |
| insertAfter | Вставка после указанной строки |
Безопасность:
- По умолчанию работает в режиме симуляции (dryRun=true) — показывает, что изменится, без реальной записи.
- Автоматически создаёт резервную копию модуля перед записью.
- Блокирует запись, если удаляется более 50% строк модуля (защита от случайной потери кода).
- Проверяет базовую структуру BSL (парность Процедура / КонецПроцедуры, Функция / КонецФункции, Если / КонецЕсли) до записи — повреждённый код в файл не попадает.
Встроенная валидация EDT (автомат). После успешной записи (не dry-run) плагин сам дожидается полной валидации EDT по записанному файлу и возвращает её результат в том же ответе, в поле validation. AI-ассистенту не нужно отдельно звать get_validation_errors — в ответе записи уже лежит:
- список ошибок с текстом, номером строки и файлом;
- счётчики errorCount / warningCount;
- подсказка: «3 ошибок в записанном файле. Исправь их перед продолжением» или «0 ошибок — код корректен».
Агент сразу видит, получилось ли что-то полезное. Если errorCount > 0 — исправляет и записывает ещё раз, пока не будет нуля. Цикл «записал → проверил → исправил» замыкается без обращения к пользователю и без вызова ещё одного инструмента.
Важно: в поле validation попадают только ошибки по записанному файлу, а не весь проект. Посторонние старые ошибки демо-конфигурации не засоряют ответ. Для серии быстрых правок валидацию можно выключить параметром validateAfterWrite=false и позвать её вручную в конце через get_validation_errors.
Полноценный отладчик с 16 действиями:
- Запуск и завершение — запуск клиента 1С в режиме отладки, завершение сессии.
- Пошаговое выполнение — шаг через строку, вход в метод, выход из метода.
- Точки останова — добавление, удаление, включение/отключение, условные точки останова.
- Инспекция — чтение переменных, стек вызовов, вычисление произвольных BSL-выражений.
Типичный сценарий: list_applications → launch → addBreakpoint → пользователь выполняет действие в 1С → getState → getVariables → stepOver → resume.
Валидация (2 инструмента)
Группа для работы с результатами проверок EDT: ошибки, предупреждения, автофиксы, проверка запросов.
Возвращает ошибки и предупреждения из EDT. Для каждой показывает текст на русском, файл, номер строки, начало и конец проблемного участка, тип проверки, есть ли автофикс (Quick Fix), готовую строку подавления // @skip-check … и подробное описание из каталога проверок. Поддерживает автоматическое применение официальных Quick Fix через отдельный режим.
Область выборки (параметр scope):
- session (по умолчанию) — показывает ошибки только в файлах, изменённых в текущей сессии EDT (через инструменты MCP или вручную в редакторе). AI видит ровно то, что сам наработал, и не отвлекается на тысячи старых ошибок демо-конфигурации.
- object — ошибки конкретного объекта метаданных (с objectName=FQN).
- project — все ошибки проекта (осознанный запрос для полного скана, например перед релизом).
- all — все ошибки всех открытых проектов workspace.
Дефолт severity = ERROR — возвращаются только реальные ошибки, предупреждения не засоряют ответ. Нужны — передавайте явно.
Надёжная синхронизация. Xtext-парсер коммитит маркеры асинхронно через внутренний ExecutorService, который не ловится стандартными ожиданиями сборки. Инструмент подписывается на события обновления маркеров через официальный API EDT и ждёт «тишины» в потоке — самый надёжный способ синхронизации. Плюс retry-цикл до 3 попыток сбора. Ситуация «AI записал модуль, в EDT появился красный крестик, а инструмент возвращает 0» закрыта.
На крупных конфигурациях (ERP, УТ, БП) первый вызов на свежеоткрытом проекте больше не зависает — в режиме session читаются только маркеры свежих файлов, выдача практически мгновенная даже при десятках тысяч маркеров в проекте.
Два канала маркеров. Одновременно читает Eclipse IMarker.PROBLEM (синтаксис Xtext, сборщики) и EDT-нативные маркеры через IMarkerManager (все проверки фреймворка checks: качество кода БСП, BSL, формы, метаданные). Дубликаты автоматически дедуплицируются.
Пропускает текст запроса через тот же механизм разбора языка запросов 1С, который работает внутри редактора EDT. Результат такой же, как если бы программист вставил этот запрос в модуль и открыл в редакторе — те же подчёркивания, те же сообщения об ошибках.
Что ловится:
- Все синтаксические ошибки — опечатки в ключевых словах (ВЫБРАТ, СГРУПИРОВАТЬ, УПОРЯДИЧИТЬ), недопустимые токены, незакрытые и лишние скобки, незакрытые строковые литералы, оборванные выражения (ПО Остатки.Товар = без правой части).
- Типовые проверки языка запросов — неверные имена псевдонимов (с точкой или пробелом), проблемы с агрегатными функциями, несогласованные ветки CASE ... КОГДА ... ТОГДА, ошибки в BETWEEN.
- Проверки для запросов СКД (при isDcs=true) — корректность блоков {ВЫБРАТЬ ...} и {ГДЕ ...}, несоответствие полей между основной выборкой и блоками настроек, неправильное использование параметров виртуальных таблиц.
Что в ответе. По каждой ошибке — уровень (ERROR / WARNING / INFO), текст на русском, номер строки и колонки, смещение от начала текста и длина проблемного фрагмента, код диагностики для программной идентификации. AI-ассистент сразу указывает на проблемное слово и предлагает исправление — без обращения к пользователю.
Поддержка обоих языков: обычные запросы 1С и запросы СКД через параметр isDcs=true. Разные парсеры — разный набор диагностик.
Типичный сценарий: AI-ассистент перед тем, как вставить запрос в модуль через write_module_source, проверяет его через validate_query, при необходимости исправляет и перепроверяет — в код попадает уже чистый запрос.
Как вы вызываете инструмент. Отдельного «автоматического» запуска сейчас нет — вы просите AI-ассистента проверить запрос, он вызывает validate_query. Типичные промпты:
- «Проверь запрос: ВЫБРАТЬ Т.Артикул ИЗ Справочник.Товары КАК Т» — AI сразу пропускает текст через инструмент.
- «В процедуре ПодготовитьЗапросПоТоварам в модуле менеджера отчёта ОстаткиТоваров есть запрос — проверь его» — AI читает метод, извлекает строку запроса, прогоняет проверку.
- «Пройдись по менеджер-модулю отчёта Продажи — там несколько запросов в разных процедурах, проверь каждый» — AI собирает структуру модуля и проверяет каждый литерал.
- «Проверь запрос из схемы компоновки отчёта ОстаткиТоваров» — AI читает текст из набора данных схемы и вызывает инструмент с параметром для запросов СКД.
- «Напиши метод выборки товаров с артикулом на "А", проверь запрос перед тем, как вставлять в модуль» — AI пишет, сам проверяет, исправляет, и только потом записывает.
Как поставить проверку «на автомат» через AI. Если не хотите каждый раз говорить «проверь запрос», добавьте в настройки своего AI-ассистента правило вида:
В Claude Code это пишется в CLAUDE.md проекта, в Cursor — в «Rules for AI», в Windsurf — в memories / правилах. Сильные модели (Claude Sonnet 4+, GPT-4o+ и аналоги) такое правило соблюдают стабильно. Слабые могут забывать — им надёжнее напомнить про проверку прямым промптом.
Полностью встроенная автоматика (по аналогии с тем, как write_module_source уже сам возвращает ошибки валидации EDT в поле validation ответа) запланирована на будущий релиз: плагин сам будет находить запросы в записываемом BSL и в наборах данных СКД, проверять их и возвращать результат в том же ответе — агенту не придётся помнить про отдельный вызов.
Чего инструмент пока не делает. Не проверяет существование конкретной таблицы (Справочник.Товары) или поля (Товары.Артикул) в вашей конфигурации — это требует полного контекста проекта и в EDT доступно только в редакторе запросов. Также пока не подключены стилистические проверки 1С-сообщества (соединение с подзапросом, отсутствие индекса у временной таблицы и т. п.). Оба слоя запланированы на следующие релизы.
Сборка и управление (4 инструмента)
Запускает обновление информационной базы 1С из проекта EDT. Поддерживает инкрементальное и полное обновление.
Удаляет скомпилированные файлы и кэш EDT, при необходимости запускает полную пересборку. Помогает при ложных ошибках валидации и устаревших данных.
Возвращает список зарегистрированных информационных баз для проекта с их идентификаторами, типами и состоянием обновления. Основное назначение — получить applicationId, который требуется для запуска отладчика и обновления базы.
Собирает проект внешней обработки или отчёта из EDT в готовый бинарный файл .epf / .erf, который можно сразу открыть в 1С. Один вызов — готовый файл за 1–2 секунды.
- Платформа 1С определяется автоматически по версии проекта
- Расширение файла выбирается автоматически: .epf для обработок, .erf для отчётов
- Проверено на Windows; на Linux и macOS должно работать — но прогона пока не было.
Профиль «Архитектор» — добавляет 1 инструмент (~57 операций)
К 26 инструментам разработчика добавляется инструмент для создания и изменения объектов метаданных, форм, схем компоновки данных и расширений. Всего у архитектора 27 инструментов.
edit_metadata — Конструктор конфигурации
Единый инструмент для создания и настройки объектов метаданных, форм, макетов печатных форм и отчётов. Содержит около 57 операций, организованных в 7 областей. Все изменения выполняются через нативные сервисы EDT — после операций не нужно вручную перезагружать формы или обновлять дерево объектов.
Встроенная справка
У инструмента есть собственный справочник, который AI-ассистент запрашивает при необходимости:
help— список всех операций с кратким описаниемhelp topic=<операция>— подробная справка по конкретной операции с примерамиhelp topic=types— каталог типов данных для реквизитовhelp topic=objectTypes— список всех типов объектов, которые можно создатьhelp topic=formTypes— типы формhelp topic=propertyValues— форматы значений свойствhelp topic=workflow— типичный сценарий работы от создания объекта до обработчиковhelp topic=matrixWorkflow— рабочий сценарий для матричных отчётов (товары × месяцы)help topic=composerWorkflow— обработка или отчёт с композитором настроек на форме: отборы, группировки, BSL-код инициализации
AI-ассистенту не нужно знать внутреннее устройство EDT — он спрашивает у инструмента, что доступно, и получает готовые примеры.
Объекты метаданных (8 операций)
Создаёт любой объект метаданных со всеми свойствами по умолчанию (такими же, как при создании через мастер EDT). Поддерживаемые типы (более 30): справочники, документы, обработки, отчёты, перечисления, регистры (сведений, накопления, бухгалтерии, расчёта), планы счетов, планы видов характеристик и расчёта, бизнес-процессы, задачи, планы обмена, общие модули, общие формы, общие команды, подсистемы, роли, константы, параметры сеансов, регламентные задания, функциональные опции, определяемые типы и другие. При создании регистров можно сразу задать измерения, ресурсы и документы-регистраторы. Для справочников, документов, обработок и отчётов — сразу же реквизиты и табличные части с колонками (параметры attributes и tabularSections). Всё создаётся одним вызовом — справочник с пятью реквизитами не требует шести отдельных запросов. Обязательные параметры для специфичных типов проверяются на входе — например, функциональная опция не создастся без ссылки на константу-хранилище.
Изменение свойств объекта: иерархия, тип кода, длина кода, длина наименования (descriptionLength), проведение, формы по умолчанию, периодичность регистра, картинка подсистемы и т.д. Картинки принимаются в двух форматах: стандартные (CreateFolder) и общие картинки конфигурации (CommonPicture.МояКартинка). Пакетный режим, русские и английские значения. При неизвестном имени свойства инструмент подсказывает самые близкие по написанию существующие свойства — защита от опечаток и созвучных имён.
Добавление реквизитов на объекты всех типов, у которых они вообще бывают: справочники, документы, обработки, отчёты, все 4 вида регистров, планы счетов, планы видов характеристик и расчёта, бизнес-процессы, задачи, планы обмена. Тип данных можно не указывать — по умолчанию ставится Строка длиной 10, как при нажатии кнопки «+ Реквизит» в EDT. Принимаются все примитивы (включая ХранилищеЗначения, ДвоичныеДанные, УникальныйИдентификатор, ТабличныйДокумент), ссылочные типы и определяемые типы (DefinedType.X / ОпределяемыйТип.X). Имена типов работают и по-русски, и по-английски. Пакетный режим.
Создание табличной части сразу с колонками. Тип колонки опциональный — как в addObjectAttribute.
Добавление колонок в уже существующую табличную часть. Тот же унифицированный формат типов.
Удаление реквизита объекта. Работает как правый клик → «Удалить» в дереве объектов EDT плюс автоматически чистит связанные элементы форм: поля, которые ссылались на удалённый реквизит, убираются со всех форм объекта. После операции формы валидны, обновление конфигурации базы данных проходит без ошибок. Поддерживаются справочники, документы, планы видов характеристик, задачи, бизнес-процессы, планы обмена, регистры (для ресурсов и измерений регистра — отдельная операция removeRegisterField).
Удаление табличной части целиком вместе со всеми её реквизитами. Все таблицы на формах объекта, привязанные к этой ТЧ, удаляются со всеми колонками автоматически. Если нужно убрать только один реквизит, оставив ТЧ — используйте removeTabularSectionAttribute.
Удаление одного реквизита (колонки) табличной части. Саму ТЧ оставляет. Колонки таблиц на формах, ссылавшиеся на удалённый реквизит, убираются автоматически — сама таблица и остальные колонки остаются.
Специализированные объекты (6 операций)
Добавление и удаление полей всех 4 видов регистров (сведений, накопления, бухгалтерии, расчёта): ресурсы, измерения, реквизиты. А также признаки учёта и признаки учёта субконто для плана счетов (тип по умолчанию — Булево, как в мастере EDT). Вид поля задаётся на русском или английском. Для реквизитов/ресурсов/измерений тип данных опциональный (по умолчанию Строка длиной 10).
Добавление значений в перечисление. Одиночный и пакетный режим.
Включение и исключение объектов из состава подсистемы. Идемпотентно.
Назначение прав роли на объекты метаданных. Русские и английские имена прав (Чтение/Read, Добавление/Insert и др.). Пакетный режим, идемпотентно.
Задаёт состав определяемого типа (ОпределяемыйТип) одним вызовом. Принимает массив FQN входящих типов: ["CatalogRef.Пользователи", "CatalogRef.ВнешниеПользователи"]. После этого определяемый тип можно указывать как тип реквизита через type: "DefinedType.X".
Формы (15 операций)
Создаёт форму через встроенный генератор EDT. Все типы: форма элемента, списка, выбора, группы, записи регистра, общая. Параметр setAsDefault=true назначает форму основной.
Реквизиты формы (фильтры, временные таблицы, динамические списки). Колонки можно добавлять в существующие реквизиты-таблицы без пересоздания.
Таблица динамического списка со всеми свойствами, которые появляются у таблицы списка в мастере EDT: строка поиска, автообновление, быстрый отбор над колонками, режим отображения «Список». Колонки задаются вручную или подбираются автоматически по набору полей источника.
Элементы формы
addField — поле ввода (тип определяется автоматически)
addGroup — группа: обычная, страницы, страница, группа колонок, командная панель, группа кнопок
addButton — кнопка с пользовательской командой формы ИЛИ со стандартной командой платформы (PostAndClose, Write, Copy, SetDeletionMark, Generate и др.) — достаточно указать standardCommand, обработчик в модуле формы не нужен, поведение знает сама платформа. Для 22 самых частых стандартных команд (проведение, запись, копирование, перечитать, пометка на удаление, обновить, найти, справка, старт бизнес-процесса, сформировать отчёт и др.) иконка и режим «картинка + текст» проставляются автоматически — кнопка сразу выглядит как в типовых конфигурациях, без отдельного вызова. Поддерживаются параметры расположения (parent, position: top/bottom/индекс).
addTable — таблица для табличной части или реквизита-таблицы формы. Колонки подбираются автоматически из источника данных (как при drag-and-drop ТЧ на форму в EDT) или задаются явно.
addDecoration — надпись для заголовков и пояснений
addRadioButton — переключатель (точки или тумблер) с произвольными вариантами
Универсальная установка свойств любого элемента: видимость, доступность, заголовок, цвет, шрифт, картинка, представление, расположение заголовка, размеры, выравнивание, направление раскладки и десятки других. Пакетный режим: за один вызов можно установить сразу несколько свойств одного элемента. Для кнопок — защита от типичной ошибки «установил картинку, а её не видно»: если указывается только picture на кнопке с текстом и дефолтным режимом представления, операция возвращает предупреждение с подсказкой, какой representation задать.
Поиск среди 763 стандартных картинок EDT по имени. Для общих картинок конфигурации (из раздела «Общие → Общие картинки») поиск не нужен — используйте формат CommonPicture.ИмяКартинки напрямую в setProperty или setObjectProperty.
Создаёт обработчик команды кнопки с правильной директивой. Поддерживает обычные формы и заимствованные (обработчики Перед, После, Вместо).
Добавляет на любую форму (обработки, отчёта, общей формы, формы документа) реквизит-композитор настроек компоновки данных с UI-таблицами — как галочка «Настройки на форме» в мастере EDT, но доступно не только отчётам. Ставит сразу: реквизит типа КомпоновщикНастроек, таблицу «Структура» (дерево группировок), группу пользовательских настроек и привязку ExtInfo формы. Опциональный параметр standardItems регулирует, какие UI-таблицы вывести: только структура (по умолчанию), алиас full — полный набор (группировки + отборы + сортировка + условное оформление), либо произвольный список. Ответ операции содержит готовый BSL-пример для обработчика ПриСозданииНаСервере — с корректной передачей схемы через временное хранилище и правильным вызовом ПолучитьМакет в зависимости от того, где лежит макет (обработка / справочник / отчёт / общий). Полный сценарий сборки от объекта до BSL-кода формирования результата — в справочнике через help topic=composerWorkflow.
Макеты печатных форм (4 операции)
Полная поддержка создания макетов — от пустого объекта до готовой печатной формы, без переключения в EDT. Макеты можно создавать у справочников, документов, обработок, отчётов, а также как общие макеты конфигурации.
Создание макета. Поддерживаемые типы: табличный документ (по умолчанию), текстовый документ, схема компоновки данных, макет оформления компоновки, двоичные данные, активный документ, HTML-документ, географическая схема, графическая схема, внешняя компонента. Принимает русские имена типов (Табличный, Текстовый, СКД, Двоичные данные, …) и английские.
Установка содержимого одной ячейки табличного макета: текст, цвет текста и фона, шрифт (жирный/курсив/подчёркнутый/размер/имя), горизонтальное и вертикальное выравнивание, пометка ячейки как параметра (для подстановки данных при печати).
Объединение диапазона ячеек табличного макета (от столбца A строки N до столбца B строки M).
Пакетное заполнение макета одним вызовом: массив ячеек, массив объединений, ширины колонок, высоты строк, именованные области (Шапка, СтрокаТовара, Подвал — на эти имена ссылается код печати через Макет.ПолучитьОбласть("Шапка")). За один вызов можно собрать целый бланк.
Типичный сценарий печатной формы: один createObject + один addTemplate + один drawTemplate со всеми ячейками, объединениями и областями — готовый макет, идентичный нарисованному вручную в EDT. Код вывода печатной формы пишется обычным write_module_source.
Расширения (4 операции)
Полная поддержка работы с расширениями конфигурации:
Заимствовать один объект из базовой конфигурации. По умолчанию — только сам объект. С параметром recursive=true — объект вместе со всеми дочерними элементами (реквизиты, табличные части, формы, команды).
Заимствовать несколько объектов базы одним вызовом по явному списку — например, пять справочников и два документа. Альтернатива многократному вызову adoptObject и альтернатива recursive=true, когда хочется именно эти объекты без их форм и реквизитов. В ответе — результат по каждому объекту отдельно (заимствован, уже был, не удалось). Ошибка на одном объекте не прерывает обработку остальных.
Заимствовать конкретный дочерний элемент: реквизит, табличную часть, форму, команду, измерение, ресурс.
Заимствовать элемент внутри заимствованной формы (главный реквизит, команду, параметр).
При добавлении реквизитов со ссылочными типами инструмент автоматически заимствует связанные объекты.
Отчёты СКД (22 операции)
Полный цикл создания отчётов со схемой компоновки данных. Все операции работают не только для отчётов: схема компоновки и её наполнение (наборы данных, параметры, группировки, отборы, сортировки и т.д.) теперь доступны также в макетах обработок, справочников, документов, планов счетов, бизнес-процессов, задач и планов обмена — везде, где в 1С бывают макеты типа «Схема компоновки данных». Для не-отчётов указывается имя макета через параметр templateName.
Базовое создание
createReportSchema — создание схемы с готовым скелетом (источник данных, вариант настроек, автополе).
addDataSet — набор данных (запрос, объект, объединение).
addDataSetField — поле в набор данных.
addSchemaParameter — параметр схемы.
Вычисления и итоги
addCalculatedField — вычисляемое поле (выражение над другими полями).
addTotalField — ресурс с агрегацией (Сумма, Количество, Максимум и др.).
Структура настроек
addSettingsGroup — группировка (обычная, детальные записи).
addSettingsTable — таблица с группировками по строкам и колонкам.
addSettingsChart — диаграмма с точками и сериями.
addSettingsSelectedField / removeSettingsSelectedField — управление выбранными полями.
removeSettingsItem — удаление группировки, таблицы или диаграммы.
Отборы, сортировка, оформление
addSettingsFilter — элемент отбора (20+ типов сравнения).
addSettingsFilterGroup — группа отборов (И/ИЛИ/НЕ).
addSettingsOrder — сортировка.
addConditionalAppearance / removeConditionalAppearance — условное оформление с полным набором параметров (формат, цвета, шрифт, отступы и др.).
setDataSetFieldAppearance — статическое оформление поля.
Параметры и варианты
setSettingsParameter — значение параметра схемы.
setOutputParameter — параметры вывода (заголовок, макет оформления, тип диаграммы и др.). Принимает русские и английские названия.
addSettingsVariant — новый вариант отчёта (глубокая копия настроек).
addUserField — пользовательское поле.
Пример создания минимального отчёта — 6 вызовов: создание объекта, схемы, набора данных с запросом, ресурса, группировки и заголовка.
Общее (2 операции)
Перемещение элемента в другой контейнер на конкретную позицию.
Удаление элемента по имени.
Пакетные режимы
Большинство операций поддерживают создание нескольких элементов за один вызов — передавайте массив вместо одиночного элемента. Это позволяет, например, создать справочник с 10 реквизитами, табличной частью и формой за 3–4 вызова вместо 15.
createObject принимает сразу реквизиты (attributes) и табличные части с колонками (tabularSections) — полноценный справочник или документ создаётся одним вызовом.
adoptObjects — пакетное заимствование нескольких объектов из базы в расширение по явному списку (альтернатива рекурсивному режиму, когда не нужно тянуть формы и реквизиты).
Режим предпросмотра (dryRun)
К любой операции можно добавить параметр dryRun=true — плагин выполнит её внутри транзакции и откатит: в ответе виден полный результат (что было бы создано, какие реквизиты, поля, формы), а в проекте ничего не меняется. Полезно для перепроверки сложных пакетных вызовов и уточнения правильности типов (CatalogRef.X, ОпределяемыйТип.Y) — ошибка резолва типа в режиме предпросмотра не испортит проект.
Режим работает для всех операций конструктора метаданных (создание/модификация объектов, реквизитов, форм, элементов формы, макетов, отчётов СКД). Не поддерживается для adoptObject/adoptObjects/adoptChild и удаления реквизитов/табличных частей — эти операции по устройству платформы используют отдельные механизмы, которые нельзя откатить. При передаче dryRun в такую операцию плагин возвращает внятное пояснение вместо молчаливого применения.
Что пока не реализовано
- HTTP-сервисы (HTTPService) — создавайте вручную в EDT.
- Декорация-картинка (пока только надписи).
- Создание проекта расширения с нуля (расширение должно уже существовать в рабочем пространстве).
- Создание подписок на события через createObject.
- Редактирование настроек не-основного варианта отчёта.