Разработка отчётов 1С с помощью Cursor AI
Использование Cursor AI для разработки отчетов в 1С:Предприятие — это один из самых эффективных сценариев применения ИИ-ассистента в 1С-разработке.Так как Cursor работает напрямую с текстовыми файлами исходного кода (в формате EDT, выгрузках конфигуратора/BSL или внешних обработках
.epf, разобранных на исходники), он позволяет кардинально ускорить составление запросов, настройку схем компоновки данных (СКД), написание модулей объектов/форм и оформление макетов.Ниже представлено подробное практическое руководство по тому, как эффективно разрабатывать отчеты 1С с помощью Cursor AI.
1. Архитектурный подраздел: С какими файлами работает Cursor в 1С
Для эффективной работы Cursor должен иметь доступ к файлам отчета в текстовом виде:- BSL-модули (
.bsl): Модуль объекта отчета, модуль формы, модуль менеджер отчета.
- Схема СКД (
.xml/DataCompositionSchema): Исходный XML-файл схемы компоновки данных EDT.
- Файлы форм и макетов (
.xml): Структура управляемой формы и XML-макеты печатных форм/табличных документов.
2. Пошаговый процесс разработки отчета с Cursor AI
Шаг 1. Генерация текста запроса для СКД
Запрос — основа 90% отчетов в 1С. В Cursor через чат (Ctrl+L / Cmd+L) или инлайн-инструкцию (Ctrl+K / Cmd+K) вы можете сгенерировать сложный запрос на языке запросов 1С.- Пример промпта:
Напиши запрос 1С для отчета по продажам сгруппированный по Организациям, Подразделениям и Номенклатуре.
Нужные поля: Продажи (Количество, Сумма, Себестоимость), ВаловаяПрибыль (Сумма - Себестоимость), Рентабельность % (ВаловаяПрибыль / Себестоимость * 100).
Источники: РегистрНакопления.Продажи.Обороты и РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты.
Используй параметры периода&НачалоПериодаи&КонецПериода. Обработай деление на ноль черезВЫБОР КОГДА.
Шаг 2. Генерация выражения СКД для рассчитываемых полей
СКД позволяет вычислять рентабельность, средние значения и нарастающие итоги прямо в схеме.Пример промпта:
Напиши выражения СКД (Data Composition Schema Expressions) для ресурсов:
Рентабельность: Вычислить процент валовой прибыли с защитой от деления на 0.ПроцентОтОбщегоОбъема: Отношение суммы текущей группировки к общей сумме отчета.
Шаг 3. Автоматическое редактирование XML-схемы СКД (EDT)
Если ваш проект открыт в формате EDT, Cursor может вносить изменения прямо в XML-файл схемы (Schema.xml).- Пример промпта (в режиме Compose/Edit для XML-файла схемы):
Добавь в XML-схему СКД отчета новое пользовательское поле выборки "КатегорияСуммы" со значением "Крупная", если Сумма > 100000, иначе "Стандартная". Добавь параметр
ИспользоватьАналогитипа Булево.
Шаг 4. Программная настройка СКД в Модуле объекта (.bsl)
Часто отчеты требуют динамической корректировки настроек перед выводом (например, при компоновке макета или наложении специфических отборов).Пример промпта:
Напиши процедуруПриКомпоновкеРезультата(ДокументРезультат, ИмеющиесяДанные, СтандартнаяОбработка)в модуле объекта отчета.
Процедура должна:
- Отключить
СтандартнаяОбработка = Ложь.- Проверить заполнение обязательного параметра
Организация. Если не заполнен — вывести понятное сообщение пользователю и прервать выполнение.- Программным образом установить параметр СКД
Периодиз настроек формы.- Выполнить компоновку и вывести результат в
ДокументРезультат.
Шаг 5. Оформление Табличного документа и Генерация Печатной формы
Если отчет строится без СКД (на Табличном документе) или с кастомным выводом через макет:- Пример промпта:
Напиши BSL-код заполнения Табличного документа по массиву структур
ДанныеОтчета.
Макет имеет области: "Шапка", "СтрокаДанных", "Итого".
В области "СтрокаДанных" подсвети строки красным цветом, еслиВаловаяПрибыль < 0(отрицательная маржа). Добавь авто-группировку по полюКонтрагент.
3. Топ-10 задач при разработке отчетов, в которых Cursor AI даёт максимальный буст
- Конвертация запросов SQL / PostgreSQL в Язык запросов 1С:
Перевод сложных сырых SQL-скриптов с оконными функциями и CTE в пакетные запросы 1С с временными таблицами (
ПОМЕСТИТЬ). - Оптимизация неэффективных запросов отчета:
Поиск и устранение соединений с виртуальными таблицами без параметров, избавлений от вложенных запросов в
ГДЕилиВЫБОР. - Создание расширенных настроек группировок СКД: Быстрое формирование структуры отчета (Группировки, Таблицы, Диаграммы) в коде или XML.
- Написание условного оформления (Conditional Appearance): Генерация программного кода или XML-структуры условного оформления (изменение цвета шрифта, фона, выделение отрицательных итогов, скрытие нулевых значений).
- Создание динамических расшифровок (Drill-down):
Написание обработчиков события
ОбработкаРасшифровкина форме отчета для открытия связанных документов или других отчетов с передачей контекста. - Выгрузка результатов отчета в файлы (Excel, PDF, JSON): Написание кода фонового формирования отчета с сохранением на диск или отправкой на e-mail по расписанию.
- Работа с подсистемой «Варианты отчетов» БСП: Написание процедур регистрации вариантов отчета в общем модуле при первом запуске или обновлении базы.
- Парсинг и объединение данных из внешних источников (REST API + 1С):
Создание отчета, сочетающего данные из базы 1С (через запрос) и сторонней СУБД/API (JSON), с последующей загонкой в
ТаблицуЗначенийи передачей в СКД какВнешнийИсточникДанных. - Написание Unit-тестов для отчетов (Vanessa Automation / BSL Automation):
Генерация
.feature-файлов для проверки корректности формирования отчета и совпадения контрольных сумм. - Рефакторинг и документирование кода старых отчетов: Преобразование устаревшего кода 1С 7.7 / 8.1 (обычные формы) под стандарты управляемого приложения 8.3 (БСП, клиент-серверное разделение).
4. Лучшие практики и лайфхаки работы с Cursor для 1С-отчетов
- Используйте
.cursorrules(Правила проекта): Создайте файл.cursorrulesв корне вашего проекта и укажите соглашения по написанию BSL-кода:
- Всегда используй русский синтаксис BSL. - При написании запросов к виртуальным таблицам всегда передавай параметры периодов и условий в скобках таблицы, а не в ГДЕ. - Соблюдай стандарты разработки 1С (клиент-серверное разделение, безопасный вызов серверных процедур). - При работе с СКД используй методы БСП, если доступна подсистема "ВариантыОтчетов".
- Контекст через
@-упоминания: При запросе к Cursor ссылайтесь на существующие файлы конфигурации, например:@Справочник.Номенклатура.xml @ОбщийМодуль.РаботаСДоговорами.bsl сделай запрос для отчета...
- Проверка деления на ноль и NULL:
Всегда просите ИИ обрабатывать возможные
NULL(черезЕСТЬNULL(Поле, 0)) и деление на ноль, так как это самые частые причины падения отчетов 1С при отсутствии движений.