И еще немного про фиксацию СКД
Погуглив, нашел множество вариантов решения задачи, но все они упирались в написание кучи строк кода, расчетом количества строк в шапке и т.п. Эти варианты показались мне не очень удачными, поэтому я решил поступить следующим образом: пользователь, в случае когда ему необходима фиксация – сам указывает количество строк. Так как настройки сохраняются, то этот параметр ему надо будет задать один раз для определенного варианта отчета.
Данный способ реализовывал в 8.2 следующим образом:
1) Задаем параметр в СКД:
2) Выводим его в быстрые настройки:
3) На форме получаем следующее:
В платформе 8.2 появилась процедура «ПриКомпоновкеРезультата», в ней мы и укажем наше значение:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
//Стандартные описания Компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //Внешний отчет
МакетКомпоновки = КомпоновщикМакета.Выполнить(
СхемаКомпоновкиДанных,
КомпоновщикНастроек.ПолучитьНастройки(),
ДанныеРасшифровки
);
//Закончили описание
//В случае если мы можем получить параметр, то установим его, иначе не будем фиксировать
Попытка
ФиксацияСверху = МакетКомпоновки.ЗначенияПараметров.ФиксацияСверху.Значение;
ДокументРезультат.ФиксацияСверху = ФиксацияСверху;
Исключение
КонецПопытки;
КонецПроцедуры
Таким образом пользователю не важно количество параметров отбора, он может сам отрегулировать себе шапку. Установить значение фиксации в ручную не так уж затратно по времени, и думаю не очень сложно, надеюсь вашего клиента это устроит. :)