К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как создать форму отчета в 1С

Как создать форму отчета в 1С через конструктор и вручную: настройка макета СКД, параметров, отборов и проверка результата. Пошаговая инструкция с примерами.

Форма отчета в 1С — это интерфейс, который пользователь видит при открытии отчета: кнопки, поля периода, отборы и область с результатом. В типовых конфигурациях большинство отчетов собираются на системе компоновки данных (СКД), и форма для них генерируется автоматически. Ручная работа с формой требуется, когда стандартного варианта недостаточно: нужны дополнительные кнопки, нестандартные элементы управления или особая логика перед формированием.

Перед началом важно понимать, что в 1С существует два подхода. Первый — отчет на СКД, где платформа сама рисует форму на основе настроек схемы компоновки. Второй — отчет с произвольной формой, где разработчик создает форму в конфигураторе и программирует формирование результата в модуле. Выбор зависит от задачи: для аналитических отчетов по данным базы почти всегда достаточно СКД, а собственная форма нужна для нестандартного интерактива.

Ниже описан полный цикл: от создания объекта «Отчет» в конфигураторе до проверки результата в режиме предприятия. Инструкция ориентирована на управляемые формы, которые используются в современных конфигурациях (Управление торговлей, ERP, Бухгалтерия 3.0 и других).

Что понадобится перед началом работы

Для создания формы отчета потребуется доступ к конфигуратору 1С и права на изменение конфигурации. Если работа ведется в типовой конфигурации на поддержке, изменения лучше выполнять через расширение конфигурации — это сохранит возможность штатного обновления и не нарушит целостность типового кода.

Также понадобится тестовая база. Никогда не разрабатывайте и не отлаживайте отчеты напрямую в рабочей базе: ошибка в запросе или модуле формы может привести к тяжелым выборкам, блокировкам и падению сеансов пользователей. Порядок безопасной работы: разработка в копии базы, проверка на реальных объемах данных, затем перенос в рабочую среду через выгрузку расширения или обновление конфигурации.

Как создать объект «Отчет» и схему компоновки данных

Откройте конфигуратор, в дереве конфигурации найдите ветку «Отчеты» и добавьте новый объект. Задайте имя и синоним — синоним увидит пользователь в интерфейсе. На закладке «Основные» нажмите кнопку «Открыть схему компоновки данных» — платформа предложит создать новую схему автоматически.

В схеме компоновки на закладке «Наборы данных» добавьте набор данных типа «Запрос» и напишите текст запроса к нужным таблицам. Например, для отчета по продажам это будет запрос к виртуальной таблице оборотов регистра накопления. После этого на закладке «Настройки» определите структуру отчета: группировки строк, выбранные поля и ресурсы.

bsl
ВЫБРАТЬ
	Продажи.Номенклатура КАК Номенклатура,
	СУММА(Продажи.СуммаОборот) КАК Сумма
ИЗ
	РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
СГРУППИРОВАТЬ ПО
	Продажи.Номенклатура

После сохранения схемы отчет уже работоспособен: в режиме предприятия платформа автоматически построит форму с кнопкой «Сформировать», настройками и областью результата. Именно этот механизм закрывает большинство потребностей, и создавать форму вручную не требуется.

Когда платформа создает форму автоматически

Автоматически генерируемая форма отчета СКД включает панель быстрых настроек (период, отборы, помеченные как пользовательские), кнопки «Сформировать» и «Настройки», а также табличный документ с результатом. Этого достаточно для стандартных аналитических отчетов: обороты, остатки, динамика показателей, списки с отборами.

Чтобы параметры появились в шапке формы, откройте в схеме компоновки закладку «Параметры» и для нужных параметров установите признак «Включать в пользовательские настройки» с режимом редактирования «Быстрый доступ». То же самое относится к отборам на закладке «Настройки»: элементы отбора, добавленные в пользовательские настройки, отобразятся в форме без единой строки кода.

Как создать собственную форму отчета вручную

Если автоматической формы недостаточно, создайте свою. В конфигураторе откройте объект отчета, перейдите в ветку «Формы» и добавьте новую форму вида «Форма отчета». Мастер предложит выбрать тип формы — оставьте «Форма отчета», чтобы платформа подключила стандартные команды формирования.

В редакторе формы добавьте нужные реквизиты: например, поле «Период», флажки, переключатели или таблицу значений для предварительного просмотра. Разместите элементы на форме перетаскиванием из панели реквизитов, настройте группировку по вертикали и горизонтали. Для команд, которые вы добавляете сами, создайте обработчики в модуле формы с директивой &НаКлиенте или &НаСервере.

Порядок создания формы вручную
  1. 1
    Откройте объект «Отчет» в конфигураторе и перейдите в ветку «Формы»
  2. 2
    Добавьте форму вида «Форма отчета» через мастер
  3. 3
    Создайте реквизиты формы для параметров и результата
  4. 4
    Разместите элементы управления и привяжите их к реквизитам
  5. 5
    Напишите обработчики команд формирования в модуле формы
  6. 6
    Укажите созданную форму как основную в свойствах отчета
  7. 7
    Проверьте работу в режиме предприятия на тестовой базе

После создания формы откройте свойства отчета и укажите её в поле «Основная форма отчета». Без этого шага платформа продолжит использовать автоматическую форму, и ваша разработка не появится у пользователей.

Программное формирование результата в модуле формы

