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