В большой конфигурации 1С поиск по имени часто оказывается только началом работы. Найденный объект может использоваться в модулях, формах, запросах и расширениях. Чтобы понять, что затронет изменение, приходится прослеживать эти связи вручную.

Graphify-1C — мой проект на основе открытого Graphify. Он строит единый поисковый граф файловой выгрузки 1С: основной конфигурации, выбранных расширений, метаданных и модулей BSL. Граф помогает перейти от вопроса к конкретным исходникам и проверить найденные связи.

Что попадает в граф

Инструмент создаёт узлы для объектов метаданных, реквизитов, табличных частей, форм, модулей и методов. Для них сохраняется происхождение: конфигурация или конкретное расширение, путь к XML или BSL и, где возможно, номер строки. Отдельные связи показывают состав объектов, вызовы методов, ссылки на метаданные, чтение в запросах и записи в регистры. Связи заимствования и перехвата помогают увидеть, какие расширения меняют один и тот же объект или метод.

Для работы агента предназначен локальный индекс SQLite: по нему можно искать объект и просматривать входящие или исходящие связи небольшими порциями. Человеку доступен HTML-граф для визуального исследования.

Как использовать

После установки graphify-1c в корне проекта с файловой выгрузкой 1С можно подключить локальные инструкции для агентов и построить граф:

graphify-1c init-project .
graphify-1c analyze ./src --out graphify-out/graph.json --html graphify-out/graph.html

Затем команды graphify-1c index search, neighbors, explain и path помогают найти объект, посмотреть его окружение и проследить путь между узлами. Команда graphify-1c update . обновляет граф после изменения исходников. Порядок установки и примеры для разных агентов есть в README проекта.

Граф служит навигацией по кандидатам, а не доказательством полного анализа программы. Динамические вызовы, сложные запросы и поток данных могут остаться неразрешёнными; найденные места нужно проверять в исходниках. Подробнее о возможностях и текущих ограничениях — в репозитории Graphify-1C.