8.х Проблема с "Проверить вывод"

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем rosveta, 19 янв 2017.

  1. TopicStarter Overlay
    rosveta
    Offline

    rosveta Опытный в 1С

    Регистрация:
    22 май 2015
    Сообщения:
    177
    Симпатии:
    10
    Баллы:
    29
    Добрый день. Создаю печатную форму. Необходимо сделать так: Если табличная часть с подвалом не умещается, необходимо вставить разрыв страницы. И на следующей странице вывести шапку. То есть на каждой странице обязательно должна быть шапка и подвал. Вроде бы все просто.


    Код:
    ТабличныйДокумент = Новый ТабличныйДокумент;
        ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЧастныйАкт";
        Макет = ПолучитьМакет("ЧастныйАкт");
        ТабличныйДокумент.АвтоМасштаб = Истина;
        ТабличныйДокумент.ПолеСлева = 5;
        ТабличныйДокумент.ПолеСправа = 5;
        ТабличныйДокумент.РазмерКолонтитулаСверху = 0;
        ТабличныйДокумент.РазмерКолонтитулаСнизу = 0;
    
    ДанныеПечати = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
     
        ОбластьШапка     = Макет.ПолучитьОбласть("Шапка");
        ОбластьСтрока     = Макет.ПолучитьОбласть("Строка");
        ОбластьПодвал     = Макет.ПолучитьОбласть("Подвал");
    
        МассивПроверяемыхОбластей = Новый Массив;
     
        Пока ДанныеПечати.Следующий() Цикл
         
            Если Не ПервыйДокумент Тогда
                ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            КонецЕсли;
         
            ПервыйДокумент = Ложь;
         
            ОбластьШапка.Параметры.Заполнить(ДанныеПечати);
            ОбластьШапка.Параметры.Дата = Формат(ДанныеПечати.Дата, "ДФ=dd.MM.yyyy");
            ТабличныйДокумент.Вывести(ОбластьШапка);
                 
            ДанныеТехОтход = ДанныеПечати.Выбрать();
         
            Пока ДанныеТехОтход.Следующий() Цикл
                ОбластьСтрока.Параметры.Заполнить(ДанныеТехОтход);
                МассивПроверяемыхОбластей.Очистить();
                МассивПроверяемыхОбластей.Добавить(ОбластьСтрока);
                МассивПроверяемыхОбластей.Добавить(ОбластьПодвал);
             
             
                Если НЕ ТабличныйДокумент.ПроверитьВывод(МассивПроверяемыхОбластей) Тогда
                    ТабличныйДокумент.Вывести(ОбластьПодвал);
                    ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
                    ТабличныйДокумент.Вывести(ОбластьШапка);
                КонецЕсли;
             
                ТабличныйДокумент.Вывести(ОбластьСтрока);
    
            КонецЦикла;
         
            ТабличныйДокумент.Вывести(ОбластьПодвал);
                 
        КонецЦикла;
     
        Возврат ТабличныйДокумент;
    Таким образом я это реализовала, отрабатывает все верно, кроме первой страницы. На первой странице разрыв происходит раньше, чем необходимо. Как будто там проверяется еще одна область подвала. Прошу помочь разобраться, что не так. Заранее спасибо.
    Clip2net_170119142557.png Clip2net_170119142647.png
  2. Gfdtk
    Offline

    Gfdtk Опытный в 1С

    Регистрация:
    28 апр 2008
    Сообщения:
    170
    Симпатии:
    0
    Баллы:
    26
    Вот тут Первый документ чему равен?
    Код:
        Пока ДанныеПечати.Следующий() Цикл
        
            Если Не ПервыйДокумент Тогда
    
    Попробуйте перед циклом переменную инициализировать.
  3. TopicStarter Overlay
    rosveta
    Offline

    rosveta Опытный в 1С

    Регистрация:
    22 май 2015
    Сообщения:
    177
    Симпатии:
    10
    Баллы:
    29
    Спасибо. Попробую. Пока решила проблему тем, что на первой странице не проверяю подвал, на всех последующих проверяю

Поделиться этой страницей