15 октября 2026 г.
Сравнение затрат на токены: выгрузка XML 1С vs граф связей Grafon для ИИ-ассистентов
Почему XML-выгрузка конфигурации 1С сжигает бюджет на токены
Типовая конфигурация (ERP 2.5, УТ 11, ЗУП 3.1, КА 2) при выгрузке в файлы Configuration.xml + *.bsl даёт 8–15 ГБ текста: сотни тысяч строк кода, десятки тысяч модулей объектов, менеджеров, форм и общих модулей. Если передать такую выгрузку ИИ-агенту (Claude Code, Cursor, Windsurf, Roo Code) в репозиторий как обычный проект, то даже простая задача «почему неверно рассчитывается себестоимость при проведении РеализацииТоваровУслуг» заставляет агента:
- индексировать тысячи модулей;
- по несколько раз перечитывать
ОбщегоМодуляПроведение,ПартионныйУчет,РасчетСебестоимостиТоваров; - тянуть целые формы и менеджеры только ради одной ссылки.
Каждый вызов grep и read_file возвращает десятки тысяч токенов «на всякий случай». При контексте 200 тыс. токенов у Claude агент уходит в цикл сжатия (compaction), теряет ранее прочитанный код и начинает галлюцинировать: придумывает несуществующие методы, путает файлы МодульОбъекта.bsl разных документов, ссылается на реквизиты, которых нет.
Простой расчёт. Средний модуль объекта 1С — 1500 строк ≈ 20 000 токенов. Типовой общий модуль партионного учёта — 6000 строк ≈ 80 000 токенов. Задача по себестоимости у пользователя в XML-режиме легко съедает 400–800 тыс. токенов на итерацию. При $3/$15 за 1M input/output у Claude Sonnet — это $2–$8 за один-единственный запрос. Умножьте на 30 итераций в день — получите полный месячный бюджет команды, улетевший в пустоту.
Как устроен граф связей Grafon
Графон — локальный инструмент и MCP-сервер. Он один раз парсит конфигурацию 1С в файловом виде (или через выгрузку) и строит граф зависимостей:
- узлы — объекты метаданных (
Документ.РеализацияТоваровУслуг), реквизиты, формы, элементы формы, процедуры и функции BSL, подписки на события, тексты запросов, движения регистров; - рёбра — вызовы (
ВызватьПроцедуру), переопределения (&Вместо,&После), обработчики (ПодпискаНаСобытие), использование метаданных внутри запросов, чтение/запись регистров.
Все данные лежат локально, никакой исходный код конфигурации наружу не уходит. ИИ-агент общается с Графоном по протоколу MCP — он вызывает «инструменты» вместо того, чтобы читать файлы целиком.
Ключевые MCP-инструменты Графона:
find_symbol— найти символ по имени;get_context_slice— вернуть минимальный срез кода вокруг символа плюс его сигнатуры и прямые зависимости;get_callers/get_callees— кто вызывает и кого вызывает;get_event_subscriptions— все подписки на событие;get_module_skeleton— только сигнатуры процедур без тел;traverse_graph— обойти граф на N уровней от узла.
Практический сценарий: подписки на проведение документа
Задача: понять, какие механизмы срабатывают при проведении РеализацияТоваровУслуг.
Без Графона агент читает файл Документы/РеализацияТоваровУслуг/МодульОбъекта.bsl, затем ищет &После, &Вместо, подписки в Configuration.xml, тянет все подозрительные модули и в итоге читает 300–600 тыс. токенов.
С Графоном агент делает один MCP-вызов:
{
"method": "tools/call",
"params": {
"name": "get_event_subscriptions",
"arguments": {
"event": "ОбработкаПроведения",
"metadata": "Документ.РеализацияТоваровУслуг",
"depth": 2,
"include_signatures": true
}
}
}
Ответ — компактный граф:
{
"subscriptions": [
{
"module": "ОбщийМодуль.ПартионныйУчет",
"procedure": "ОбработкаПроведения",
"condition": "Документ.РеализацияТоваровУслуг, Документ.ПеремещениеТоваров",
"calls": ["ПолучитьДанныеПартий", "СписатьСПартии"],
"lines": "12040-12180"
}
]
}
Далее агент запрашивает только тела нужных процедур:
// ОбщийМодуль.ПартионныйУчет, строки 12040-12180
Процедура ОбработкаПроведения(Источник, Отказ) Экспорт
ДанныеПартий = ПолучитьДанныеПартий(Источник);
Если ДанныеПартий.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Для Каждого Партия Из ДанныеПартий Цикл
Если СтрНачинаетсяС(Партия.ВидДвижения, "Расход") И Партия.Количество > ДоступноеКоличество(Партия) Тогда
Отказ = Истина;
Сообщить("Недостаточно товара " + Партия.Номенклатура);
...
Итого 3–7 тыс. токенов вместо 400 тыс. — это и есть источник экономии до 10x.
Таблица сравнения: токены и время
| Сценарий | XML-выгрузка | Grafon (MCP) | Экономия |
|---|---|---|---|
| Найти подписки на проведение документа | 320 000 токенов | 4 200 токенов | 76x |
| Изменить расчёт себестоимости в партионке | 780 000 токенов | 62 000 токенов | 12x |
| Добавить реквизит + провести по формам | 240 000 токенов | 28 000 токенов | 8.5x |
| Аудит всех вызовов метода ПроверитьЗаполнение | 510 000 токенов | 19 000 токенов | 26x |
| Добавить новую подписку на событие | 180 000 токенов | 6 500 токенов | 27x |
| Средняя итерация правки документа | ~400 000 | ~35 000 | ~11x |
По времени: XML-итерация 6–14 минут из-за чтения и сжатия контекста, Grafon-итерация 40–90 секунд. Это ускоряет рабочий день разработчика в 5–8 раз.
Деньги: как это выглядит в чеке Claude Sonnet 4.5
Возьмём команду из 5 разработчиков, 30 итераций в день, средний input + output по 1.5x от input.
- Без Графона: 30 × 400k × 1.5 = 18M токенов/день на человека ≈ $54/день, ≈ $1200/месяц на команду.
- С Графоном: 30 × 35k × 1.5 = 1.6M токенов/день ≈ $4.8/день, ≈ $108/месяц.
Экономия — больше $1000 в месяц на пятерых. И это без учёта времени: те самые 6–10 минут ожидания на итерации × 30 итераций × 5 человек = 15–25 часов в день команды, которые сгорают в ожидании контекста.
Как подключить Графон к ИИ-ассистенту
- Установите Графон локально (инструкции на https://grafonbase.ru).
- Укажите путь к выгрузке конфигурации 1С — Графон сам построит граф и будет обновлять его по изменениям.
- Подключите MCP-сервер в вашем агенте:
// ~/.claude/mcp.json для Claude Code
{
"mcpServers": {
"grafon": {
"command": "grafon",
"args": ["serve", "--project", "/opt/1c/erp-2.5"]
}
}
}
- В промпте явно скажите агенту: «Используй инструменты Grafon через MCP, не читай BSL-файлы напрямую». После этого агент сам начнёт ходить в граф.
Пример MCP-ответа на get_context_slice:
{
"symbol": "ОбщийМодуль.ПартионныйУчет.ПолучитьДанныеПартий",
"signature": "Функция ПолучитьДанныеПартий(Документ) Экспорт",
"file": "CommonModules/ПартионныйУчет/Ext/Module.bsl",
"lines": "11850-11930",
"calls": ["ЗапросПартий", "РазложитьПоРегистрам"],
"callers": ["ОбработкаПроведения", "ОбработкаУдаленияПроведения"],
"queries": ["РегистрНакопления.ТоварыНаСкладах"]
}
Агент получает точный срез, строит план правки и делает точечный патч — без галлюцинаций по несуществующим методам.
Итог
XML-выгрузка плохо сочетается с ИИ-ассистентами: контекст переполняется, стоимость токенов растёт в разы, а качество ответов падает. Граф связей Grafon работает как локальный MCP-слой семантической навигации по конфигурации 1С: агент запрашивает только нужные ветви графа и получает сигнатуры и тела процедур в объёме 3–7 тыс. токенов вместо сотен тысяч. На практике это даёт сокращение расходов на токены до 10x, ускорение итераций в 5–8 раз и устранение галлюцинаций при работе с ERP, УТ, ЗУП и КА.
Если ваша команда уже платит за Claude Code, Cursor или Windsurf и работает с крупной конфигурацией 1С — переход на граф связей Grafon окупается в первую же неделю.