8.х Вывести подвал

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

  1. TopicStarter Overlay
    Xors
    Offline

    Xors

    Регистрация:
    21 фев 2008
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Нужно область таблицы всегда выводить внизу страницы, всегда в фиксированном месте, независимо от количества строк в документе. Как зафиксирвать область?
  2. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Может нижний колонтитул тебя спасет?
  3. TopicStarter Overlay
    Xors
    Offline

    Xors

    Регистрация:
    21 фев 2008
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    не, не спасет.... у меня там реквизиты в 3-х столбцах....
  4. dend
    Offline

    dend Опытный в 1С

    Регистрация:
    9 апр 2007
    Сообщения:
    175
    Симпатии:
    0
    Баллы:
    26
    Способ только один - подсчет строк и выводить нужную область в нужный момент
  5. TopicStarter Overlay
    Xors
    Offline

    Xors

    Регистрация:
    21 фев 2008
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    так я и думал, гнусный способ.... то есть выводить пустые строки перед областью если надо?
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Не извращайтесь - используйте метод ПроверитьВывод и будет счастье.

    ЗЫ. Но пустые строки все равно придется выводить :)
  7. TopicStarter Overlay
    Xors
    Offline

    Xors

    Регистрация:
    21 фев 2008
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Использую этот метод, все нормально, переносится страница, шапка правильная на каждой странице, а на поледней подвал следует сразу после последней строки, что не есть гуд. Я-то наввожу пустых строк чтоб подвал к низу страницы прилип - но это ацтой, вот хотел бы узнать нет ли другого пути
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Код вывода покажи
  9. TopicStarter Overlay
    Xors
    Offline

    Xors

    Регистрация:
    21 фев 2008
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Код вывода?
  10. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну дык участок кода, как выводишь :)
  11. TopicStarter Overlay
    Xors
    Offline

    Xors

    Регистрация:
    21 фев 2008
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура ОсновныеДействияФормыПечать(Кнопка)
    ТаблицаЗаказов     = Новый ТаблицаЗначений;
    ТаблицаУслуг     = Новый ТаблицаЗначений;
    ТабДокумент     = Новый ТабличныйДокумент;
    СодержаниеСтр     = Новый Массив;
    Макет             = ПолучитьМакет("СводныйСчет");
    
    ОбластьШапки     = Макет.ПолучитьОбласть("Шапка");
    ОбластьПодвала     = Макет.ПолучитьОбласть("Подвал");
    ОбластьСтроки     = Макет.ПолучитьОбласть("Строка");
    ОбластьЗаказа     = Макет.ПолучитьОбласть("СтрокаЗаказ");
    ОбластьИтога    = Макет.ПолучитьОбласть("ИтоговаяСтрока");
    ПустаяОбласть    = Макет.ПолучитьОбласть("ПустаяСтрока");
    
    НомерСтраницы     = 1;
    ИтогСумма         = 0;
    
    ОбластьШапки.Параметры.Контрагент = Контрагент;
    ОбластьШапки.Параметры.КодКонтрагента = Контрагент.Код;
    ОбластьШапки.Параметры.Число = Формат(Дата,"ДЛФ=Д");
    ОбластьШапки.Параметры.Номер = Номер;
    ОбластьШапки.Параметры.Стр = НомерСтраницы;
    ТабДокумент.Вывести(ОбластьШапки);
    
    ТаблицаЗказов = Заказы.Выгрузить();
    Для Каждого СтрокаЗаказ из ТаблицаЗказов Цикл
    ТаблицаУслуг = СтрокаЗаказ.Заказ.Номенклатура.Выгрузить();
    Для Каждого СтрокаУслуги из ТаблицаУслуг Цикл
    СодержаниеСтр.Очистить();
    СодержаниеСтр.Добавить(ОбластьПодвала);
    СодержаниеСтр.Добавить(ОбластьСтроки);
    
    ОбластьСтроки.Параметры.Код = СтрокаУслуги.Услуга.Код;
    ОбластьСтроки.Параметры.Услуга = СтрокаУслуги.Услуга;
    ОбластьСтроки.Параметры.ЕдиницаИзмерения = СтрокаУслуги.Услуга.БазоваяЕдиницаИзмерения;
    ОбластьСтроки.Параметры.Цена = Формат(СтрокаУслуги.Цена,"ЧЦ=15; ЧДЦ=2");
    ОбластьСтроки.Параметры.Количество = СтрокаУслуги.Количество;
    ОбластьСтроки.Параметры.Сумма = Формат(СтрокаУслуги.Сумма,"ЧЦ=15; ЧДЦ=2");
    ТабДокумент.Вывести(ОбластьСтроки);
    Если Не ТабДокумент.ПроверитьВывод(СодержаниеСтр) Тогда
    
    СодержаниеСтр.Очистить();
    СодержаниеСтр.Добавить(ПустаяОбласть);
    СодержаниеСтр.Добавить(ОбластьПодвала);
    Пока ТабДокумент.ПроверитьВывод(СодержаниеСтр) Цикл
    
    СодержаниеСтр.Очистить();
    СодержаниеСтр.Добавить(ПустаяОбласть);
    СодержаниеСтр.Добавить(ОбластьПодвала);
    ТабДокумент.Вывести(ПустаяОбласть);
    КонецЦикла;          
    
    ТабДокумент.Вывести(ОбластьПодвала);
    
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();    
    НомерСтраницы = НомерСтраницы + 1;
    
    ОбластьШапки.Параметры.Контрагент = Контрагент;
    ОбластьШапки.Параметры.КодКонтрагента = Контрагент.Код;
    ОбластьШапки.Параметры.Число = Формат(Дата,"ДЛФ=Д");
    ОбластьШапки.Параметры.Номер = Номер;
    ОбластьШапки.Параметры.Стр = НомерСтраницы;
    
    ТабДокумент.Вывести(ОбластьШапки);
    КонецЕсли;
    
    КонецЦикла;
    ОбластьЗаказа.Параметры.Заказ = Строка(СтрокаЗаказ.Заказ);
    ТабДокумент.Вывести(ОбластьЗаказа);
    
    ИтогСумма = ИтогСумма + СтрокаЗаказ.Сумма;
    
    КонецЦикла;
    
    СодержаниеСтр.Очистить();
    
    СодержаниеСтр.Добавить(ОбластьПодвала);
    СодержаниеСтр.Добавить(ОбластьСтроки);
    СодержаниеСтр.Добавить(ОбластьЗаказа);
    СодержаниеСтр.Добавить(ОбластьИтога);
    Пока ТабДокумент.ПроверитьВывод(СодержаниеСтр) Цикл
    СодержаниеСтр.Очистить();
    СодержаниеСтр.Добавить(ОбластьИтога); //
    СодержаниеСтр.Добавить(ОбластьПодвала);
    СодержаниеСтр.Добавить(ПустаяОбласть);    
    ТабДокумент.Вывести(ПустаяОбласть);
    КонецЦикла;
    ОбластьИтога.Параметры.Сумма = ИтогСумма;
    ТабДокумент.Вывести(ОбластьИтога);
    ТабДокумент.Вывести(ОбластьПодвала);
    
    ТабДокумент.Показать();
    КонецПроцедуры
    
    
    __________________________________________________________________

    в общем я реши проблему, результат меня устраивает вполне уже, а метод не очень
  12. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    1. Используй тэг
    Код:
    , а то читать тяжело.
    2. Метод не ахти как выглядит, но в данном случае - вполне может жить.

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