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

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

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

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

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

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

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

Как выбрать способ создания макета

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

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

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

Сравнение подходов

СКД с автоматическим макетом

Подходит для аналитических отчетов с группировками и отборами. Быстро создается, гибко настраивается пользователем. Ограничение: сложно добиться точного оформления печатной формы.

Табличный документ с областями

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

СКД с ручным макетом

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

Создание объекта «Отчет» в конфигураторе

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

Если отчет должен формироваться по кнопке из документа или справочника (типичный случай для печатных форм), дополнительно настройте команду печати через менеджер печати соответствующего объекта. В типовых конфигурациях для этого используется подсистема печати БСП: процедуры ДобавитьКомандуПечати и Печать в модуле менеджера.

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

Создание макета табличного документа

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

Макет выглядит как таблица Excel: ячейки можно объединять, задавать шрифты, границы, цвета и выравнивание. Ключевой элемент — области. Выделите строки, которые образуют логический блок (шапка, строка данных, подвал), и через меню «Таблица — Имена — Назначить имя» задайте имя области, например «Шапка» или «СтрокаТовары».

Ячейки бывают трех типов заполнения, и это критично для вывода. Текст — статичная надпись. Параметр — в ячейке указывается имя параметра в квадратных скобках, например [НомерДокумента], и значение подставляется при выводе. Шаблон — смешанный текст с параметрами, например: Счет № [Номер] от [Дата].

Порядок создания макета табличного документа
  1. 1
    Создайте объект «Отчет» в конфигураторе или внешний отчет
  2. 2
    Добавьте макет типа «Табличный документ» в ветке «Макеты»
  3. 3
    Нарисуйте шапку: заголовки колонок, реквизиты, логотип
  4. 4
    Назначьте именованные области: Шапка, СтрокаДанных, Подвал
  5. 5
    В ячейках строки данных укажите параметры в квадратных скобках
  6. 6
    Задайте формат ячеек: число, дата, выравнивание, границы
  7. 7
    Сохраните макет и перейдите к написанию кода вывода

Программный вывод макета в модуле

Вывод макета выполняется в модуле объекта отчета. Логика стандартная: получить макет, получить области, заполнить параметры и последовательно вывести их в табличный документ-результат. Типовой фрагмент кода выглядит так:

ТабДок = Новый ТабличныйДокумент;

Макет = ПолучитьМакет("МакетОтчета");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ОбластьШапка.Параметры.Организация = Организация;

ТабДок.Вывести(ОбластьШапка);

ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаДанных");

Пока Выборка.Следующий() Цикл

ОбластьСтрока.Параметры.Заполнить(Выборка);

ТабДок.Вывести(ОбластьСтрока);

КонецЦикла;

Метод Параметры.Заполнить(Выборка) автоматически сопоставляет имена параметров макета с полями выборки из запроса — это удобно, но работает только при точном совпадении имен. Если параметр в макете назван иначе, чем поле запроса, присваивайте значения явно.

Для отчетов, где строк много, полезно проверять помещаемость области на странице методом ТабДок.ПроверитьВывод() и при необходимости выводить горизонтальный разделитель страниц. Это избавляет от «оторванных» шапок и строк, перенесенных на следующий лист без контекста.

Настройка отчета на СКД

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

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

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

Большинство задач с оформлением отчетов на СКД решается без ручного макета: условным оформлением на закладке настроек и параметрами вывода (Заголовок, РасположениеИтогов). Ручной макет СКД стоит делать только когда этих средств действительно не хватает.
ПЗ
Практическое замечание

Проверка и отладка отчета

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

Типичные точки отказа: несовпадение имен параметров макета и полей запроса, незаполненные обязательные параметры СКД (период), неверный тип области при выводе. Ошибки выявляйте через отладчик конфигуратора, устанавливая точку останова в модуле отчета и проверяя содержимое выборки.

Контрольные точки

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

Шапка отчета
Норма

Выводится один раз в начале, все параметры заполнены

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

Шапка отсутствует, дублируется или содержит пустые параметры

Строки данных
Норма

Каждая строка выборки выведена, значения соответствуют запросу

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

Строки пропущены, задвоены или содержат данные соседних колонок

Итоги
Норма

Суммы сходятся с контрольным запросом в консоли

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

Итоги расходятся или не выводятся

Печатная форма
Норма

При предпросмотре строки не разрываются, поля страницы корректны

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

Таблица обрезана справа, шапка оторвана от данных

Типичные ошибки и их последствия

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

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

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

Чем макет табличного документа отличается от макета СКД?

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

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

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

Почему параметр макета выводится пустым?

Чаще всего имя параметра в макете не совпадает с именем, используемым в коде, или параметр не заполнен перед выводом области. Проверьте также тип заполнения ячейки: если вместо «Параметр» выбран «Текст», подстановка не сработает.

Как вывести номер страницы и количество страниц в отчете?

Используйте свойства табличного документа: ВерхнийКолонтитул и НижнийКолонтитул. В тексте колонтитула доступны шаблоны [&НомерСтраницы] и [&СтраницВсего], которые платформа подставит при печати и предпросмотре.

Как сделать, чтобы пользователь мог менять отборы отчета?

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

Что делать, если отчет формируется слишком долго?

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

Итог

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

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