Когда передо мной ставилась такая задача: - А можно, чтобы каждая таблица выводилась на отдельном листе? Конечно, можно. При этом я начинал вспоминать, где я это видел или уже делал, и интернет мне в помощь и пр. Все, что я находил в интернете, сводилось либо к созданию макета, либо обрабатывать вывод процессора компоновки и в процессе вывода вставлять разделитель в нужных местах. Макет рисовать не хочется потому, что его придется переделывать под каждый отчет. Программный код, который я находил, считаю более громоздким. Но нашел вариант, как упростить программный код.
Итак, все, что нам нужно, это поймать начало группировки, которая должна быть выведена на новой странице. В моем случае я начало группировки определил отдельным полем "Заголовок"
Просто добавил вычисляемое поле с определенным текстом - "Заголовок" - по этой фразе будем определять начало листа, поэтому можете придумать свою ключевую фразу.
Далее в настройках поставил это поле первым в своем отчете,
Далее все-таки придется лезть в код, поскольку это поле надо найти и обработать. Но я это поле буду обрабатывать уже после вывода результата.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ИтоговыеНастройки = КомпоновщикНастроек.ПолучитьНастройки();
//Можем редактировать настройки компоновки (ИтоговыеНастройки)
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, ИтоговыеНастройки, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
//Можем редактировать табличный документ (ДокументРезультат)
// Считываю параметры периода хотя это не обязательно
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПериодОтчета");
Если Параметр <> Неопределено Тогда
Элемент = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Параметр.ИдентификаторПользовательскойНастройки);
Если Элемент <> Неопределено И Элемент.Использование Тогда
Дата1 = Элемент.Значение.ДатаНачала;
Дата2 = Элемент.Значение.ДатаОкончания;
КонецЕсли;
КонецЕсли;
ПОиск=ДокументРезультат.НайтиТекст("Заголовок",ДокументРезультат.Область(1,1),,,,Истина);
ПОка не ПОиск=Неопределено Цикл
ПОиск.Текст="Лицевой счет сотрудника по начислению зарплаты и удержаниям за период "+ПредставлениеПериода(Дата1,Дата2,"ДЛФ=ДД");
ДокументРезультат.Область("R"+Формат(ПОиск.Низ,"ЧГ=0")).НачалоСтраницы=Истина; //Эта строка работает также как ВывестиГоризонтальныйРазделительСтраниц()
ПОиск=ДокументРезультат.НайтиТекст("Заголовок",,,,,Истина);
КонецЦикла;
КонецПроцедуры
Суть следующая - первые несколько строк - это стандартный программный вывод отчета.
Далее в результате просто ищу свое ключевое слово "Заголовок", определяю, какая это строка (свойство поиск.низ) и указываю у этой области, что ДокументРезультат.Область("R"+Формат(ПОиск.Низ,"ЧГ=0")).НачалоСтраницы=Истина;. И в результате отчет выводится с разрывом в начале каждой группировки
В моем примере я еще и текст этой области заменил на свой. Таким способом обработки постфактум табличного документа, даже не обязательно создавать отдельное поле. Можно в настройках задать выводить заголовок и прописать в заголовке ключевое слово.
В итоге минимальные правки в настройках и коде и прекрасный результат.
Тестировалось на платформе 8.3.19.
Надеюсь, кому-то поможет данное решение.