Слетает фиксация сверху при компоновке результата в табличном документе

1. NenavizhySKD 30.10.25 16:58 Сейчас в теме
Уважаемые, добрый вечер.

В модуле объекта отчета в стандартной процедуре ПриКомпоновкеРезультата . Слетает фиксация сверху у табличного документ, вот код


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;    
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,       КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); 
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

// В этом месте пока, что всё хорошо. Фиксация сверху стоит как надо. ДокументРезультат.ФиксацияСверху = 8
	
	ОбластьОрганизация = ДокументРезультат.НайтиТекст("Организация"); 
	СтрокаОрганизации = Прав(Лев(ОбластьОрганизация.Имя, 2), 1) - 1;
	
	Для НомерКолонки = 1 По ДокументРезультат.ШиринаТаблицы Цикл 
		ОбластьСКартинками = ДокументРезультат.Область("R" + СтрокаОрганизации + "C"  + НомерКолонки);
		ОбластьСКартинками.Текст =  " ";
		ОбластьСКартинками.Картинка = Новый Картинка; 
	КонецЦикла;  
	
	ОбластьСКартинками.Текст = "Тыс."; 
	ОбластьСКартинками.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;	
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

// А вот здесь уже после второго вывода уже слетела. ДокументРезультат.ФиксацияСверху = 0 :(
	
КонецПроцедуры

Показать


Как этого можно избежать? Фиксация сверху нужна. В дальнейшем в модуле ОтчетыКлиентПереопределяемый в процедуре ПослеФормирования фиксация участвует в алгоритмах .
По теме из базы знаний
Найденные решения
4. DENSKR 15 30.10.25 19:40 Сейчас в теме
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;    
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); 
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

    // Сохраняем значение ФиксацияСверху
    ФиксацияСверху = ДокументРезультат.ФиксацияСверху;
    
    ОбластьОрганизация = ДокументРезультат.НайтиТекст("Организация"); 
    СтрокаОрганизации = Прав(Лев(ОбластьОрганизация.Имя, 2), 1) - 1;
    
    Для НомерКолонки = 1 По ДокументРезультат.ШиринаТаблицы Цикл 
        ОбластьСКартинками = ДокументРезультат.Область("R" + СтрокаОрганизации + "C"  + НомерКолонки);
        ОбластьСКартинками.Текст =  " ";
        ОбластьСКартинками.Картинка = Новый Картинка; 
    КонецЦикла;  
    
    ОбластьСКартинками.Текст = "Тыс."; 
    ОбластьСКартинками.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;    
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

    // Восстанавливаем значение ФиксацияСверху
    ДокументРезультат.ФиксацияСверху = ФиксацияСверху;
    
КонецПроцедуры
Показать
NenavizhySKD; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user_1936660 30.10.25 17:04 Сейчас в теме
(1)
фиксация участвует в алгоритмах
Боженьки ж ты мои...
3. NenavizhySKD 30.10.25 19:35 Сейчас в теме
4. DENSKR 15 30.10.25 19:40 Сейчас в теме
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;    
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина); 
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

    // Сохраняем значение ФиксацияСверху
    ФиксацияСверху = ДокументРезультат.ФиксацияСверху;
    
    ОбластьОрганизация = ДокументРезультат.НайтиТекст("Организация"); 
    СтрокаОрганизации = Прав(Лев(ОбластьОрганизация.Имя, 2), 1) - 1;
    
    Для НомерКолонки = 1 По ДокументРезультат.ШиринаТаблицы Цикл 
        ОбластьСКартинками = ДокументРезультат.Область("R" + СтрокаОрганизации + "C"  + НомерКолонки);
        ОбластьСКартинками.Текст =  " ";
        ОбластьСКартинками.Картинка = Новый Картинка; 
    КонецЦикла;  
    
    ОбластьСКартинками.Текст = "Тыс."; 
    ОбластьСКартинками.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;    
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);

    // Восстанавливаем значение ФиксацияСверху
    ДокументРезультат.ФиксацияСверху = ФиксацияСверху;
    
КонецПроцедуры
Показать
NenavizhySKD; +1 Ответить
5. NenavizhySKD 31.10.25 10:18 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот