Кабинет
На этой странице

Рецепты

Рефакторинг метода

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

обновлено 30.09.2026плагин 0.2.0 · EDT 2025.2Предложить правку или письмом

Предпосылки

  • Метод в вашем модуле, открытом для изменения. В примерах — CommonModule.<Модуль>::<Метод>, новое имя — <НовоеИмя>.
  • Методы модулей, закрытых поставщиком, не переименовывайте: вызовы в поставке не обновятся при следующем обновлении конфигурации.
  • Действует ключ или бесплатный доступ.

Шаги

1. Снапшот

snapshot_write
{ "operation": "create", "label": "до переименования <Метод>" }

2. Кто вызывает метод

code_graph
{
  "project": "УТ2020",
  "target": "CommonModule.<Модуль>::<Метод>",
  "operation": "callers",
  "depth": 2
}

Граф показывает не только прямые вызовы. Отдельными видами рёбер отмечены:

  • implicit — привязка в метаданных: подписка на событие, регламентное задание, HTTP-сервис, событие или команда формы;
  • hook — перехват &Перед, &После, &Вместо из расширения;
  • string — имя метода в строке: ОписаниеОповещения, ВыполнитьВФоне, выражения СКД. Такие места переименование не обновит — их нужно проверить руками.

Если вызывающих нет, секция Checked перечисляет, где именно искали.

3. Все ссылки

search
{
  "operation": "references",
  "project": "УТ2020",
  "target": "CommonModule.<Модуль>::<Метод>"
}

Ответ делится на #### certain (N) — точные ссылки, которые обновит переименование, — и #### possible (N) — текстовые совпадения в строках и метапрограммировании, которые нужно посмотреть человеку.

4. Переименовать

code_action
{
  "project": "УТ2020",
  "module_fqn": "CommonModule.<Модуль>",
  "operation": "rename_method",
  "method": "<Метод>",
  "new_name": "<НовоеИмя>"
}

Объявление и вызовы обновляются во всех открытых проектах, включая расширения. В ответе — поля old_name, new_name, число изменённых файлов files_changed и обновлённых ссылок references_updated. Предпросмотра у переименования нет: оно меняет несколько файлов сразу, поэтому снапшот на шаге 1 обязателен.

5. Разобрать possible

Для каждой строки из possible на шаге 3 откройте место через code_read с операцией method и при необходимости поправьте строку через code_write с операцией edit.

Проверка

  • code_graph с target: "CommonModule.<Модуль>::<НовоеИмя>" — те же вызывающие, что были у старого имени.
  • search с операцией text и query: "<Метод>" — старое имя осталось только там, где это задумано.
  • validate с project: "УТ2020" — нет новых ошибок. Для чистой картины сначала project_action с операцией clean, затем validate с checkers: ["edt-builtin"].

Откат

snapshot_action
{ "operation": "restore", "snapshot_id": "<идентификатор снапшота из шага 1>" }

snapshot_read с операцией diff и тем же идентификатором показывает все изменённые модули до отката.

Нашли ошибку — предложите правку.обновлено 30.09.2026

Например: metadata_write, «порт занят», коллекционный адрес.

↑ ↓ выборEnter открыть/ или Ctrl K — открыть поиск