Разработка отчётов 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С при отсутствии движений.