1C Skills: проверяем XML-конфигурацию до загрузки в базу

Как ИИ-агент проверяет XML-выгрузку 1С с помощью cf-info, inspect и validate до запуска конфигуратора и обновления базы.

Article

XML-выгрузка конфигурации удобна для Git, но плохо подходит для ручного просмотра: один объект разнесён по нескольким файлам, а ошибка в ссылке или составе конфигурации проявляется только при загрузке. Набор 1C Skills даёт ИИ-агенту отдельные команды для анализа и валидации исходников до запуска 1С.

Быстрый обзор проекта

Для начала агенту нужно понять масштаб конфигурации. Скил cf-info показывает свойства и счётчики объектов, а inspect выбирает подходящий анализатор для конфигурации, формы, роли, СКД или отдельного объекта метаданных.

python3 <skills-root>/cf-info/scripts/cf-info.py   -ConfigPath <project>/src -Mode overview

В диалоге можно сформулировать проще: «проанализируй XML-конфигурацию в src, перечисли подсистемы, документы и регистры, затем отметь подозрительно пустые объекты». Агент вернёт компактную сводку вместо пересказа тысяч строк XML.

Проверка после изменения

Скил validate маршрутизирует проверку по типу объекта. Для всей конфигурации используется cf-validate, для формы — form-validate, для роли — role-validate. Общая XML-валидность ещё не означает, что форма ссылается на существующий реквизит или объект включён в состав конфигурации.

Практический цикл:

  1. cf-info фиксирует исходное состояние.
  2. Специализированный скил изменяет объект.
  3. Валидатор проверяет изменённый объект и его связи.
  4. Git diff показывает только ожидаемые файлы.
  5. Исходники загружаются в тестовую базу.

Что такая проверка не заменяет

Статическая проверка не выполняет бизнес-логику и не гарантирует запуск в каждой версии платформы. После неё нужен реальный контур: загрузка XML, обновление конфигурации базы и smoke-тест. Для этого в наборе есть db-load-xml, db-update, web-publish и тестовые инструменты.

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