Инструменты · Код
code_graph
Строит граф вызовов вокруг метода — кто его вызывает и что вызывает он сам, на заданную глубину. Кроме прямых вызовов граф показывает неявные связи 1С — подписки на события, регламентные задания, HTTP- и веб-сервисы, события и команды форм, перехваты из расширений, имена в строках.
Когда использовать
- Перед изменением сигнатуры, переименованием или удалением метода —
callers: все вызывающие, включая неявные. - Понять, что метод тянет за собой, —
calleesкаскадом вниз, с отметками обращений к базе на узлах. - Обработчик подписки на событие выглядит мёртвым кодом — граф покажет привязку в метаданных.
- Текстовые вхождения имени без разбора вызовов —
search; кто использует объект метаданных —metadata_graph.
Соседние инструменты домена «Код»
Операции
| operation | Что делает | Нужно передать |
|---|---|---|
callersпо умолчанию | Кто вызывает метод, транзитивно до depth. Виды рёбер: static — точная ссылка; implicit — привязка в метаданных; platform — обработчик события платформы; hook — перехват из расширения; string — имя в строке (достоверность «возможно»). | project, target |
callees | Что вызывает метод, каскадом вниз до depth. Объект.Метод() разрешается по типам, а не по имени; вызов через реквизит формы сопоставляется с модулями владельца формы и помечается dynamic. | project, target |
Параметры
| Параметр и тип | Обязательный | Описание | По умолчанию |
|---|---|---|---|
projectстрока | да | Идентификатор проекта рабочей области EDT — имя из ответа project_read (например, УТ2020). Для расширения — проект расширения. | — |
targetстрока | да | Метод: <адрес модуля>::<Метод>, например CommonModule.ОбщегоНазначения::ЗначениеРеквизитаОбъекта, Document.РеализацияТоваровУслуг.ObjectModule::ОбработкаПроведения. | — |
operationстрока | нет | Операция инструмента — значения и их смысл в таблице «Операции».значения: callers · callees | callers |
depthцелое | нет | Глубина обхода в уровнях вызовов. | 2 |
includeмассив (строка) | нет | Какие виды рёбер собирать. По умолчанию — все, что поддерживает направление: dynamic — только для callees, остальные пять — для callers. Сузьте, если результат упирается в лимит узлов.значения: static · dynamic · implicit · platform · hook · string | — |
max_nodesцелое | нет | Лимит узлов обхода. При превышении ответ предупреждает и называет число отброшенных узлов — охват не режется молча. | 300 |
filterстрока | нет | Регулярное выражение без учёта регистра по адресам узлов: сохраняет путь от корня до совпадений и всё поддерево совпавшего узла. | — |
titleстрока | нет | Необязательная подпись вызова до 40 символов: клиент показывает её в шапке карточки вызова. На результат не влияет. | — |
limitцелое | нет | Окно чтения: сколько строк готового ответа вернуть. По умолчанию 200, максимум 1000. | 200 |
offsetцелое | нет | Окно чтения: номер строки ответа, с которой начать (0 — первая страница). Значение для следующей страницы подсказывает строка *lines: …* в конце ответа. | 0 |
Таблица собрана из схемы инструмента, которую получает агент при подключении.
Адреса
Цель задаётся параметром target: адрес модуля, два двоеточия, имя метода. Та же запись принимается search с операцией references.
| Адрес | Что адресует |
|---|---|
CommonModule.ОбщегоНазначения::ЗначениеРеквизитаОбъекта | метод общего модуля |
Document.РеализацияТоваровУслуг.ObjectModule::ОбработкаПроведения | обработчик в модуле объекта |
Catalog.Контрагенты.Form.ФормаЭлемента::ПриСозданииНаСервере | метод модуля формы |
HTTPService.<Сервис>::<Метод> | метод модуля HTTP-сервиса |
Пример вызова и ответа
Популярный метод: только точные ссылки и один уровень, чтобы не упереться в лимит узлов. Ответ — дерево, у каждого узла все строки вызова (L582, L592), признаки Асинх и Ждать, вид ребра; дайджест > Σ считает методы, места вызова и модули.
{
"project": "УТ2020",
"operation": "callers",
"target": "CommonModule.ОбщегоНазначения::ЗначениеРеквизитаОбъекта",
"depth": 1,
"include": ["static"]
}Пример ответа в подготовке Устройство ответа — на странице Формат ответов.
Отказы и ошибки
Ничего не найдено
Если вызывающих нет, секция Checked перечисляет, где искали: индекс ссылок, привязки в метаданных, события платформы, перехваты, строки. Ноль без области проверки инструмент не утверждает.
Лимит узлов
Популярный метод даёт тысячи узлов. Уменьшите depth, сузьте include или увеличьте max_nodes — в ответе сказано, сколько узлов отброшено.
failed · Unknown operation
Неизвестное значение operation. В ответе — fix_hint: supported: … со списком допустимых операций и секция Did you mean. Допустимо: callers, callees.
failed · лицензия
Без действующего ключа инструмент отвечает карточкой failed с сообщением лицензия: … и подсказкой, где ввести ключ; в секции Context — список инструментов, доступных без ключа. Подробнее — Лицензия и бесплатный доступ.
Ограничения
- Обход проходит через границу проектов: перехват
&Вместов расширении и тело перехватчика — в одном ответе; переход отмечен значком🧩и именем проекта. - Вызовы между соседними расширениями одной конфигурации находятся по имени модуля и помечены «соседнее расширение».
- Первый вызов после запуска EDT может идти долго — Таймаут первого поиска ссылок.