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

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

Сначала попробуйте обойтись без макетов

Большинство «хочу, чтобы выглядело вот так» решается стандартными средствами настроек:

Что нужноЧем сделать без макета
Поменять состав и порядок колонокВыбранные поля и группы полей в выборе
Объединить колонки под общим заголовкомГруппа выбранных полей с заголовком
Выделить цветом строки или значенияУсловное оформление
Убрать или переставить итоги«Другие настройки»: расположение итогов, ресурсов, полей группировки
Вывести заголовок отчёта, отборы и параметры«Другие настройки»: вывод заголовка, отбора, параметров данных
Сменить общий стильМакет оформления (стандартный или свой)

Если после этого результат всё ещё не устраивает — переходим к макетам. На проектах я заранее предупреждаю заказчика, что отчёт с макетами будет иметь фиксированную структуру: менять группировки в нём можно только вместе с макетом.

Виды макетов СКД

На вкладке «Макеты» доступны несколько видов. На практике мне хватает такой шпаргалки:

Вид макетаЗа что отвечаетКогда нужен
Макет группировкиВывод строк (или колонок) конкретной группировкиСвоя разметка строки, заголовок отчёта с параметрами, подвал с подписями
Макет заголовка группировкиШапка таблицы над группировкойСложная многоуровневая шапка; скрытие лишней шапки вложенной группировки
Макет ресурсовЯчейки на пересечении строк и колонок таблицыНестандартный вывод значений в кросс-таблице
Макет поляОформление отдельного поляРедко: почти всё закрывает условное оформление; иногда — для особых параметров расшифровки

У макетов группировок задаётся тип: «Заголовок» (выводится перед данными группировки, для строк это и есть сама строка) или «Подвал» (после), а также варианты для общих итогов и иерархии. Подвал выводится только если в настройках группировки разрешён вывод в конце.

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

Как макет связывается с данными

Область макета — это кусок табличного документа. Каждой ячейке задаётся вид заполнения:

  • Текст — статичная надпись;
  • Параметр — ячейка целиком заполняется значением параметра макета;
  • Шаблон — текст с подстановками в квадратных скобках: Остатки на [ДатаОстатков] по складу [Склад].

Параметры, упомянутые в области, появляются в таблице «Параметры» макета. Каждому задаётся выражение на языке выражений СКД. В выражении доступны поля группировки, ресурсы, параметры данных (&Период, &Склад), а через точку — реквизиты ссылочных полей: Контрагент.ИНН, Склад.Ответственный. Отдельно можно описать параметры расшифровки — тогда по ячейке будет работать расшифровка, как в обычном выводе.

Ячейкам области, как и в печатных формах, задаются шрифт, границы, выравнивание, высота строки и ширина колонок.

Пример: заголовок отчёта с параметрами

Задача: в начале отчёта вывести одну строку «Продажи за период с 01.01.2026 по 31.01.2026, склад: Центральный». Стандартный вывод параметров даёт список «Параметр — значение», а нужна связная фраза.

Макеты СКД: шаблонная область накладывается на группировку и формирует шапку отчёта
Макеты СКД: шаблонная область накладывается на группировку и формирует шапку отчёта
  1. На вкладке «Настройки» добавьте в корень структуры новую группировку без полей и поставьте её первой, выше основной.
  2. В её свойствах задайте имя, например Шапка. Вариант использования группировки — «Дополнительная информация», макет оформления — «Без оформления», чтобы не тянуть стили и рамки.
  3. Перейдите на вкладку «Макеты» и добавьте макет группировки. В поле «Имя группировки» выберите Шапка, тип макета — «Заголовок».
  4. Нарисуйте область: например, объедините несколько ячеек первой строки, задайте крупный полужирный шрифт.
  5. Ячейке задайте заполнение «Шаблон» и текст: Продажи за период с [НачалоПериода] по [КонецПериода], склад: [Склад].
  6. В таблице параметров макета укажите выражения. Для дат удобно сразу форматировать: Формат(&НачалоПериода, "ДФ=dd.MM.yyyy"), для склада — &Склад. Если склад не задан, используйте выражение с условием: ВЫБОР КОГДА &Склад ЕСТЬ NULL ТОГДА "все" ИНАЧЕ &Склад КОНЕЦ — синтаксис выражений СКД близок к языку запросов, но проверяйте результат на своих данных.

Группировка без полей выводится один раз, поэтому шапка появится строго в начале отчёта, независимо от количества данных.

Пример: убрать лишнюю шапку вложенной группировки

Частая ситуация: у отчёта две группировки, вы добавили для первой свою шапку макетом заголовка группировки, а вторая продолжает выводить собственную стандартную шапку внутри таблицы.

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

Этот же приём работает для подвалов и итогов: пустой макет с нужным типом подавляет стандартный вывод.

Когда макета мало: постобработка в модуле отчёта

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

