METR (MCP 1C:Enterprise Test Runner) — это мощный инструмент для автоматизации тестирования и сборки проектов 1С:Предприятие через протокол MCP (Model Context Protocol). Этот документ описывает все основные возможности системы.
- Запуск тестов
- Сборка проекта
- Запуск приложений 1С
- Выгрузка конфигурации
- Поддержка форматов проектов
- Интеллектуальная сборка
- Интеграция с инструментами разработки
- Проверки конфигурации
- MCP-инструменты
METR предоставляет гибкие возможности для запуска тестов YaXUnit в различных сценариях.
Запускает все тесты, найденные в проекте. Перед запуском тестов автоматически выполняется сборка проекта (если обнаружены изменения).
Особенности:
- Автоматический анализ изменений перед запуском
- Инкрементальная сборка только измененных модулей
- Подробный отчет о результатах выполнения
- Детальная статистика: общее количество, пройденные, проваленные тесты
- Время выполнения тестов
Позволяет запустить тесты только из указанного модуля. Полезно для фокусного тестирования конкретной функциональности.
Особенности:
- Избирательный запуск тестов
- Быстрое выполнение при работе с отдельными модулями
- Автоматическая сборка только при необходимости
Параметры:
moduleName— имя модуля для тестирования
METR автоматизирует процесс сборки проектов 1С с поддержкой различных стратегий сборки.
Система автоматически определяет, какие модули были изменены, и выполняет сборку только измененных частей проекта.
Преимущества:
- Значительное сокращение времени сборки
- Экономия ресурсов системы
- Автоматическое определение области изменений
Процесс:
- Анализ изменений в исходных файлах
- Определение затронутых модулей
- Выборочная сборка только измененных модулей
- Обновление информационной базы
При необходимости система может выполнить полную пересборку всего проекта.
Когда выполняется:
- При первом запуске
- При изменении критических файлов конфигурации
- При явном запросе пользователя
[!WARNING] Not support Будет реализовано в Issue #11
METR поддерживает несколько инструментов сборки:
Классический способ сборки через локальный конфигуратор 1С.
Особенности:
- Подходит для локальной разработки
- Не требует дополнительных инструментов
- Прямая интеграция с платформой 1С
Настройка:
app:
tools:
builder: DESIGNERИнструмент командной строки для автоматизации сборки без графического интерфейса.
Особенности:
- Не блокируется конфигуратором и EDT
- Выполняется быстрее благодаря отсутствию GUI
Настройка:
app:
tools:
builder: IBCMDMETR может автоматически запускать различные приложения платформы 1С:Предприятие.
Запускает конфигуратор 1С для визуального редактирования конфигурации.
Псевдонимы:
DESIGNERdesigner1cv8конфигуратор
Запускает тонкий клиент 1С:Предприятие для работы с информационной базой.
Псевдонимы:
THIN_CLIENTthin_client1cv8cтонкий клиент
Запускает толстый клиент 1С:Предприятие для работы с информационной базой.
Псевдонимы:
THICK_CLIENTthick_clientтолстый клиент
METR поддерживает выгрузку конфигурации из информационной базы в файлы проекта в различных режимах.
Полная выгрузка всей конфигурации или указанного расширения в файлы проекта.
Особенности:
- Выгружается вся конфигурация целиком
- Подходит для первоначальной настройки проекта
- Можно указать конкретное расширение для выгрузки
Выгружает только объекты, которые были изменены в информационной базе после предыдущей выгрузки.
Особенности:
- Значительно экономит время при больших конфигурациях
- Требует наличия предыдущей полной выгрузки
- Автоматически определяет измененные объекты
Выгружает только указанные объекты метаданных по списку.
Особенности:
- Позволяет выборочно выгружать нужные объекты
- Указываются полные имена объектов (например,
Справочник.Номенклатура) - Идеально для точечного обновления отдельных модулей
Выгрузка поддерживается через:
- DESIGNER — конфигуратор 1С
- IBCMD — командная строка 1С
Инструмент dump_config принимает параметры:
mode— режим выгрузки:FULL,INCREMENTALилиPARTIALextension(опционально) — имя расширения для выгрузкиsourceSetName(опционально) — имя source-set для выгрузкиobjects(опционально) — список объектов для PARTIAL режима
METR поддерживает работу с проектами в различных форматах организации исходного кода.
Традиционный формат проекта 1С, используемый конфигуратором.
Особенности:
- Прямая работа с исходниками конфигуратора
- Не требует дополнительных инструментов
- Подходит для классических проектов 1С
Настройка:
app:
format: DESIGNERФормат проекта, используемый 1C:Enterprise Development Tools (EDT) — современной средой разработки для 1С.
Особенности:
- Современная структура проекта
- Поддержка версионирования через Git
- Интеграция с IDE (Eclipse-based)
- Автоматическая конвертация в формат DESIGNER
Требования:
- 1C:EDT 2025.1+ (см. Issue #1758)
Настройка:
app:
format: EDT
tools:
edt-cli:
auto-start: true # Автоматический запуск 1C:EDT в интерактивном режиме
version: "latest"
working-directory: "edt-workspace-path"METR использует продвинутые алгоритмы для оптимизации процесса сборки и тестирования.
Система отслеживает изменения в исходных файлах проекта с использованием двухфазного алгоритма:
Проверка временных меток файлов (timestamps) для быстрого определения потенциально измененных файлов.
Преимущества:
- Очень быстрое сканирование больших проектов
- Минимальная нагрузка на систему
- Раннее определение отсутствия изменений
Для файлов с измененными временными метками выполняется проверка SHA-256 хеша содержимого.
Преимущества:
- Точное определение реальных изменений
- Игнорирование ложных срабатываний
- Обнаружение откатов изменений
Процесс:
flowchart TD
A[Запрос на сборку] --> B[Сканирование временных меток]
B --> C{Есть изменения?}
C -->|Нет| D[Пропуск сборки]
C -->|Да| E[Проверка хешей]
E --> F{Хеш изменился?}
F -->|Нет| D
F -->|Да| G[Определение затронутых модулей]
G --> H[Инкрементальная сборка]
METR сохраняет состояние сборки для каждого модуля, что позволяет:
- Быстро определять, нужна ли пересборка
- Отслеживать историю изменений
- Оптимизировать последующие запуски
Хранение:
- Хеши файлов для отслеживания изменений
- Временные метки последней сборки
При работе с проектами в формате EDT система автоматически конвертирует измененные модули в формат DESIGNER перед сборкой.
Особенности:
- Автоматическое определение необходимости конвертации
- Конвертация только измененных модулей
- Использование EDT CLI в интерактивном режиме для ускорения
Процесс:
- Обнаружение изменений в EDT-проекте
- Определение измененных модулей
- Конвертация через EDT CLI
- Сборка в формате DESIGNER
METR поддерживает работу с EDT CLI (Command Line Interface) для автоматизации работы с проектами EDT.
Система может запускать EDT CLI в интерактивном режиме, что значительно ускоряет выполнение команд.
Преимущества:
- Быстрая инициализация (EDT CLI запускается заранее)
- Снижение накладных расходов на запуск
- Повышение производительности при множественных операциях
Настройка:
app:
tools:
edt-cli:
auto-start: true # Автозапуск при старте
startup-timeout-ms: 30000 # Таймаут запуска
command-timeout-ms: 300000 # Таймаут команды
ready-check-timeout-ms: 5000 # Таймаут проверки готовностиРабота:
- EDT CLI запускается при старте METR (если включен
auto-start) - Команды отправляются в уже запущенный процесс
- Процесс остается активным между командами
- Автоматическое определение готовности к выполнению команд
METR предоставляет единый интерфейс для проверки качества конфигурации через Конфигуратор и 1C:EDT. Все проверки возвращают структурированный ответ MCP с длительностью выполнения, логами и списком найденных проблем (issues) с уровнем важности.
Полный перечень команд доступен в разделе «Доступные MCP-инструменты» файла README.md.
Команда check_syntax_edt использует 1C:EDT CLI (validate) для анализа проектов формата EDT.
- Проверяются все проекты типа
CONFIGURATIONизsource-set, либо конкретный проект, если указан параметрprojectName. - При включённом
auto-startпроверка выполняется быстрее за счёт предварительно поднятого CLI-процесса.
Команда check_syntax_designer_config выполняет полную проверку конфигурации (CheckConfig) через Конфигуратор 1С.
- Поддерживает подробную настройку режимов проверки через параметры MCP-инструмента (эмуляция клиентских режимов, расширенная проверка модулей и др.).
- По умолчанию включены типовые режимы, необходимые для поиска критичных ошибок в основной конфигурации.
- Возвращаемый отчёт содержит список ошибок и предупреждений с указанием источника.
Команда check_syntax_designer_modules выполняет CheckModules и подходит для точечной проверки модулей конфигурации и расширений.
- Позволяет выбрать режимы проверки (тонкий клиент, веб-клиент, мобильный клиент и т.д.).
- Можно ограничить проверку конкретным расширением (
extension) или запускать её сразу для всех расширений (allExtensions). - Результат содержит список найденных проблем с указанием уровня (
WARNING/ERROR) и местоположения.
METR предоставляет следующие инструменты через протокол MCP:
Запускает все тесты в проекте.
Параметры: нет
Возвращает:
- Статус выполнения
- Количество тестов (общее, пройденные, проваленные)
- Время выполнения
- Детальная информация о тестах
- Шаги выполнения (при ошибках)
Запускает тесты из указанного модуля.
Параметры:
moduleName(string) — имя модуля для тестирования
Возвращает:
- Статус выполнения
- Статистика по тестам
- Детальная информация
Выполняет сборку проекта.
Параметры: нет
Возвращает:
- Статус сборки
- Сообщение о результате
- Время сборки
- Шаги выполнения (при ошибках)
Запускает приложение 1С указанного типа.
Параметры:
utilityType(string) — псевдоним типа приложения
Возвращает:
- Статус запуска
- Идентификатор запущенного процесса (pid)
Выгружает конфигурацию из ИБ в файлы проекта.
Параметры:
mode(string) — режим выгрузки:FULL,INCREMENTALилиPARTIALextension(string, опционально) — имя расширения для выгрузкиsourceSetName(string, опционально) — имя source-set для выгрузкиobjects(array, опционально) — список объектов для PARTIAL режима
Возвращает:
- Статус выполнения
- Режим выгрузки
- Количество выгруженных объектов
- Время выполнения
Получает список модулей проекта.
Параметры: нет
Возвращает:
- Список модулей с информацией о каждом
Получает информацию о конфигурации проекта.
Параметры: нет
Возвращает:
- Информация о конфигурации
- Версия платформы
- Формат проекта
Проверяет доступность и версию платформы 1С.
Параметры: нет
Возвращает:
- Статус проверки
- Версия платформы
Выполняет синтаксис-проверку исходников через 1C:EDT (validate).
Параметры:
projectName(string, опционально) — имя проекта для проверки
Возвращает:
- Статус проверки
- Список найденных проблем
- Время выполнения
Выполняет синтаксис-проверку конфигурации через Конфигуратор (CheckConfig).
Параметры: нет
Возвращает:
- Статус проверки
- Список ошибок и предупреждений
- Время выполнения
Выполняет синтаксис-проверку модулей через Конфигуратор (CheckModules).
Параметры:
extension(string, опционально) — имя расширенияallExtensions(boolean, опционально) — проверить все расширения
Возвращает:
- Статус проверки
- Список проблем с уровнем (
WARNING/ERROR)
METR предоставляет подробное логирование всех операций:
- Уровни логирования: TRACE, DEBUG, INFO, WARN, ERROR
- Структурированные логи для анализа
- Логи выполнения команд 1С сохраняются отдельно
Система обеспечивает надежную обработку ошибок:
- Детальные сообщения об ошибках
- Информация о шагах, приведших к ошибке
- Восстановление после временных сбоев
METR работает на различных платформах:
- Linux — полная поддержка
- Windows — полная поддержка
- macOS — поддержка (экспериментально)
Система оптимизирована для работы с большими проектами:
- Параллельная обработка файлов
- Эффективное использование ресурсов
- Минимизация времени выполнения операций
sequenceDiagram
participant Dev as Разработчик
participant AI as AI-ассистент
participant METR as METR
participant IB as Информационная база
Dev->>AI: "Запусти тесты после изменений"
AI->>METR: run_all_tests()
METR->>METR: Анализ изменений
METR->>METR: Инкрементальная сборка
METR->>IB: Обновление конфигурации
METR->>IB: Запуск тестов YaXUnit
IB-->>METR: Результаты тестов
METR-->>AI: Отчет о тестах
AI-->>Dev: Результаты выполнения
sequenceDiagram
participant Dev as Разработчик
participant METR as METR
participant EDT as EDT CLI
participant Designer as Конфигуратор
Dev->>METR: Запрос на сборку
METR->>METR: Обнаружение изменений в EDT
METR->>EDT: Конвертация измененных модулей
EDT-->>METR: Результат конвертации
METR->>Designer: Сборка проекта
Designer-->>METR: Результат сборки
METR-->>Dev: Статус сборки
METR предоставляет комплексное решение для автоматизации тестирования и сборки проектов 1С:Предприятие. Благодаря интеграции с протоколом MCP, система легко интегрируется с современными AI-ассистентами и IDE, обеспечивая seamless workflow для разработчиков.
Основные преимущества:
- 🚀 Автоматизация рутинных операций
- ⚡ Оптимизация времени сборки через инкрементальную сборку
- 🔍 Интеллектуальное определение изменений
- 🛠️ Поддержка различных форматов проектов
- 🔌 Интеграция с современными инструментами разработки
- 📊 Подробная отчетность и логирование
Для начала работы см. Application Configuration и IDE Setup.

