1C:EDT MCP Tools — Reference Guide
MCP-сервер 1c-edt предоставляет прямой доступ к семантическому индексу EDT (BM model), платформенной документации, проверкам и управлению проектом. Все инструменты работают через живой экземпляр EDT и используют реальный AST/семантику, а не текстовый поиск.
When to Use
Используй инструменты 1c-edt когда:
- Нужно прочитать исходный код модуля или отдельного метода
- Нужно понять структуру модуля (список процедур/функций) без чтения всего файла
- Нужно найти все вызывающие места метода (call hierarchy)
- Нужно найти все ссылки на объект метаданных (references)
- Нужно проверить ошибки проекта или конкретного объекта
- Нужна документация по типам платформы (ТаблицаЗначений, Массив и т.д.)
- Нужно получить автодополнение (content assist) в конкретной позиции кода
- Нужно найти код по тексту/регулярному выражению во всех модулях
- Нужно получить свойства объектов метаданных или конфигурации
- Нужно обновить базу данных или запустить отладку
Prerequisites Check
Перед первым использованием любого инструмента проверь доступность MCP-сервера — вызови любой инструмент EDT-MCP (например get_edt_version).
Если сервер не отвечает — сообщи пользователю:
EDT MCP сервер недоступен. Для использования инструментов анализа кода необходимо:
- Запустить 1C:EDT с открытым workspace
- Убедиться, что плагин EDT MCP Server установлен и активен (порт 8765)
Не пытайся вызывать инструменты без работающего сервера.
Important
- Параметр
projectName— имя проекта в EDT workspace (напримерРНК_ЕРПУХилиРНК_ЕРПУХ.Расширение1) - Параметр
modulePath— путь относительно папкиsrc/проекта (напримерCommonModules/Пользователи/Module.bsl) - Параметр
objectFqn— полное квалифицированное имя (напримерDocument.SalesOrder,Catalog.Products,CommonModule.Common). Поддерживает русские имена типов:Справочник.Номенклатура,Документ.ЗаказКлиента,ОбщийМодуль.ОбщегоНазначения - Все инструменты требуют предварительной загрузки через
ToolSearchс запросомselect:mcp__1c-edt__<tool_name>
Tools by Category
1. Code Reading, Navigation and Editing
read_module_source — Чтение исходного кода модуля
Читает весь BSL-файл или диапазон строк. Возвращает код с номерами строк.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
modulePath |
да | Путь к BSL-файлу (CommonModules/MyModule/Module.bsl) |
startLine |
нет | Начальная строка (1-based) |
endLine |
нет | Конечная строка (1-based, включительно) |
Совет: Для больших модулей используй startLine/endLine вместо чтения целиком.
write_module_source — Запись BSL-кода в модуль
Записывает BSL-код в модули объектов метаданных с автоматической проверкой синтаксиса. Поддерживает три режима: поиск и замена фрагмента, полная замена модуля, добавление в конец. Модуль можно указать либо через modulePath, либо через objectName + moduleType.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
modulePath |
нет* | Путь от src/ (Documents/MyDoc/ObjectModule.bsl). Альтернатива objectName + moduleType |
objectName |
нет* | Полное имя объекта (Document.MyDoc, CommonModule.MyModule). Поддерживает русские имена |
moduleType |
нет | Тип модуля: ObjectModule (по умолчанию), ManagerModule, FormModule, CommandModule, RecordSetModule |
source |
да | BSL-код: для searchReplace — новый код замены, для replace — полное содержимое, для append — добавляемый код |
oldSource |
нет** | Существующий код для замены (обязателен для searchReplace). Должен совпадать ровно в одном месте файла |
mode |
нет | Режим: searchReplace (по умолчанию), replace, append |
formName |
нет | Имя формы (обязательно при moduleType=FormModule) |
commandName |
нет | Имя команды (обязательно при moduleType=CommandModule) |
skipSyntaxCheck |
нет | Пропустить проверку синтаксиса (по умолчанию false). Проверяет парность Процедура/КонецПроцедуры, Если/КонецЕсли и т.д. |
Преимущество: автоматическая проверка синтаксиса после записи — ошибки обнаруживаются сразу.
read_method_source — Чтение одного метода
Извлекает код конкретной процедуры/функции по имени. Не нужно читать весь модуль.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
modulePath |
да | Путь к BSL-файлу |
methodName |
да | Имя процедуры/функции (регистронезависимо) |
get_module_structure — Структура модуля
Возвращает список всех процедур/функций с сигнатурами, номерами строк, регионами, директивами компиляции и флагом Экспорт. Позволяет понять модуль без чтения всего кода.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
modulePath |
да | Путь к BSL-файлу |
includeVariables |
нет | Включить объявления переменных модуля (по умолчанию false) |
includeComments |
нет | Включить doc-комментарии методов (по умолчанию false) |
get_method_call_hierarchy — Иерархия вызовов (callers/callees)
Находит вызывающие (callers) или вызываемые (callees) методы через семантический индекс EDT (AST, не текстовый поиск). Аналог Call Hierarchy в IDE.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
modulePath |
да | Путь к BSL-файлу, где определён метод |
methodName |
да | Имя процедуры/функции (регистронезависимо) |
direction |
нет | callers (кто вызывает, по умолчанию) или callees (что вызывает метод) |
limit |
нет | Макс. результатов (по умолчанию 100, макс. 500) |
go_to_definition — Переход к определению символа
Навигация к определению метода или объекта метаданных. Обратная операция к find_references: вместо поиска использований — находит, где символ определён. Поддерживает русские имена типов метаданных.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
symbol |
да | Символ для поиска определения. Форматы: МодульИмя.МетодИмя (метод общего модуля), МетодИмя (метод в контекстном модуле, требует modulePath), FQN метаданных (Catalog.Products, Документ.ЗаказКлиента) |
modulePath |
нет | Контекстный модуль (Documents/SalesOrder/ObjectModule.bsl). Обязателен когда symbol — неквалифицированное имя метода |
includeSource |
нет | Включить исходный код метода (по умолчанию true) |
get_symbol_info — Информация о символе в позиции кода
Получает type/hover информацию о символе в конкретной позиции BSL-файла — то же, что EDT показывает при наведении мыши. Полезно для понимания типов переменных в динамически типизированном BSL.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
filePath |
да | Путь к BSL-файлу относительно src/ |
line |
да | Номер строки (1-based) |
column |
да | Номер колонки (1-based) |
Возвращает: имя символа, тип (Function/Procedure/Parameter и др.), сигнатуру, параметры, документацию.
list_modules — Список модулей
Перечисляет все BSL-модули объекта или всего проекта (МодульОбъекта, МодульМенеджера, МодулиФорм и т.д.).
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
objectName |
нет | Имя объекта (Products). Без него — все модули проекта |
metadataType |
нет | Фильтр по типу (documents, catalogs, commonModules, informationRegisters, accumulationRegisters, reports, dataProcessors, exchangePlans, businessProcesses, tasks, constants, commonCommands, commonForms, webServices, httpServices) |
nameFilter |
нет | Подстрока для фильтрации по пути модуля (регистронезависимо) |
limit |
нет | Макс. результатов (по умолчанию 200, макс. 1000) |
ai_context - Агрегированный контекст объекта
Собирает в одном вызове metadata, список BSL-модулей и структуру модуля. Заменяет последовательность get_metadata_details + list_modules + get_module_structure одним запросом - экономит round-trips. Поддерживает уровни детализации.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
target |
да | FQN объекта (Catalog.Products, CommonModule.MyModule, Справочник.Номенклатура) или путь модуля (CommonModules/MyModule/Module.bsl) |
depth |
нет | minimal (metadata + список модулей), standard (+ структура методов, по умолчанию), full (+ исходный код) |
focusMethod |
нет | Имя метода для детального анализа - только его исходник включается в режиме full |
includeSource |
нет | Включать исходный код независимо от depth. По умолчанию: false для minimal/standard, true для full |
maxMethods |
нет | Макс. методов в структуре на модуль (по умолчанию 30) |
Совет: Используй перед тем как начать доработку объекта - один вызов вместо трех.
diff_module - Сравнение модуля с VCS
Показывает что изменилось в BSL-модуле по сравнению с предыдущей версией в git: добавленные/измененные/удаленные методы, построчный diff. Критично для code review.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
modulePath |
нет* | Путь от src/ (Documents/MyDoc/ObjectModule.bsl). Альтернатива objectName + moduleType |
objectName |
нет* | Полное имя объекта (Document.MyDoc, DataProcessor.MyProcessor, Документ.МойДок) |
moduleType |
нет | Тип модуля (с objectName): ObjectModule (по умолчанию), ManagerModule, FormModule, CommandModule, RecordSetModule |
mode |
нет | summary (обзор методов, по умолчанию), unified (полный git diff), methods (отдельный diff на каждый измененный метод) |
contextLines |
нет | Количество строк контекста для unified (по умолчанию 3) |
formName |
нет | Имя формы (обязательно при moduleType=FormModule) |
commandName |
нет | Имя команды (обязательно при moduleType=CommandModule) |
Новый файл: если модуль не в VCS - вернет isNewFile: true и список всех методов как добавленных.
2. Code Search
search_in_code — Полнотекстовый поиск по коду
Поиск по всем BSL-модулям конфигурации. Поддерживает текст и regex, регистрозависимость, контекстные строки, фильтрацию по пути и типу метаданных.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
query |
да | Текст поиска или regex-паттерн |
isRegex |
нет | Использовать как regex (по умолчанию false) |
caseSensitive |
нет | Регистрозависимый поиск (по умолчанию false) |
fileMask |
нет | Фильтр по подстроке пути модуля (CommonModules, Documents/SalesOrder) |
metadataType |
нет | Фильтр по типу метаданных (documents, catalogs, commonModules и т.д.) |
contextLines |
нет | Кол-во строк контекста (по умолчанию 2, макс. 5) |
maxResults |
нет | Макс. совпадений (по умолчанию 100, макс. 500) |
outputMode |
нет | Режим вывода: full (совпадения с контекстом, по умолчанию), count (только количество, быстро), files (список файлов с числом совпадений) |
get_content_assist — Автодополнение кода
Получает предложения автодополнения в конкретной позиции BSL-файла. Открывает файл в редакторе EDT.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
filePath |
да | Путь к BSL-файлу |
line |
да | Номер строки (1-based) |
column |
да | Номер колонки (1-based) |
contains |
нет | Фильтр по подстроке (через запятую: Insert,Add) |
extendedDocumentation |
нет | Полная документация (по умолчанию false) |
limit |
нет | Макс. предложений |
offset |
нет | Пропустить N предложений (пагинация) |
3. Metadata Inspection
get_metadata_objects — Список объектов метаданных
Возвращает Name, Synonym, Comment, Type, наличие модулей. Поддерживает фильтрацию.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
metadataType |
нет | Тип: all, documents, catalogs, informationRegisters, accumulationRegisters, commonModules, enums, constants, reports, dataProcessors, exchangePlans, businessProcesses, tasks, commonAttributes, eventSubscriptions, scheduledJobs |
nameFilter |
нет | Частичное совпадение имени (регистронезависимо) |
language |
нет | Язык синонимов (en, ru) |
limit |
нет | Макс. результатов (по умолчанию 100) |
get_metadata_details — Детальные свойства объектов
Возвращает полные свойства объектов метаданных (реквизиты, ТЧ, формы, макеты и т.д.).
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
objectFqns |
да | Массив FQN: ['Catalog.Products', 'Document.SalesOrder'] |
full |
нет | Все свойства (true) или ключевые (false, по умолчанию) |
language |
нет | Язык синонимов |
find_references — Поиск ссылок на объект метаданных
Находит все места использования объекта: в других метаданных, в BSL-коде с номерами строк, формах, ролях, подсистемах. Работает только для top-level объектов.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
objectFqn |
да | FQN объекта (Catalog.Products, CommonModule.Common) |
limit |
нет | Макс. результатов на категорию (по умолчанию 100) |
rename_metadata_object — Переименование с рефакторингом
Переименовывает объект метаданных или реквизит с каскадным обновлением всех ссылок: BSL-код, формы, метаданные. Работает в режиме preview + confirm.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
objectFqn |
да | FQN объекта. Top-level: Catalog.Products. Вложенный: Document.SalesOrder.Attribute.Amount |
newName |
да | Новое имя |
confirm |
нет | true — выполнить. По умолчанию false — только preview |
disableIndices |
нет | Индексы точек изменений для пропуска через запятую ('2,3,5') |
maxResults |
нет | Макс. точек изменений в preview (по умолчанию 20, 0 = без ограничений) |
Workflow: первый вызов без confirm → просмотр изменений → второй вызов с confirm=true. Через disableIndices можно исключить отдельные изменения.
delete_metadata_object — Удаление с очисткой ссылок
Удаляет объект метаданных или реквизит с очисткой ссылок. Работает в режиме preview + confirm.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
objectFqn |
да | FQN объекта (Catalog.Products, Document.SalesOrder.Attribute.Amount) |
confirm |
нет | true — выполнить. По умолчанию false — только preview |
add_metadata_attribute — Добавление реквизита
Добавляет новый реквизит к объекту метаданных (справочник, документ, регистр и др.) через EDT.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
parentFqn |
да | FQN родительского объекта (Catalog.Products, Document.SalesOrder) |
attributeName |
да | Имя нового реквизита |
get_configuration_properties — Свойства конфигурации
Имя, синоним, комментарий, вариант скрипта, режим совместимости и т.д.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Имя проекта (без него — первый проект конфигурации) |
4. Platform Documentation
get_platform_documentation — Документация платформы
Документация по типам, методам, свойствам и встроенным функциям платформы 1С. Поддерживает русские и английские имена.
| Параметр | Обязательный | Описание |
|---|---|---|
typeName |
да | Имя типа: ValueTable, ТаблицаЗначений, Array, Structure |
memberName |
нет | Фильтр по методу/свойству: Add, Insert, Count |
memberType |
нет | Тип: method, property, constructor, event, all |
category |
нет | Категория: type (типы платформы) или builtin (встроенные функции) |
language |
нет | Язык вывода: en или ru (по умолчанию en) |
projectName |
нет | Для определения версии платформы |
limit |
нет | Макс. результатов (по умолчанию 50) |
5. Error Checking and Validation
get_problem_summary — Сводка проблем
Количество проблем по проектам и уровням серьёзности (ERRORS, BLOCKER, CRITICAL, MAJOR, MINOR, TRIVIAL).
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Имя проекта (без него — все проекты) |
get_project_errors — Детальные ошибки проекта
Возвращает код проверки, описание, расположение объекта, уровень серьёзности. Фильтрация по объектам, серьёзности, ID проверки.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Имя проекта |
objects |
нет | Фильтр по FQN: ['Document.SalesOrder', 'Catalog.Products'] |
severity |
нет | Фильтр: ERRORS, BLOCKER, CRITICAL, MAJOR, MINOR, TRIVIAL |
checkId |
нет | Фильтр по ID проверки (подстрока, например ql-temp-table-index) |
limit |
нет | Макс. результатов (по умолчанию 100, макс. 1000) |
get_check_description — Описание проверки EDT
Markdown-описание проверки: объяснение, примеры, как исправить.
| Параметр | Обязательный | Описание |
|---|---|---|
checkId |
да | ID проверки (например begin-transaction, ql-temp-table-index) |
revalidate_objects — Перевалидация объектов
Запускает повторную валидацию проекта или конкретных объектов.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
objects |
нет | Массив FQN для валидации. Пустой массив = весь проект |
validate_query — Валидация запросов 1С
Проверяет текст запроса в контексте проекта — синтаксис и семантика. Поддерживает режим СКД (DCS).
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
queryText |
да | Текст запроса на языке запросов 1С |
dcsMode |
нет | Режим СКД (по умолчанию false). Включить для запросов СКД |
clean_project — Очистка проекта
Обновляет файлы с диска, очищает маркеры валидации, запускает полную перевалидацию.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Имя проекта (без него — все проекты EDT) |
6. Form Inspection and Editing
get_form_screenshot — Скриншот формы
Получает PNG-скриншот формы из WYSIWYG-редактора EDT. Возвращает изображение как embedded resource. Без параметров — снимает скриншот текущего открытого редактора формы.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Имя проекта EDT. Обязателен если указан formPath |
formPath |
нет | FQN формы через точку: Catalog.Products.Forms.ItemForm, Document.SalesOrder.Forms.DocumentForm, CommonForm.MyForm. Без него — текущий открытый редактор |
refresh |
нет | Принудительное обновление WYSIWYG перед снимком (по умолчанию false) |
Примечание: Нестабильно — иногда возвращает чёрное изображение. Попробовать refresh: true или перезапустить EDT.
edit_form - Редактирование управляемой формы
Добавляет или удаляет элементы формы (поля, группы, кнопки, таблицы, декорации) через BM API без ручного редактирования Form.xml. Шесть операций: addField, addGroup, addButton, addTable, addDecoration, removeItem + help для встроенной документации.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
formFqn |
да | FQN формы (Catalog.Products.Form.ItemForm) |
operation |
да | addField, addGroup, addButton, addTable, addDecoration, removeItem, help |
name |
нет | Имя элемента (обязателен для add/remove операций) |
title |
нет | Подпись/заголовок элемента |
elementType |
нет | Для addField: InputField (по умолчанию), CheckBox, RadioButton, Label, Image. Для addGroup: UsualGroup (по умолчанию), Pages, Page, Column, CommandBar. Для addDecoration: Label (по умолчанию) или Picture |
dataPath |
нет | Путь данных для привязки поля (Object.Name, Object.Products) |
parentName |
нет | Имя родительского контейнера (по умолчанию - корень формы) |
beforeName |
нет | Вставить перед элементом с этим именем |
Совет: Начинай с operation: "help" - возвращает детальную документацию операций с примерами.
Совет: addButton автоматически создает связанную команду с именем <name> + Command.
7. Tags and Organization
get_tags — Список тегов проекта
Пользовательские метки для организации объектов. Возвращает имя, цвет, описание, количество объектов.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
get_objects_by_tags — Объекты по тегам
Объекты с указанными тегами (ANY из списка). Возвращает описания тегов и FQN объектов.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
tags |
нет | Массив имён тегов: ['Important', 'NeedsReview'] |
limit |
нет | Макс. объектов на тег (по умолчанию 100) |
8. Workspace and Tasks
list_projects — Список проектов workspace
Все проекты с именами, путями, типами и natures. Без параметров.
get_bookmarks — Закладки
Сообщение закладки, путь к файлу, номер строки.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Фильтр по проекту |
filePath |
нет | Фильтр по подстроке пути |
limit |
нет | Макс. результатов (по умолчанию 100, макс. 1000) |
get_tasks — Задачи (TODO/FIXME)
Задачи из кода (TODO, FIXME и т.д.) с приоритетами.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Фильтр по проекту |
filePath |
нет | Фильтр по подстроке пути |
priority |
нет | Фильтр: high, normal, low |
limit |
нет | Макс. результатов (по умолчанию 100, макс. 1000) |
get_edt_version — Версия EDT
Возвращает версию 1C:EDT. Без параметров.
9. Application Management
get_applications — Список приложений (информационных баз)
ID приложения, имя, тип, состояние обновления. ID нужен для update_database и debug_launch.
Важно: Вызывать от основного проекта конфигурации, не от расширения. Приложения привязаны к конфигурации, расширение не имеет собственных приложений.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT (основная конфигурация, не расширение) |
update_database — Обновление базы данных
Полное (full reload) или инкрементальное обновление. Требует applicationId из get_applications.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
applicationId |
да | ID приложения из get_applications |
fullUpdate |
нет | Полная перезагрузка (true) или инкрементальная (false, по умолчанию) |
autoRestructure |
нет | Автоматическая реструктуризация (по умолчанию true) |
debug_launch — Запуск отладки
Запускает приложение в режиме отладки через существующую конфигурацию запуска.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
applicationId |
да | ID приложения из get_applications |
updateBeforeLaunch |
нет | Обновить БД перед запуском (по умолчанию true) |
10. Debugging
Группа инструментов для пошаговой отладки BSL-кода: точки останова, ожидание срабатывания, инспекция переменных, вычисление выражений, управление выполнением, запуск YAXUnit-тестов.
Типичный цикл: debug_launch (или debug_yaxunit_tests) → set_breakpoint → wait_for_break → get_variables / evaluate_expression → step / resume.
debug_status - Статус debug-сессий
Возвращает активные debug-запуски: режим (debug/run), приостановлена ли цель, количество потоков, строка верхнего frame если приостановлено.
| Параметр | Обязательный | Описание |
|---|---|---|
applicationId |
нет | Фильтр по id приложения |
set_breakpoint - Установка breakpoint
Устанавливает точку останова на строку BSL-модуля. Принимает EDT-относительный путь (CommonModules/Foo/Module.bsl) или абсолютный путь файла.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Имя проекта EDT (обязателен при EDT-относительном пути) |
module |
да | Путь к модулю (EDT-относительный или абсолютный) |
lineNumber |
да | Номер строки (1-based) |
Совет: После установки вызывай wait_for_break чтобы блокирующе ждать срабатывания.
list_breakpoints - Список активных breakpoints
Возвращает все установленные точки останова. Опциональный фильтр по проекту.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
нет | Фильтр по проекту |
remove_breakpoint - Удаление breakpoint
Удаляет точку останова. Можно передать либо breakpointId (возвращенный из set_breakpoint), либо координаты projectName + module + lineNumber.
| Параметр | Обязательный | Описание |
|---|---|---|
breakpointId |
нет | ID маркера из set_breakpoint |
projectName |
нет | Имя проекта (при поиске по координатам) |
module |
нет | Путь модуля (при поиске по координатам) |
lineNumber |
нет | Номер строки (при поиске по координатам) |
wait_for_break - Ожидание срабатывания breakpoint
Блокирующе ждет suspend-событие (срабатывание breakpoint) на указанном приложении. При срабатывании возвращает снимок приостановленного потока/frame. При таймауте возвращает {hit: false} (не прерывая запуск - можно вызвать снова).
| Параметр | Обязательный | Описание |
|---|---|---|
applicationId |
да | ID приложения запущенной debug-сессии |
timeout |
нет | Окно ожидания в секундах (по умолчанию 60) |
resume - Продолжить выполнение
Возобновляет приостановленный debug-поток или все потоки debug-цели. Передать threadId (из wait_for_break) или applicationId (возобновить все потоки цели).
| Параметр | Обязательный | Описание |
|---|---|---|
threadId |
нет | ID потока из wait_for_break |
applicationId |
нет | ID приложения (возобновляет все потоки цели) |
step - Пошаговое выполнение
Шагает приостановленный debug-поток. Блокирующе ждет следующего SUSPEND-события (или таймаута), возвращает новый снимок frame.
| Параметр | Обязательный | Описание |
|---|---|---|
threadId |
да | ID потока из wait_for_break |
kind |
да | Вид шага: over, into, out |
timeout |
нет | Окно ожидания в секундах (по умолчанию 30) |
get_variables - Переменные стек-frame
Читает переменные из stack-frame приостановленного потока. Передать frameRef из wait_for_break (предпочтительно) или threadId + frameIndex. Для раскрытия вложенных структур используй expandPath.
| Параметр | Обязательный | Описание |
|---|---|---|
frameRef |
нет | Стабильная ссылка на frame из wait_for_break |
threadId |
нет | ID потока (альтернатива frameRef) |
frameIndex |
нет | Индекс frame (0-based, при использовании threadId) |
expandPath |
нет | Путь через точку для раскрытия вложенной переменной (Объект.Товары) |
evaluate_expression - Вычисление BSL-выражения
Вычисляет произвольное BSL-выражение в контексте приостановленного stack-frame. ВНИМАНИЕ: выполняет произвольный BSL-код в запущенном 1С-приложении - может изменить состояние.
| Параметр | Обязательный | Описание |
|---|---|---|
frameRef |
да | Стабильная ссылка на frame из wait_for_break |
expression |
да | BSL-выражение для вычисления |
debug_yaxunit_tests - Запуск YAXUnit-тестов в debug режиме
Запускает YAXUnit-тесты с подключением отладчика (breakpoints срабатывают). Возвращается сразу после постановки в очередь - далее вызывай wait_for_break. Используй узкий фильтр тестов (один метод) для предсказуемости.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
applicationId |
да | ID приложения из get_applications |
extensions |
нет | Имена расширений через запятую (фильтр по расширению) |
modules |
нет | Имена модулей через запятую (фильтр) |
tests |
нет | Имена тестов в формате Module.Method (рекомендуется: один тест) |
Требования: существующая конфигурация запуска 1С + YAXUnit установлен в информационной базе.
run_yaxunit_tests - Запуск YAXUnit-тестов без отладки
Запускает YAXUnit-тесты, polls до завершения (до timeout секунд), возвращает JUnit Markdown-отчет. Если запуск продолжается после окна polling - возвращает Pending, вызови снова для дожидания. Запуск НЕ прерывается при таймауте. Полный отчет также пишется в report.md рядом с junit.xml.
| Параметр | Обязательный | Описание |
|---|---|---|
projectName |
да | Имя проекта EDT |
applicationId |
да | ID приложения из get_applications |
extensions |
нет | Имена расширений через запятую |
modules |
нет | Имена модулей через запятую |
tests |
нет | Имена тестов в формате Module.Method |
timeout |
нет | Окно polling в секундах (по умолчанию 60) |
11. Profiling
Замер производительности (profiling) BSL-кода: счетчики вызовов и тайминги на каждую выполненную строку. Требует активную debug-сессию.
start_profiling - Включить замер производительности
Переключает замер производительности на активной debug-цели. После включения - запустить тестовый сценарий, затем вызвать get_profiling_results.
| Параметр | Обязательный | Описание |
|---|---|---|
applicationId |
да | ID приложения запущенной debug-сессии |
Требования: активная debug-сессия (debug_launch или debug_yaxunit_tests).
get_profiling_results - Результаты профилирования
Возвращает данные профилирования: по модулю, по строке - количество вызовов, время, процент. Опциональный фильтр по имени модуля и минимальной частоте вызовов.
| Параметр | Обязательный | Описание |
|---|---|---|
moduleFilter |
нет | Фильтр подстроки по имени модуля |
minFrequency |
нет | Включать только строки вызванные минимум N раз (по умолчанию 1) |
Typical Workflows
Анализ незнакомого модуля
get_module_structure— получить список методовread_method_source— прочитать нужные методыget_method_call_hierarchy— понять, откуда вызываются
Поиск использований объекта метаданных
find_references— все ссылки на объект (код, формы, роли, подсистемы)search_in_code— дополнительный текстовый поиск если нужно
Проверка качества после изменений
revalidate_objects— перевалидировать изменённые объектыget_project_errorsс фильтром по объектам — получить ошибкиget_check_description— понять суть ошибки и как исправить
Валидация запросов
validate_query— проверить текст запроса на синтаксис и семантикуvalidate_queryсdcsMode=true— проверить запрос СКД
Обновление и тестирование
get_applications— получить ID приложенияupdate_database— обновить базуdebug_launch— запустить в отладке
Навигация к определению
go_to_definitionсsymbol— найти определение метода или объектаget_symbol_info— получить тип символа в конкретной позицииread_method_source— прочитать код, если нужно больше контекста
Рефакторинг метаданных
find_references— проверить все ссылки перед изменениемrename_metadata_objectсpreview=true— просмотр каскадных измененийrename_metadata_objectсconfirm=true— выполнить переименованиеrevalidate_objects— проверить результат
Модификация метаданных через EDT
add_metadata_attribute— добавить реквизит (вместо ручного редактирования XML)delete_metadata_object— удалить объект/реквизит с очисткой ссылокwrite_module_source— записать BSL-код с автопроверкой синтаксиса
Изучение API платформы
get_platform_documentationсtypeName— документация по типуget_content_assist— автодополнение в контексте кода
Сбор контекста перед доработкой
ai_contextсtarget=<FQN объекта>иdepth=standard- одним вызовом получить метаданные + список модулей + структуру методов- При необходимости углубиться в конкретный метод -
depth=full+focusMethod=<имя>
Code review изменений модуля
diff_moduleсmode=summary- обзор какие методы добавлены/изменены/удалены- Если нужен детальный разбор -
mode=methods(отдельный diff на каждый измененный метод) - Для полного контекста изменений -
mode=unified(git diff)
Отладка BSL-кода
get_applications- получитьapplicationIddebug_launch- запустить приложение в режиме отладкиset_breakpoint- установить breakpoint в нужном методе- Запустить сценарий через UI приложения или
debug_yaxunit_tests wait_for_break- дождаться срабатывания breakpointget_variablesсframeRef- посмотреть значения переменныхevaluate_expression- вычислить BSL-выражение в контексте остановкиstep(over/into/out) илиresume- продолжить выполнениеremove_breakpoint- снять breakpoint после завершения
Профилирование BSL-кода
debug_launchилиdebug_yaxunit_tests- активная debug-сессияstart_profilingсapplicationId- включить замер- Выполнить тестовый сценарий (через UI или YaxUnit)
get_profiling_resultsсmoduleFilter- получить данные по вызовам/времени- Использовать
minFrequencyдля фильтрации редко вызываемых строк
Модификация формы без ручного XML
edit_formсoperation=help- получить справку по операциямget_form_screenshot- визуально оценить текущее состояние формыedit_formсoperation=addField/addGroup/addButton/addTable/addDecoration- добавить элементыedit_formсoperation=removeItem- удалить ненужные элементыget_form_screenshotсrefresh=true- проверить результат