Разрыв страницы после каждой группировки

Логичная попытка — положить разрыв страницы в область подвала группировки. Но разделитель страниц из области макета в результат может не попасть, поэтому полагаться на это не стоит. Надёжный способ — поэлементный вывод: в подвал группировки выводим ячейку с параметром-маркером, а при выводе заменяем этот элемент на разделитель страниц.

Маркер задаём так: в макете подвала группировки одна ячейка с заполнением «Параметр», параметр Разрыв с выражением "#РАЗРЫВ#".

1С
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

	СтандартнаяОбработка = Ложь;

	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
		КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);

	Процессор = Новый ПроцессорКомпоновкиДанных;
	Процессор.Инициализировать(Макет, , ДанныеРасшифровки, Истина);

	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.НачатьВывод();

	Элемент = Процессор.Следующий();
	Пока Элемент <> Неопределено Цикл
		Если ЭтоМаркерРазрыва(Элемент) Тогда
			ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
		Иначе
			ПроцессорВывода.ВывестиЭлемент(Элемент);
		КонецЕсли;
		Элемент = Процессор.Следующий();
	КонецЦикла;

	ПроцессорВывода.ЗакончитьВывод();

КонецПроцедуры

// Проверяет, содержит ли элемент результата служебный параметр-маркер разрыва страницы.
Функция ЭтоМаркерРазрыва(Элемент)

	Для Каждого ЗначениеПараметра Из Элемент.ЗначенияПараметров Цикл
		Если ЗначениеПараметра.Значение = "#РАЗРЫВ#" Тогда
			Возврат Истина;
		КонецЕсли;
	КонецЦикла;

	Возврат Ложь;

КонецФункции

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

Две несвязанные таблицы рядом

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

1С
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

	СтандартнаяОбработка = Ложь;

	ТаблицаПриход = СформироватьЭлементСтруктуры(0);
	ТаблицаРасход = СформироватьЭлементСтруктуры(1);

	ДокументРезультат.Вывести(ТаблицаПриход);
	ДокументРезультат.Присоединить(ТаблицаРасход);

КонецПроцедуры

// Формирует табличный документ только по одному элементу структуры настроек.
Функция СформироватьЭлементСтруктуры(ИндексЭлемента)

	Настройки = КомпоновщикНастроек.ПолучитьНастройки(); // возвращает копию
	Для Индекс = 0 По Настройки.Структура.Количество() - 1 Цикл
		Настройки.Структура[Индекс].Использование = (Индекс = ИндексЭлемента);
	КонецЦикла;

	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

	Процессор = Новый ПроцессорКомпоновкиДанных;
	Процессор.Инициализировать(Макет, , , Истина);

	Результат = Новый ТабличныйДокумент;
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(Результат);
	ПроцессорВывода.Вывести(Процессор);

	Возврат Результат;

КонецФункции

Цена такого решения — отчёт формируется дважды и расшифровка в нём не работает без дополнительной доработки. Для отчётов, которые больше похожи на печатную форму, это обычно приемлемо. Если таких форм много, возможно, их стоит делать сразу как печатные формы 1С, а не как отчёты.

Типичные ошибки с макетами СКД

  • Макет не применяется. Имя группировки в макете не совпадает с именем в настройках, или пользовательский вариант хранит старую структуру. Сбросьте пользовательские настройки и проверьте имя.
  • Параметр в шаблоне выводится пустым. Параметр не описан в таблице параметров макета или выражение ссылается на поле, недоступное на этом уровне группировки.
  • Шапка таблицы «съехала». Количество колонок в макете заголовка не совпадает с количеством колонок в макете строк.
  • Отчёт сломался после правки пользователем. Макеты рассчитаны на фиксированную структуру. Закройте для пользователя изменение структуры варианта или вынесите нестандартный вид в отдельный вариант.
  • Пропала расшифровка. В параметрах макета не заданы параметры расшифровки, а в программном выводе не передан ДанныеРасшифровки.
Сначала настройки, потом макеты, и только потом код. Каждый следующий шаг делает отчёт красивее, но дороже в сопровождении.

Нестандартные отчёты и формы — регулярная часть работ по отчётам на СКД и доработке 1С: там же можно навести порядок в вариантах, которые сломались после обновлений.

Коротко

  • Макеты СКД настраиваются на вкладке «Макеты» и привязываются к группировке по имени или по полям; по имени надёжнее.
  • Заголовок с параметрами: группировка без полей с именем, макет группировки типа «Заголовок», ячейка-шаблон с параметрами [Имя].
  • Пустой макет заголовка группировки подавляет стандартную шапку вложенного уровня.
  • Разрыв страниц и горизонтальное размещение таблиц делаются программно в ПриКомпоновкеРезультата.
  • Макеты фиксируют структуру отчёта — предупреждайте пользователей и не злоупотребляйте ими.