1С и ИИ на практике: личный опыт работы с кодовой базой (1)

В этой статье я хочу поделиться личным опытом работы с 1С при помощи ИИ и кратко рассказать о возможностях, которые уже проверил на практике. Возможно, это будет кому-то полезно.

Из-за локальных ограничений, придется разделить статью несколько частей.

Сначала перечислю, чем именно агент оказался полезен в работе с 1С. А затем разберу реальный кейс из моего проекта.

Что ИИ уже может делать в 1С на практике

По моему опыту, в режиме агента ИИ уже реально помогает в таких задачах:

-Анализировать код и искать технические ошибки: потенциальные проблемы типов данных, которые проявляются только при определенных условиях, рискованные запросы к регистрам и справочникам, неверные вызовы функций и ошибки клиент-серверного контекста. -Анализировать учетную логику целиком: разбирать по коду, как документы формируют движения, как пересчитываются остатки, какие проверки выполняются при проведении и где могут быть потенциально опасные места — неполные проверки, неверная точность сравнения, микроостатки, расхождения между количеством и суммой, риск отрицательных остатков. -Находить причины уже возникших проблем на копии живой базы: при помощи инструментов агент может работать с реальными данными, прослеживать движения документов, проверять остатки по регистрам, находить проблемные партии и определять, где именно возникает ошибка — в коде, в логике проведения, в последовательности документов или в самих данных базы. -Строить карту зависимостей перед изменением: какие формы, модули, документы, регистры, отчеты и запросы может затронуть правка, где нужны дополнительные проверки и что важно не сломать. -Объяснять сложные функции и цепочки вызовов человеческим языком: что поступает на вход, какие функции вызываются дальше, что рассчитывается на каждом этапе, какие данные меняются и почему код устроен именно так. -Исправлять и писать отдельные функции в стиле существующей конфигурации, используя похожие примеры из кодовой базы. -Помогать с более крупными модулями: разложить задачу на части, подготовить структуру, связать функции между собой и проверить крайние случаи. Автоматизировать рабочий цикл: загрузить код в тестовую базу, запустить проверки, выполнить smoke-test, прочитать логи и предложить следующий шаг.

Как у меня устроена работа

С 1С я работаю через обычный конфигуратор. Но для работы с ИИ предварительно выгружаю конфигурацию в файлы. Уже с этой папкой работает агент: читает модули, формы, XML-метаданные, планы изменений, отчеты анализа и логи.

В работе я использую ChatGPT в режиме агента: VS Code, Codex, собственные скрипты и отдельный набор правил для работы с 1С. Начинал с версии 5.1, сейчас остановился на 5.5, не 5.6 пока не испльзую.

Основная и важная часть правил — это описание взаимодействия с 1С из внешних инструментов: как запускать платформу из PowerShell, как загружать выгрузку конфигурации в тестовую базу, как выполнять проверки и как подключаться к базе через COM. Отдельно зафиксированы практические нюансы COM и PowerShell: аргументы запуска 1С передаются массивами, COM-методы вызываются через InvokeMember, для методов без параметров используется пустой массив аргументов, а структуры 1С при необходимости распаковываются из массива пар Ключ/Значение и т.д.

За счет этого значительную часть процесса удалось автоматизировать: загрузить выгрузку конфигурации в тестовую базу, выполнить проверку конфигурации, обновить базу, запустить smoke-test, проверить реальные данные, сформировать CSV/Markdown-отчеты, прочитать логи и уже по результату перейти к следующей правке.