8.х Расчет строки для вывода на печать

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

  1. TopicStarter Overlay
    solnce
    Offline

    solnce Опытный в 1С

    Регистрация:
    16 июл 2009
    Сообщения:
    61
    Симпатии:
    0
    Баллы:
    26
    Доброе время суток. У меня вот какая проблема, есть отчет, у меня есть область шапка, строка(анализируются все ттн и в тз выгружаются), итого и подвал, мне нужно, чтобы при выводе на печать на 1 странице: была область шапка, строка и итого, но есть условие, чтобы итого не перемещалось на 2 страницу, а была четко прикреплена к таблице,то есть у меня помещается на странице 15 строк фиксированной длины, из них в таблице 11 строк и шапка занимает 4 строки, если записей в таблице 5 то итого попадает на страницу, если скажем 6, то 6 строка вместе с итого перемещается на 2 лист, если записей в таблице 11 то 10 должны заполняться на 1 листе, а 11 строка вместе с итого попадает на 2 страницу, я незнаю как мне задать такое условие. :cry: если кто то сможет подсказать, буду очень признательна!!!!
    Заранее благодарю!!!
  2. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    ну можно делать простой подсчёт строк, количество которых должно попасть на страницу с учётом строки итого, затем на следующей странице также выполнять подсчёт количества строк с учётом строки итого.принцип понятен?хотя сами вы наверное об этом способе думали....
  3. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Посмотрите метод ПроверитьВывод
    Ну и конечно же посмотрите в типовой например печать ТОРГ-12. Там как раз и проверяется помещается все на один лист или нет.
    Код:
    			Если Ном = 1 Тогда // первая срока
    
    ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; 
    ТабДокумент.Вывести(ОбластьЗаголовокТаблицы);
    
    Иначе
    
    МассивВыводимыхОбластей.Очистить();
    МассивВыводимыхОбластей.Добавить(ОбластьМакета);
    МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);
    Если Ном = КоличествоСтрок Тогда
    МассивВыводимыхОбластей.Добавить(ОбластьВсего);
    МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
    КонецЕсли;		
    
    Если Ном <> 1 И НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
    
    ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогМестПоСтранице        = ИтогоМестНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице  = ИтогоКоличествоНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице       = ИтогоСуммаНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице         = ИтогоНДСНаСтранице;
    ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице   = ИтогоСуммаСНДСНаСтранице;
    
    ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
    
    // очистим итоги по странице
    ИтогоМассаБруттоНаСтранице = 0;
    ИтогоМестНаСтранице        = 0;
    ИтогоКоличествоНаСтранице  = 0;
    ИтогоСуммаНаСтранице       = 0;
    ИтогоНДСНаСтранице         = 0;
    ИтогоСуммаСНДСНаСтранице   = 0;
    
    НомерСтраницы = НомерСтраницы + 1;
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
    ТабДокумент.Вывести(ОбластьЗаголовокТаблицы);
    
    КонецЕсли;
    
    КонецЕсли;	
    

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