Набор правил для ИИ-агента в 1С: настройка машины, выбор инструментов и внешняя обработка до зелёного теста
Разработка - Инструментарий разработчика
В комментариях к статье «Как подключить ИИ-агента к разработке 1С: по шагам» (//infostart.ru/1c/articles/2837232/, вышла 05.11) попросили инструкцию для самого агента. Вот она: набор правил и скриптов, по которым ИИ-агент (искусственный интеллект, работающий в папке с файлами и запускающий команды) сам готовит машину и проект внешней обработки, а дальше работает по циклу «правка → проверка кода → сборка → тесты». В наборе только общедоступные инструменты и проверка того, что они работают.
Часть 1. Настройка машины
- Агент снимает опись: Windows, свободная память, PowerShell, платформы 1С и их версии, git, YAxUnit (фреймворк модульных тестов для 1С), BSL Language Server (анализатор кода на встроенном языке 1С BSL), Docker, Claude Code или Codex.
- Показывает таблицу «есть / нет / чего не хватает».
- Предлагает выбрать путь проверки кода и справки:
- «Unica»: плагин для Claude Code и Codex. Проверяет код, делает ревью, ищет в справке платформы, правит метаданные и формы. Нужна платформа 8.3.27; плагин ставится только в этот проект;
- «Свои инструменты»: BSL Language Server и сервер справки платформы по протоколу MCP (Model Context Protocol, подключение инструментов к агенту) в Docker;
- «Своя связка»: если у вас свои средства проверки (1C:Enterprise Development Tools, Автоматизированная проверка конфигураций, свой линтер), агент сделает к ним обёртки по тем же правилам. Этот путь не проверялся.
- Ставит ядро (git, YAxUnit, скрипты сборки и тестов) и инструменты выбранного пути. Каждую вещь по одной, из официального источника и только после «да» человека. Платформу 1С и копию базы готовит человек.
- Про каждый пропущенный инструмент агент объясняет, что он дал бы и почему его не поставили.
Ядро нужно в любом пути: собирает обработку и запускает тесты только оно. Unica 0.13 собирает конфигурации и расширения, внешние обработки не собирает, запуска тестов в ней нет.
Часть 2. Проект внешней обработки
- Выгружает обработку в файлы или создаёт новую по шаблону, заводит git.
- Проверяет код инструментом своего пути и запоминает исходное число замечаний.
- Собирает обработку в копию базы одной командой.
- Создаёт расширение с тестами YAxUnit и доводит прогон до зелёного.
Необязательный шаг — сценарные тесты форм в Vanessa Automation.
На каждое новое замечание анализатора агент называет стандарт разработки 1С за ним и правит код по этому стандарту. Убрать замечание любой ценой правила не дают.
Часть 3. Конфигурация
Нужна, когда обработка работает с данными базы: например, считает суммы реализаций по контрагентам за период. Без конфигурации агент угадывает имена документов и регистров по памяти, а типовые конфигурации переименовывают их от релиза к релизу.
- Спрашивает каталог для выгрузки вне папки проекта. Выгрузка одна на конфигурацию, ей пользуются все обработки по этой конфигурации.
- Строит карту объектов. Файл версий выгрузки ConfigDumpInfo.xml конфигуратор отдаёт без модулей, и скрипт пишет по нему текстовый файл: у каждого объекта перечислены реквизиты, табличные части, измерения, ресурсы и значения перечислений, виды названы по-русски, как в запросах.
- Выгружает конфигурацию в XML. Когда база обновилась до нового релиза, тот же скрипт выгружает только изменившееся.
- Ищет по карте и выгрузке: тип реквизита, какие документы пишут в регистр, экспортные методы общего модуля, как типовая уже обращается к объекту.
На копии демобазы «Управление торговлей» 11.5 полная выгрузка заняла 2 мин 35 с: 51 651 файл, 2,1 ГБ. Карту скрипт строит за 6 с, в ней 13 804 объекта, и она совпала с XML объектов.
Имена объектов, реквизитов, регистров и общих модулей агент пишет в код только найденные в выгрузке. Если имени там нет, он спрашивает человека. Конфигурацию и расширения он не меняет, только читает.
Если карты и поиска по тексту мало, агент расспросит о задачах, размере конфигурации и памяти машины и предложит варианты: сторонние открытые MCP-серверы по метаданным 1С (mcp-1c, 1c-mcp-metacode) или свой индекс по образцу карты. Сторонние серверы описаны по их README, набор их не проверял. Поиск Unica по общей выгрузке не работает: Unica 0.13 принимает только выгрузку внутри проекта, а набор держит её отдельно.
Каждый шаг кончается проверяемым условием, например «код 0, тестов больше нуля». Ловушки записаны как правила с причиной. Пустой результат тестов не считается зелёным; оконное приложение 1С из PowerShell надо ждать явно; без пользователя базы конфигуратор и клиент ничего не делают; клиенту нужен русский язык интерфейса; код возврата сборки обработки ноль даже при битом модуле; новое расширение встаёт в безопасном режиме, и клиент тестов тогда стоит без окна на экране.
Отдельно лежит гайд «Unica на Windows»: установка в один проект, файлы проекта для внешней обработки, какие инструменты работают и насколько, известные ошибки и обходы. Работают не все навыки, обходы в гайде проверены живыми вызовами. Ревью кода проходит целиком. Проверка кода идёт по одному модулю за вызов, а движок анализатора скачивается только после поискового запроса. Страницы глобального контекста справки по адресу не открываются, их находит поиск по имени метода. Для новой обработки агенту нужно показать спецификацию XML из самого плагина: навык создания на неё не ссылается. Модули тестов YAxUnit анализатор Unica видит без расширения YAxUnit и даёт на них ложные замечания, обхода нет, поэтому их не проверяем. Проверено на Unica 0.13.0 и платформе 8.3.27.
Набор лежит в открытом репозитории на GitHub: https://github.com/IElagin/agent-1c-kit (лицензия MIT). Скачать можно кнопкой Code → Download ZIP или командой git clone. В репозитории:
- AGENTS.md: правила для агента (Codex и другие системы читают его сами);
- CLAUDE.md: ссылка на AGENTS.md для Claude Code;
- README.md: что подготовить человеку и какую фразу сказать агенту;
- setup: шаги трёх частей и опросник о поиске по конфигурации;
- guides: гайд по Unica на Windows;
- scripts: скрипты PowerShell: опись машины, установка расширения, выгрузка обработки и конфигурации, карта объектов, сборка, загрузка расширения с тестами, проверка кода, тесты; настройки YAxUnit и BSL Language Server; шаблон корневого файла новой обработки.
Unica и сервер справки в набор не входят: агент ставит их из официальных источников, если человек согласится.
Пути к платформе, копии базы, анализатору и выгрузке конфигурации и имя пользователя агент сам записывает в файл settings.json в папке проекта. Пароль, если он есть, человек вписывает туда сам. Файл в git не попадает. Путь к базе агент меняет только после «да» человека.
Для второй обработки нужна новая папка с копией набора. Программы второй раз ставить не нужно. Файл settings.json новой папки указывает на ту же выгрузку конфигурации.
Что нужно заранее: Windows, платформа 1С 8.3, файловая копия базы с нужной конфигурацией, ИИ-агент, который работает с файлами и командами (Claude Code, Codex или другой); для части 3 — место на диске под выгрузку конфигурации. Остальное агент предложит поставить сам.
Как проверено. Оба пути прошли с нуля на копии демобазы «Управление торговлей» 11.5, платформа 8.3.27, свежим агентом без правил автора, до зелёного прогона из 5 тестов:
- «Свои инструменты»: агент сам поставил BSL Language Server и YAxUnit после «да», 0 замечаний анализатора;
- «Unica»: агент сам предложил выбор пути, поставил плагин в один проект, проверил код анализатором Unica и сам убедился, что ноль замечаний настоящий: внёс ошибку, увидел замечание, откатил.
Скрипты из статьи я сначала прогнал на копии демобазы 05.11 и нашёл в них 5 ошибок, в набор они вошли исправленными. Часть 2 отдельно проверена ещё раньше: с пустой папки до зелёного прогона, ни разу не спросив человека. Красный тест и битый модуль скрипты показывают как провал. Скрипты работают и в PowerShell 7, и в Windows PowerShell 5.1. После переноса настроек в settings.json путь «Свои инструменты» 09.11 прошёл заново: агент сам заполнил файл и довёл 6 тестов до зелёного за 8,5 минуты. Часть 3 проверена 09.11 на той же копии демобазы. Свежий агент получил задачу: обработка с суммами реализаций по контрагентам за период и тест на данных базы. Он выгрузил конфигурацию, взял имена документа и реквизитов только из выгрузки и довёл 4 теста до зелёного. Вся работа агента, вместе с частями 1 и 2, заняла около 10 минут и $2,14.
Работайте только с копией базы: тесты меняют данные.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.