Для отчета с собственной формой логику формирования обычно размещают в обработчике команды. Если отчет использует СКД, результат можно сформировать программно: получить схему, применить настройки, выполнить компоновку и вывести результат в реквизит формы типа «Табличный документ».

bsl
&НаСервере
Процедура СформироватьНаСервере()
	ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
	Схема = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
	Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема));
	Компоновщик.ЗагрузитьНастройки(Схема.НастройкиПоУмолчанию);
КонецПроцедуры

Тяжелые операции — компоновку результата и запросы к базе — выполняйте в серверных процедурах. Клиентская часть должна только вызывать серверный метод и обновлять отображение. Для длительных формирований в конфигурациях на БСП используйте механизм длительных операций, чтобы форма не «зависала» и пользователь видел индикатор выполнения.

Проверка результата и типичные ошибки

После создания формы обновите конфигурацию базы данных (клавиша F7 в конфигураторе) и запустите режим предприятия. Откройте отчет, задайте параметры и сформируйте результат. Проверьте три вещи: форма открывается без ошибок, параметры корректно передаются в запрос, результат соответствует данным базы — сверьте пару цифр с исходными документами или стандартным отчетом.

Типичные ошибки
01
Созданная форма не назначена основной в свойствах отчета — пользователи видят старую автоматическую форму
02
Запрос без отбора по периоду — отчет сканирует всю таблицу и формируется минутами
03
Вся логика написана в клиентских процедурах — формирование тормозит и падает на больших объемах
04
Параметры СКД не вынесены в пользовательские настройки — поля периода не отображаются в форме
05
Разработка велась в рабочей базе — ошибка в модуле формы сломала отчет для всех пользователей
Контрольные точки

Как проверить результат

Открытие отчета
Норма

Форма открывается за 1–2 секунды без сообщений об ошибках

Тревожный признак

Ошибка компиляции модуля или пустое окно

Передача параметров
Норма

Данные в результате соответствуют выбранному периоду и отборам

Тревожный признак

Результат не меняется при смене параметров

Скорость формирования
Норма

Отчет по типовому периоду формируется за приемлемое время без блокировок

Тревожный признак

Формирование занимает минуты, у пользователей возникают ошибки ожидания

Альтернатива: внешний отчет без изменения конфигурации

Если нет возможности менять конфигурацию, создайте внешний отчет — файл с расширением .erf. В конфигураторе выберите «Файл — Новый — Внешний отчет» и повторите те же шаги со схемой компоновки и формой. Внешний отчет открывается в режиме предприятия через «Файл — Открыть» или подключается к справочнику «Дополнительные отчеты и обработки», если в конфигурации есть БСП.

Внешние отчеты удобны для доработок под конкретного заказчика: они не требуют обновления конфигурации, легко переносятся между базами и не влияют на поддержку типового решения. Ограничение — внешний отчет не может использовать общие модули конфигурации, которые не отмечены как доступные для внешних соединений, поэтому всю логику приходится держать в собственном модуле объекта.

Сравнение вариантов

Автоматическая форма СКД

Подходит для стандартных аналитических отчетов; не требует программирования, но ограничена типовыми элементами

Собственная форма отчета

Нужна для нестандартных элементов и логики; требует разработки и поддержки модуля формы

Внешний отчет (.erf)

Подходит при запрете изменения конфигурации; ограничен в доступе к общим механизмам конфигурации

Итог

Что важно запомнить

Для большинства задач форму отчета создает сама платформа на основе схемы компоновки данных — достаточно настроить запрос, параметры и пользовательские настройки. Собственная форма оправдана только при нестандартных требованиях, а доработки безопаснее выполнять в расширении или внешнем отчете на тестовой базе.

Частые вопросы

Можно ли создать форму отчета без программирования?

Да. Если отчет построен на СКД, платформа автоматически генерирует форму с кнопкой «Сформировать», периодом и отборами. Достаточно создать схему компоновки, написать запрос и вынести параметры в пользовательские настройки — код писать не потребуется.

Почему созданная форма не открывается у пользователей?

Наиболее частая причина — форма не указана как основная в свойствах отчета, либо конфигурация базы данных не обновлена после изменений. Также проверьте права доступа: у роли пользователя должно быть право «Просмотр» на объект отчета.

Как добавить поле периода в форму отчета?

В отчете на СКД откройте схему компоновки, на закладке «Параметры» найдите параметры начала и конца периода и включите их в пользовательские настройки с быстрым доступом. Платформа сама разместит поля в шапке автоматической формы.

Чем отличается форма отчета от формы настроек?

Форма отчета — это основной экран с результатом и быстрыми параметрами. Форма настроек открывается по кнопке «Настройки» и содержит полный редактор структуры отчета: группировки, отборы, условное оформление. Обе генерируются платформой, но заменяются независимо друг от друга.

Можно ли изменить форму типового отчета, не снимая конфигурацию с поддержки?

Да, через расширение конфигурации. Создайте расширение, заимствуйте в него нужный отчет и добавьте собственную форму либо переопределите обработчики существующей. Типовая конфигурация при этом остается на полной поддержке и обновляется штатно.

Отчет формируется очень долго — в чем причина?

Чаще всего виноват запрос без ограничения периода или без использования индексированных полей в отборе. Проверьте текст запроса в схеме компоновки, убедитесь, что виртуальные таблицы регистров вызываются с параметрами периода, и протестируйте формирование на копии базы с замером времени.