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

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

Как сделать макет отчета в 1С с помощью СКД

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

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

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

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

Когда нужен собственный макет, а когда хватит стандартного вывода

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

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

Маршрут решения

Как выбрать подход

Отчет аналитический, структура колонок может меняться пользователемИспользуйте стандартный вывод СКД без макета — гибкость важнее
Форма утверждена и должна выглядеть одинаково всегдаСоздавайте собственный макет на закладке «Макеты»
Нужна только другая шапка или подвал, а строки стандартныеСделайте макет только для областей Заголовок и Подвал, детали оставьте автоматическими

Подготовка схемы компоновки перед созданием макета

Макет не существует отдельно от схемы: он опирается на набор данных, поля и ресурсы. Поэтому сначала убедитесь, что набор данных (запрос) возвращает все поля, которые планируете выводить, а на закладке «Ресурсы» определены итоговые поля, если нужны суммы.

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

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

Создание макета на закладке «Макеты»

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

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

Назначение типа области

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

Определение параметров в ячейках

Чтобы ячейка заполнялась данными, впишите в нее имя поля в квадратных скобках, например [Контрагент], либо выделите ячейку и в палитре свойств установите «Тип заполнения — Параметр», а в свойстве «Параметр» укажите имя поля. Ячейки без параметров выводятся как статический текст.

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

Привязка макета к группировкам отчета

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

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

Оформление: рамки, цвета, форматы и автоотступ

Оформление ячеек макета настраивается стандартными средствами табличного документа: шрифт, границы, цвет фона, выравнивание, формат чисел. Формат удобно задавать прямо в свойствах ячейки, например «ЧДЦ=2» для сумм, — тогда не потребуется дополнительных вычисляемых полей.

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

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

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

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

Если вместо значения выводится текст «[Контрагент]» — ячейке не задан тип заполнения «Параметр». Если ячейка пустая — имя параметра не совпадает с полем набора данных или поле не выбрано в настройках. Если макет вообще не применился — не выполнена привязка к группировке.

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

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

Вывод шапки
Норма

Шапка появляется один раз в начале отчета

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

Шапка повторяется перед каждой строкой или отсутствует

Подстановка параметров
Норма

В ячейках реальные значения из данных

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

Виден текст вида [ИмяПоля] или пустые ячейки

Итоги
Норма

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

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

Итоги пустые или дублируют детальные строки

Итог

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

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

FAQ

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

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

Как вывести в макете значение параметра отчета, например период?

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

Почему после изменения запроса макет перестал заполняться?

Если в запросе переименовали или удалили поле, параметр макета со старым именем больше не находит источник и выводится пустым. После правки набора данных сверьте имена параметров во всех областях макета.

Можно ли комбинировать макет и стандартный вывод в одном отчете?

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

Как сделать разную ширину колонок, которую нельзя изменить пользователю?

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

Нужен ли программный код для вывода отчета с макетом?

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