Инструменты · Код
code_action
Действия с кодом, которые выходят за одно место в модуле — переименование метода с обновлением всех вызовов, обёртка &Перед, &После или &Вместо над методом базовой конфигурации в расширении и новый модуль со стандартными областями.
Когда использовать
- Переименовать метод так, чтобы обновились вызовы во всех модулях и проектах, —
rename_method. Перед этим —code_graphиsearchс операциейreferences. - Изменить поведение метода типовой конфигурации из расширения —
add_hook: сигнатура берётся у исходного метода, аннотация ставится сама. - У заимствованного или нового объекта нет модуля —
init_moduleсоздаёт его со стандартными областями для своего вида. - Обычная правка одного метода —
code_write.
Соседние инструменты домена «Код»
Операции
| operation | Что делает | Нужно передать |
|---|---|---|
rename_method | Переименовывает метод и обновляет места вызова во всех модулях открытых проектов. В ответе — старое и новое имя, число изменённых файлов и обновлённых ссылок. | project, module_fqn, method, new_name |
add_hook | Создаёт в модуле расширения метод-обёртку над методом базовой конфигурации с аннотацией &Перед, &После или &Вместо. Сигнатура читается у исходного метода; для &Вместо в тело добавляется ПродолжитьВызов(…). Поддерживает предпросмотр. | project — расширение, module_fqn, kind, target_method, handler_name; по желанию body, area, dry_run |
init_module | Создаёт пустой модуль со стандартными областями по виду модуля — например, для заимствованного в расширение объекта. | project, module_fqn |
Параметры
| Параметр и тип | Обязательный | Описание | По умолчанию |
|---|---|---|---|
projectстрока | да | Идентификатор проекта рабочей области EDT — имя из ответа project_read (например, УТ2020). Для расширения — проект расширения. | — |
module_fqnстрока | да | Адрес модуля: CommonModule.X, Catalog.X.ObjectModule, Catalog.X.ManagerModule, InformationRegister.X.RecordSetModule, <Тип>.X.Form.Y (модуль формы). Русские префиксы и суффиксы тоже принимаются. | — |
operationстрока | да | Операция инструмента — значения и их смысл в таблице «Операции».значения: rename_method · add_hook · init_module | — |
methodстрока | для rename_method | Для rename_method: текущее имя метода. | — |
new_nameстрока | для rename_method | Для rename_method: новое имя. | — |
kindстрока | для add_hook | Для add_hook: вид обёртки — Перед, После, Вместо (или Before, After, Around). | — |
target_methodстрока | для add_hook | Для add_hook: имя метода в базовой конфигурации, который перехватывается. | — |
handler_nameстрока | для add_hook | Для add_hook: имя нового метода-обёртки в расширении. | — |
bodyстрока | нет | Для add_hook: дополнительный текст тела обёртки. | — |
areaстрока | нет | Для add_hook: область #Область, куда поместить обёртку; по умолчанию СлужебныеПроцедурыИФункции. Отсутствующая стандартная область создаётся. | — |
skip_validationбулево | нет | Для add_hook: не проверять синтаксис после записи. Включайте, только если уверены. | false |
dry_runбулево | нет | Только для add_hook: предпросмотр — ответ содержит diff и результат проверки синтаксиса, модуль не меняется. Для rename_method и init_module не поддерживается. | false |
titleстрока | нет | Необязательная подпись вызова до 40 символов: клиент показывает её в шапке карточки вызова. На результат не влияет. | — |
Таблица собрана из схемы инструмента, которую получает агент при подключении.
Адреса
Адрес модуля задаётся параметром module_fqn. Для add_hook проект — расширение, а модуль — модуль заимствованного объекта.
| Адрес | Что адресует |
|---|---|
CommonModule.<Модуль> | общий модуль — для переименования |
Document.РеализацияТоваровУслуг.ObjectModule | модуль объекта заимствованного документа — для перехвата и init_module |
Пример вызова и ответа
{
"project": "УТ2020.<Расширение>",
"module_fqn": "Document.РеализацияТоваровУслуг.ObjectModule",
"operation": "add_hook",
"kind": "После",
"target_method": "ОбработкаПроверкиЗаполнения",
"handler_name": "<Префикс>_ОбработкаПроверкиЗаполненияПосле",
"dry_run": true
}Пример ответа в подготовке Устройство ответа — на странице Формат ответов.
Отказы и ошибки
Метод не найден
Имени нет в модуле или в базовой конфигурации — ответ предлагает ближайшие имена.
Предпросмотр для переименования
dry_run поддерживается только у add_hook: переименование меняет несколько файлов сразу. Сделайте снапшот перед вызовом.
failed · Unknown operation
Неизвестное значение operation. В ответе — fix_hint: supported: … со списком допустимых операций и секция Did you mean. Допустимо: rename_method, add_hook, init_module.
failed · лицензия
Без действующего ключа инструмент отвечает карточкой failed с сообщением лицензия: … и подсказкой, где ввести ключ; в секции Context — список инструментов, доступных без ключа. Подробнее — Лицензия и бесплатный доступ.
Ограничения
- Переименование обновляет точные ссылки. Имя метода в строках —
ОписаниеОповещения,ВыполнитьВФоне, выражения СКД — проверьте вручную:code_graphпомечает такие связи видомstring,search— классомpossible. - Сразу после запуска EDT возможен ответ
QUANTA_AST_NOT_READY— повторите через 5–30 секунд.