Все существующие инструменты оценки кодогенерации — HumanEval, MBPP, SWE-Bench — тестируют модели на Python, JavaScript, Java и других распространённых языках. Встроенный язык платформы 1С:Предприятие в этих наборах задач не представлен, хотя именно на нём ежедневно работают тысячи разработчиков по всей России и СНГ. Чтобы закрыть этот пробел, была создана открытая тестовая система 1C Code Bench.
Платформа 1С:Предприятие занимает особое место в российской корпоративной разработке: на ней строятся системы учёта, документооборота, складского и производственного управления. Разработчики 1С регулярно решают задачи, которые теоретически поддаются автоматизации с помощью LLM: написание запросов к базе данных, обработка табличных частей документов, формирование движений по регистрам накопления и сведений, интеграция с внешними системами через FTP или почтовые протоколы. Вопрос о том, насколько современные модели справляются с этими задачами, до появления 1C Code Bench оставался без измеримого ответа.
| Уровень сложности | Что проверяется |
|---|---|
| Базовый | Основы языка, простые операции с данными |
| Средний | Запросы, работа с документами и регистрами |
| Сложный | Комплексные бизнес-сценарии |
Бенчмарк построен на основе конфигурации «Демонстрационное приложение» с добавленными объектами и тестовыми данными. Он включает 20 задач, разбитых на три уровня: базовый (основы языка, простые операции), средний (запросы, документы, регистры) и сложный (комплексные бизнес-сценарии). Задачи также классифицированы по типу контекста — серверные и клиентские — и по предметной области: заполнение табличных частей, выборки через язык запросов, работа с коллекциями (ТаблицаЗначений, Массив), операции с макетами и табличными документами.
Метрики оценки — Compile Rate (доля кода, который компилируется) и Success Rate (доля решений, прошедших тесты).
Каждая задача оформлена как внешняя обработка в формате.epf. Внутри — текстовое условие в макете «Задача», функция ЗапуститьРешение() для подготовки тестового окружения, функция ЗадачаРешена() для автоматической проверки и эталонное решение. Модель получает промпт с условием и при необходимости контекстом конфигурации, после чего должна сгенерировать функцию с заданным именем. Сгенерированный код подставляется вместо эталонного, платформа пытается его скомпилировать, затем запускает и проверяет результат.
Для оценки используются две метрики. Compile Rate фиксирует долю задач, в которых код вообще компилируется и принимается платформой 1С. Success Rate показывает долю задач, где решение прошло все тесты. Такой подход близок к метрике pass@k, стандартной для кодовых benchmark-инструментов: при k=1 это просто доля успешных решений из одной попытки.
Примеры задач дают представление об уровне сложности. Одна из них — заполнение табличной части документа «Заказ» остатками из регистра «ТоварныеЗапасы» с фильтрацией по виду товара. Другая — поиск всех документов «Заказ» за период и замена одного товара на другой с возвратом количества изменённых документов. Третья — расчёт комиссии менеджеров через агрегирующий запрос с группировкой по автору документа. Все три задачи типичны для реальной 1С-разработки и требуют знания специфического синтаксиса языка запросов, объектной модели платформы и правил записи документов.
Появление 1C Code Bench позволяет впервые систематически сравнивать языковые модели на задачах, актуальных для российского корпоративного рынка. Это особенно значимо на фоне роста интереса к ИИ-ассистентам в разработке: теперь у команд, выбирающих инструменты для автоматизации 1С-разработки, есть объективная точка отсчёта.



