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