10 сентября 2026 г.
Анализ графа зависимостей модулей 1С для нейросетей: как Grafon ускоряет ИИ-агентов в 10 раз
Почему нейросети «тонут» в модулях 1С
Типовая конфигурация 1С:ERP, УТ, ЗУП или КА — это гигабайты XML-метаданных и сотни тысяч строк BSL. Один общий модуль может занимать 30–50 тыс. строк, модуль формы — ещё 20–40 тыс., а цепочка вызовов уходит в десятки объектов. Если ИИ-агент получает задачу «исправь проведение реализации», он часто читает весь модуль объекта, формы, общие модули и подписки. Контекстное окно переполняется, стоимость токенов растёт в 10 раз, агент начинает путать методы и галлюцинировать.
Именно здесь нужен анализ графа зависимостей модулей 1С для нейросетей. Вместо «прочитай всё» агент должен получить точный срез: какие процедуры вызываются, где лежат сигнатуры, какие подписки срабатывают, какие запросы связаны с объектом.
Что такое граф зависимостей модулей 1С
Граф зависимостей — это формализованное представление конфигурации: узлы и рёбра. Grafon строит его локально по XML-выгрузке и BSL-коду.
| Тип узла | Пример | Тип рёбер |
|---|---|---|
| Объект метаданных | Документ.РеализацияТоваровУслуг | uses, extends |
| Модуль | ОбщийМодуль.УчетНДС | contains |
| Процедура/функция | СформироватьДвижения | calls, called_by |
| Форма | ФормаДокумента.РеализацияТоваровУслуг | handler, uses |
| Подписка | ПередЗаписью.РеализацияТоваровУслуг | subscribes |
| Запрос | Запрос.НДС_Движения | query_source |
Grafon не просто индексирует текст, а разбирает BSL в AST, извлекает вызовы, связи «объект — модуль — процедура — подписка — запрос» и хранит граф в локальном индексе. Это и есть основа для MCP-сервера.
Архитектура Grafon и MCP
Схема работы:
XML-выгрузка 1С → парсер метаданных → BSL AST → граф зависимостей → MCP-сервер → Claude Code / Cursor / Windsurf / Roo Code
Ключевые MCP-инструменты Grafon:
| Инструмент | Назначение |
|---|---|
| grafon.search_objects | Поиск объектов и символов по имени/синониму |
| grafon.get_context | Точный срез файлов и сигнатур для задачи |
| grafon.get_dependencies | Прямые зависимости объекта |
| grafon.get_call_graph | Кто вызывает процедуру и кого вызывает она |
| grafon.get_impact | Влияние изменения на конфигурацию |
| grafon.get_signatures | Только сигнатуры без тел модулей |
Пример MCP-запроса:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "grafon.get_context",
"arguments": {
"object": "Документ.РеализацияТоваровУслуг",
"depth": 2,
"include": ["modules", "subscriptions", "queries"]
}
}
}
В ответ агент получает не 300 КБ XML, а список релевантных файлов, сигнатур и рёбер. Дальше он читает только то, что нужно.
BSL-пример: от задачи к контексту
Допустим, в модуле объекта есть проведение:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
ЗаписатьДвиженияПоРегистрам(Отказ);
Если НЕ ПроверитьОстатки() Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Grafon находит, что ЗаписатьДвиженияПоРегистрам определена в ОбщийМодуль.УчетНДС, ПроверитьОстатки — в ОбщийМодуль.ПроверкаОстатков, а на ПередЗаписью документа подписана процедура ПередЗаписьюРеализации. Запрос к графу вызовов:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "grafon.get_call_graph",
"arguments": {
"symbol": "ОбщийМодуль.УчетНДС.ЗаписатьДвиженияПоРегистрам",
"direction": "callers",
"depth": 3
}
}
}
Агент получает точный список: Документ.РеализацияТоваровУслуг.МодульОбъекта.ОбработкаПроведения, Подписка.ПередЗаписью.РеализацияТоваровУслуг, ещё 2–3 места. Без Grafon он бы открыл весь УчетНДС, весь модуль объекта и форму.
Сравнение: без Графона и с Графоном
| Сценарий | Без Графона | С Графоном | Экономия |
|---|---|---|---|
| Найти вызовы процедуры | grep + 5–10 модулей, ~120k токенов | get_call_graph, ~8k токенов | ~15x |
| Добавить реквизит и движения | ~250k токенов, 2–3 часа | ~15k токенов, 15–20 минут | ~10x |
| Рефакторинг общего модуля | ~1M токенов, день | ~60k токенов, 2 часа | ~10–15x |
| Code review изменений | ~400k токенов, 1–2 часа | ~25k токенов, 15 минут | ~16x |
| Онбординг в чужую конфигурацию | неделя | 1–2 дня | 3–5x |
Главное — не только токены. Агент перестаёт «додумывать» несуществующие методы, потому что видит реальные сигнатуры и связи.
Практические сценарии
1. Баг в проведении документа
Задача в Claude Code: «Почему не формируются движения по НДС в реализации?» Агент вызывает grafon.search_objects по НДС, затем grafon.get_context для документа с глубиной 2. Получает Документ.РеализацияТоваровУслуг, ОбщийМодуль.УчетНДС, РегистрНакопления.НДС. Дальше анализирует только эти файлы.
2. Добавление подписки на событие
Перед созданием новой подписки агент запрашивает grafon.get_dependencies для объекта и видит существующие ПередЗаписью, ПриЗаписи, ПередПроведением. Это исключает дублирование логики.
3. Безопасный рефакторинг
Перед переименованием процедуры агент вызывает grafon.get_impact. В ответ приходят все вызывающие модули, формы и подписки. Если в списке есть динамический вызов через Выполнить(), Grafon помечает риск.
Настройка в Claude Code, Cursor и Windsurf
Пример конфигурации MCP:
{
"mcpServers": {
"grafon": {
"command": "grafon-mcp",
"args": ["--config", "/path/to/1c-dump", "--mode", "stdio"]
}
}
}
Для Claude Code можно добавить сервер командой:
claude mcp add grafon -- grafon-mcp --config /path/to/1c-dump --mode stdio
Графон работает локально: исходники и граф не уходят в облако. Это важно для B2B-разработки и контуров с NDA.
Ограничения и best practices
- Индексируйте актуальную XML-выгрузку после изменений.
- Для задач используйте глубину 2–3, а не «всю конфигурацию».
- Динамические вызовы через
Выполнить()могут быть неполными — проверяйте вручную. - Граф не заменяет тесты и отладку, но убирает слепой поиск.
- Храните MCP-конфиг в репозитории команды, чтобы поведение агентов было одинаковым.
Итог
Анализ графа зависимостей модулей 1С для нейросетей — это способ дать ИИ-агенту не весь проект, а точный контекст. Grafon строит локальный граф метаданных, BSL-процедур, подписок и запросов, отдаёт его через MCP в Claude Code, Cursor, Windsurf или Roo Code. В результате — до 10 раз меньше токенов, быстрее ответы и меньше галлюцинаций. Для команд, которые внедряют ИИ в разработку 1С, это становится базовой инфраструктурой.