Код-ревью в 1С с помощью ИИ: как собрать RAG-ассистента без Git, Sonar и EDT | infolimp.ru

Код-ревью в 1С с помощью ИИ: как собрать RAG-ассистента без Git, Sonar и EDT

19 июня 2026 · infolimp.ru

Проверка чужого кода в 1С часто превращается в рутину: конфигуратор не показывает историю изменений, EDT есть не у всех, а SonarQube требует настройки. При этом ИИ-ассистенты уже научились находить типовые ошибки — если дать им доступ к кодовой базе.

Суть метода: RAG для локальной базы 1С

Retrieval-Augmented Generation (RAG) — это техника, где:

Для 1С это означает обход ограничений IDE и анализ кода без полного экспорта в Git.

Пошаговая сборка

1. Выгрузка модулей

Удобный вариант без лишних зависимостей — выгрузка через командную строку конфигуратора (при условии, что база не заблокирована активными сеансами):

1cv8c DESIGNER /F "C:\bases\mybase" /DumpCfg "C:\export\config.cf"

После этого config.cf распаковывается утилитой v8Reader (open-source, GitHub; поддерживает форматы 8.2–8.3.x — для новых релизов платформы проверьте актуальность) в папку с отдельными файлами .bsl — по одному на каждый модуль.

Если работаете в облачной 1С:Fresh или без shell-доступа к серверу, DumpCfg недоступен — тогда используйте ручную выгрузку через меню конфигуратора или EDT-экспорт, если он есть. Для файловых баз v8Reader читает бинарный формат напрямую, без запуска платформы.

2. Подготовка чанков

3. Запрос к LLM

Пример структуры промпта:

Проанализируй код 1С на типовые проблемы:
1. COM-объекты без явного вызова глобальной функции ОсвободитьОбъект(ОбъектCOM)
2. Отсутствие обработки ошибок в транзакциях (НачатьТранзакцию без Попытка)
3. Запросы внутри циклов (потенциальный N+1)
Тип модуля: {клиентский/серверный/общий}
Код: {релевантный_фрагмент}

Подводные камни

Размер контекста

Большие модули (500+ строк) не помещаются в контекстное окно LLM. Решение:

Кириллица в именах

Старые или количественно сжатые (quantized) модели — особенно локальные через Ollama — иногда путают кириллические идентификаторы с ключевыми словами. Варианты:

Типы модулей

Ошибки в клиентском модуле формы (например, вызов серверного метода без &НаСервере) требуют понимания контекста. Поможет явное указание в промпте:

// Модуль: Обработка.Форма.ОсновнаяФорма (клиентский)

Практический вывод

RAG-подход даёт точку входа в автоматический анализ кода даже без CI/CD — при условии, что команда самостоятельно настраивает чанкинг и проверяет качество выводов LLM на своём кодовом примере. Достаточно:

  1. Выгружать конфигурацию перед анализом
  2. Дробить код на осмысленные фрагменты
  3. Формулировать конкретные критерии проверки

Это не замена ручному ревью, но фильтр для очевидных ошибок — когда других инструментов просто нет.

Профессиональные решения для 1С и marketplace-интеграций — каталог отчётов и инструментов на витрине НОПи.

Перейти в каталог решений →