Отчеты и Аналитика · 11 мин
Как создать макет отчета в 1С
Подробная инструкция по созданию макета отчета в 1С: работа с конструктором, СКД, табличным документом, настройка областей, параметров и вывод на печать.
Макет отчета в 1С — это шаблон, который определяет, как данные будут выглядеть при выводе на экран или печать: где располагаются заголовки, как форматируются колонки, какие области повторяются для каждой строки. В зависимости от задачи макет создается либо как табличный документ в конфигураторе, либо автоматически через систему компоновки данных (СКД), которая строит оформление сама.
Перед началом работы важно определить тип задачи. Если нужен простой отчет с группировками и итогами — достаточно СКД без ручного макета. Если требуется печатная форма со строгим расположением реквизитов, рамками и подписями — понадобится макет табличного документа с именованными областями. Смешанный вариант — ручной макет СКД — применяется, когда автоматическое оформление не устраивает, но данные удобнее получать запросом.
Вся работа выполняется в конфигураторе 1С:Предприятие и требует прав на изменение конфигурации. На рабочей базе с пользователями изменения вносят только через тестовую копию: ошибка в макете не испортит данные, но неудачное обновление конфигурации может остановить работу отдела.
Как выбрать способ создания макета
В 1С существует три основных подхода к построению отчета, и от выбора зависит вся дальнейшая работа. Неправильный выбор на старте — самая частая причина переделок.
Первый подход — отчет на СКД без ручного макета. Вы пишете запрос, настраиваете ресурсы, группировки и отборы, а платформа сама формирует внешний вид. Это стандарт для аналитических отчетов: продажи, остатки, обороты. Пользователь при этом может сам менять настройки отчета в режиме предприятия.
Второй подход — макет табличного документа с программным выводом. Вы рисуете шаблон визуально, размечаете области, заполняете их параметрами из кода. Так делают печатные формы: счета, акты, доверенности, где важно точное положение каждого элемента.
Сравнение подходов
Подходит для аналитических отчетов с группировками и отборами. Быстро создается, гибко настраивается пользователем. Ограничение: сложно добиться точного оформления печатной формы.
Подходит для строгих печатных форм. Полный контроль над внешним видом. Ограничение: вся логика вывода пишется кодом, изменения требуют правки конфигурации.
Данные получает запрос СКД, оформление задается вручную. Компромисс для отчетов со сложным дизайном. Ограничение: выше трудоемкость и порог входа.
Создание объекта «Отчет» в конфигураторе
Откройте конфигуратор, в дереве конфигурации найдите ветку «Отчеты» и добавьте новый объект через контекстное меню. Задайте имя без пробелов, например «ПродажиПоМенеджерам», и синоним — он будет виден пользователям. На закладке «Подсистемы» отметьте, в каких разделах интерфейса отчет должен отображаться.
Если отчет должен формироваться по кнопке из документа или справочника (типичный случай для печатных форм), дополнительно настройте команду печати через менеджер печати соответствующего объекта. В типовых конфигурациях для этого используется подсистема печати БСП: процедуры ДобавитьКомандуПечати и Печать в модуле менеджера.
Для внешнего отчета, который не требует изменения конфигурации, используйте пункт «Файл — Новый — Внешний отчет». Такой файл с расширением .erf открывается прямо в режиме предприятия через «Файл — Открыть» и удобен для разовых задач и тестирования.
Создание макета табличного документа
В дереве отчета раскройте ветку «Макеты» и добавьте новый макет — откроется конструктор. Выберите тип «Табличный документ». Мастер может автоматически создать макет по выбранным реквизитам, но на практике удобнее строить его вручную, чтобы контролировать каждую область.
Макет выглядит как таблица Excel: ячейки можно объединять, задавать шрифты, границы, цвета и выравнивание. Ключевой элемент — области. Выделите строки, которые образуют логический блок (шапка, строка данных, подвал), и через меню «Таблица — Имена — Назначить имя» задайте имя области, например «Шапка» или «СтрокаТовары».
Ячейки бывают трех типов заполнения, и это критично для вывода. Текст — статичная надпись. Параметр — в ячейке указывается имя параметра в квадратных скобках, например [НомерДокумента], и значение подставляется при выводе. Шаблон — смешанный текст с параметрами, например: Счет № [Номер] от [Дата].
- 1Создайте объект «Отчет» в конфигураторе или внешний отчет
- 2Добавьте макет типа «Табличный документ» в ветке «Макеты»
- 3Нарисуйте шапку: заголовки колонок, реквизиты, логотип
- 4Назначьте именованные области: Шапка, СтрокаДанных, Подвал
- 5В ячейках строки данных укажите параметры в квадратных скобках
- 6Задайте формат ячеек: число, дата, выравнивание, границы
- 7Сохраните макет и перейдите к написанию кода вывода
Программный вывод макета в модуле
Вывод макета выполняется в модуле объекта отчета. Логика стандартная: получить макет, получить области, заполнить параметры и последовательно вывести их в табличный документ-результат. Типовой фрагмент кода выглядит так:
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("МакетОтчета");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.Организация = Организация;
ТабДок.Вывести(ОбластьШапка);
ОбластьСтрока = Макет.ПолучитьОбласть("СтрокаДанных");
Пока Выборка.Следующий() Цикл
ОбластьСтрока.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
Метод Параметры.Заполнить(Выборка) автоматически сопоставляет имена параметров макета с полями выборки из запроса — это удобно, но работает только при точном совпадении имен. Если параметр в макете назван иначе, чем поле запроса, присваивайте значения явно.
Для отчетов, где строк много, полезно проверять помещаемость области на странице методом ТабДок.ПроверитьВывод() и при необходимости выводить горизонтальный разделитель страниц. Это избавляет от «оторванных» шапок и строк, перенесенных на следующий лист без контекста.
Настройка отчета на СКД
Для отчета на СКД вместо макета табличного документа нажмите кнопку «Открыть схему компоновки данных» в форме отчета — конструктор предложит создать схему. На закладке «Наборы данных» добавьте запрос: выберите таблицы, поля, виртуальные таблицы регистров с параметрами периода.
Далее настройте закладки в логической последовательности. «Ресурсы» — числовые поля, которые суммируются (Сумма, Количество). «Параметры» — отборы, которые задает пользователь (Период, Организация). «Настройки» — структура отчета: группировки строк, выбранные поля, порядок сортировки. Конструктор настроек на закладке «Настройки» позволяет собрать типовую структуру «группировка — детальные записи» за несколько кликов.
Если автоматическое оформление СКД не устраивает, создайте макет типа «Макет оформления компоновки данных» и переопределите в нем стили: цвет заголовков, шрифты итогов, границы. Для радикальной переделки структуры используют макет СКД с собственными областями — но это трудоемкий путь, оправданный только для сложных форм.
Большинство задач с оформлением отчетов на СКД решается без ручного макета: условным оформлением на закладке настроек и параметрами вывода (Заголовок, РасположениеИтогов). Ручной макет СКД стоит делать только когда этих средств действительно не хватает.
Проверка и отладка отчета
Проверяйте отчет на реалистичных данных: пустой период, одна строка, много строк, отсутствие итогов. Каждый из этих случаев может сломать верстку — например, пустая выборка оставит отчет без шапки, если вывод шапки стоит внутри цикла.
Типичные точки отказа: несовпадение имен параметров макета и полей запроса, незаполненные обязательные параметры СКД (период), неверный тип области при выводе. Ошибки выявляйте через отладчик конфигуратора, устанавливая точку останова в модуле отчета и проверяя содержимое выборки.
Как проверить результат
Выводится один раз в начале, все параметры заполнены
Шапка отсутствует, дублируется или содержит пустые параметры
Каждая строка выборки выведена, значения соответствуют запросу
Строки пропущены, задвоены или содержат данные соседних колонок
Суммы сходятся с контрольным запросом в консоли
Итоги расходятся или не выводятся
При предпросмотре строки не разрываются, поля страницы корректны
Таблица обрезана справа, шапка оторвана от данных
Типичные ошибки и их последствия
Отдельная группа проблем связана с правами. Если отчет создан в конфигурации, но пользователь не видит его в интерфейсе, проверьте роли: у пользователя должно быть право «Использование» и «Просмотр» на объект отчета, а также права на данные, которые читает запрос.
Частые вопросы
Чем макет табличного документа отличается от макета СКД?
Макет табличного документа — это статичный шаблон с областями, который выводится программно из кода. Макет СКД описывает правила оформления результата компоновки: платформа сама сопоставляет области с данными. Первый дает полный контроль, второй — гибкость настройки пользователем.
Можно ли создать отчет без изменения конфигурации?
Да. Создайте внешний отчет через «Файл — Новый — Внешний отчет» в конфигураторе, сохраните файл .erf и откройте его в режиме предприятия. Для типовых конфигураций внешние отчеты также подключаются через справочник дополнительных отчетов и обработок.
Почему параметр макета выводится пустым?
Чаще всего имя параметра в макете не совпадает с именем, используемым в коде, или параметр не заполнен перед выводом области. Проверьте также тип заполнения ячейки: если вместо «Параметр» выбран «Текст», подстановка не сработает.
Как вывести номер страницы и количество страниц в отчете?
Используйте свойства табличного документа: ВерхнийКолонтитул и НижнийКолонтитул. В тексте колонтитула доступны шаблоны [&НомерСтраницы] и [&СтраницВсего], которые платформа подставит при печати и предпросмотре.
Как сделать, чтобы пользователь мог менять отборы отчета?
Используйте СКД: параметры и отборы, вынесенные в настройки, автоматически появляются в форме отчета в режиме предприятия. Для отчета с ручным макетом отборы придется программировать самостоятельно через форму отчета и реквизиты формы.
Что делать, если отчет формируется слишком долго?
Проверьте запрос: используйте виртуальные таблицы регистров с заданными параметрами периода и отборов вместо обращения к полным таблицам, уберите соединения по неиндексированным полям, ограничьте выборку необходимыми полями. Замерить время выполнения помогает консоль запросов и замер производительности в конфигураторе.
Что важно запомнить
Выбирайте инструмент под задачу: СКД — для аналитики, табличный документ — для печатных форм. Размечайте макет именованными областями, следите за совпадением имен параметров и полей, проверяйте отчет на граничных случаях и тестируйте все изменения на копии базы.