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