Имя: Пароль:
1C
1С v8
ЗУП3.1. Отчет Табель Т-13. Горизонтальный разделитель страниц
0 Sun125
 
19.03.19
14:03
Конфигурация ЗУП3.1.
Дорабатываю типовой отчет "Табель Т-13".
Нужно, чтобы последняя строка с сотрудником переносилась на следующую страницу, если подвал не помещается.
Такой код:
// дораб+
        ТабДок = Новый ТабличныйДокумент;
        ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
        ТабДок.АвтоМасштаб = Истина;
        ТабДок.Вывести(ОбластьШапка);
        ТабДок.Вывести(ОбластьШапкаТаблицы);
        ТабДок.Вывести(ОбластьДанныеОВремени);
// дораб-
            
        Для Каждого ДанныеПоСотруднику Из ДанныеПоОрганизации.Строки Цикл
            
// дораб+
            ТабДок.Вывести(ОбластьДанныеОВремени);
            Если ДанныеПоОрганизации.Строки[ДанныеПоОрганизации.Строки.Количество()-1] = ДанныеПоСотруднику Тогда
                КолСтраницДо = ТабДок.КоличествоСтраниц();
                ТабДок.Вывести(ОбластьПодвал);
                Если КолСтраницДо <> ТабДок.КоличествоСтраниц() Тогда
                    ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
                КонецЕсли;
            КонецЕсли;
// дораб-
            
            ВывестиДанныеПоСотруднику(ДокументРезультат, ОбластьДанныеОВремени, ОбластьШапкаТаблицы, ДанныеПоСотруднику, ТекущийЛист);
        КонецЦикла;    

В итоге РазделительСтраниц вставляется в табличный документ как будто два раза (При печати возникает пустой лист).
Подскажите,пожалуйста, в чем может быть ошибка?
1 Sun125
 
19.03.19
14:27
(0)
В процедуре ВывестиОбласть()

// в отладчике ДокументРезультат.КоличествоСтраниц()=1
    ДокументРезультат.Вывести(ВыводимаяОбласть);  
// в отладчике ДокументРезультат.КоличествоСтраниц()=3
2 Sun125
 
19.03.19
14:39
(0) Перед выводом везде где угодно установил Автомасштаб- не помогает все равно..

Процедура ВывестиОбласть(ДокументРезультат, ТекущийЛист, ВыводимаяОбласть, ПроверяемыеОбласти)  
    //Если Не ОбщегоНазначения.ПроверитьВыводТабличногоДокумента(ТекущийЛист, ПроверяемыеОбласти) Тогда              
    //    ТекущийЛист = Новый ТабличныйДокумент;
    //    ТекущийЛист.ОриентацияСтраницы = ДокументРезультат.ОриентацияСтраницы;
    //      ТекущийЛист.АвтоМасштаб = ДокументРезультат.АвтоМасштаб;
    //КонецЕсли;
    
    //ТекущийЛист.Вывести(ВыводимаяОбласть);
    ТекущийЛист.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТекущийЛист.АвтоМасштаб = Истина;
    ВыводимаяОбласть.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ВыводимаяОбласть.АвтоМасштаб = Истина;
    ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ДокументРезультат.АвтоМасштаб = Истина;
    
    ДокументРезультат.Вывести(ВыводимаяОбласть);    
КонецПроцедуры
3 Sun125
 
19.03.19
14:42
(0)
В процедуре ВывестиОбласть()

// в отладчике ДокументРезультат.КоличествоСтраниц()=1, ВыводимаяОбласть.КоличествоСтраниц()=1
    ДокументРезультат.Вывести(ВыводимаяОбласть);  
// в отладчике ДокументРезультат.КоличествоСтраниц()=3
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс