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