Колонтитулы

Тема в разделе "1C и всё что с ней связано", создана пользователем Olga1307, 15 апр 2009.

Статус темы:
Закрыта.
  1. Olga1307

    Olga1307 Гость

    Помогите, пожалуйста, решить такую проблему. Как сделать так, чтобы на ПОСЛЕДНЕЙ странице в печатной форме НЕ выводился нижний колонтитул?
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Эти параметры задаются в параметрах колонтитулов. У вас какой Офис стоит?
     
  3. Гость

    Можно указать, начиная с какой страницы выводить. Но с какой прекращать выводить - нельзя.
    Решением может быть разве что создать свою форму для просмотра перед печатью (где табличный документ уже будет не отдельное окно, а ПолеТабличногоДокумента). И на этой форме сделать кнопку "Напечатать", которая будет печатать друг за другом два документа: всё без последней страницы и последнюю страницу без колонтитула.
     
  4. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Только вот определить, что именно будет попадать на последнюю страницу, в 90% случаев вряд ли получится.
     
  5. Olga1307

    Olga1307 Гость

    А как 1С связана с Офисом?
     
  6. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    А у меня отключен модуль телепата. Т.к. вы не указали, какая версия 1С вас интересует, рискнул предположить, что вы заполняете шаблон офисного документа из 1С.
     
  7. Olga1307

    Olga1307 Гость

    Зря ёрничаете. Я просто спросила. Может, я чего-то не знаю, а Вы мне поможете...
     
  8. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Ну хоть версию 1С, которая стоит у вас, вы знаете? Можно было бы и упомянуть.
     
  9. Гость

    Согласен.
    Olga1307, надеюсь, мой оптимизм не был напрасен - Вы редкий человек из тех 10%? В Вашем случае получится корректно использовать функцию "ПроверитьВывод" у ТабличногоДокумента?
     
  10. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Человек
    А с какого перепугу вы решили, что это 8.х?
    Девушка упорно молчит... Может, это 7.7 или 6.0. Или, скажем, такой редкий зверь как 7.5...
    Хотя, какая разница. Само по себе понятие "последняя страница" не особо корректно. Именно по этой же причине можно изменять колонтитул НА ПЕРВОЙ странице. Или вообще его там не выводить. Ольга, открою вам секрет: количество страниц зависит от того, какой принтер установлен у вас в системе. И это будет для большинства текстовых редакторов. Раньше это зависело даже от разрешения вашего монитора. Такова особенность TTF и TYPE1 шрифтов.
     
  11. Olga1307

    Olga1307 Гость

    Версия 1С 7.7.
    В моем случае абсолютно все равно, что попадает на последнюю страницу, главное, чтобы колонтитул на нее не попадал.

    Может быть, мне стоило более конкретно описать задачу. Может, ее можно решить и другим способом.
    Я создаю печатную форму приложения к накладной. На каждой странице, кроме последней, под табличной частью необходимо выводить подписи лиц (отпуск разрешил, произвел, товар принял). Я это решила с помощью колонтитулов. На последней странице под таблицей выводятся более развернутые данные. Причем, они должны находится сразу под таблицей, а не внизу листа, как колонтитул.
    Может быть, я изобретаю велосипед, но в типовых конфигурациях я ничего похожего не видела.
    Подскажите, кто знает, другой вариан решения этой задачи.
     
  12. kaa

    kaa Гость

    выложи модуль печати приложения
     
  13. Olga1307

    Olga1307 Гость

    Процедура ПечатьТН(реж);
    Пересчет1();
    Если Контрагент.Выбран() = 0 Тогда
    Предупреждение("Не выбран покупатель!");
    Возврат;
    КонецЕсли;

    Если ОтпускРазрешил.Выбран() = 0 Тогда
    Предупреждение("Не выбран ОтпускРазрешил !");
    Возврат;
    КонецЕсли;
    Если СдалОтправитель.Выбран() = 0 Тогда
    Предупреждение("Не выбран СдалОтправитель !");
    Возврат;
    КонецЕсли;
    Если ПунктПогрузки = "" Тогда
    Предупреждение("Не выбран Пункт Погрузки !");
    Возврат;
    КонецЕсли;
    Если ДовНомИДата = "" Тогда
    Предупреждение("Не выбран Номер доверенности и Дата!");
    Возврат;
    КонецЕсли;
    Если ДовФИО ="" Тогда
    Предупреждение("Не выбран ДовФИО !");
    Возврат;
    КонецЕсли;

    ОТП_УНН = Константа.ОсновнаяФирма1.УНН;
    ОТП_ОКПО = Константа.ОсновнаяФирма1.КодОКПО;
    ОТП_ЛИЦЕН = СокрЛП(Константа.ПолучитьАтрибут("Лицензия"));

    ПОЛ_УНН = СокрЛП(Контрагент.УНН);
    ПОЛ_ОКПО = СокрЛП(Контрагент.КодОКПО);
    ПОЛ_ЛИЦЕН = СокрЛП(Контрагент.Лицензия);

    ЗАК_УНН = СокрЛП(Контрагент.УНН);
    ЗАК_ОКПО = СокрЛП(Контрагент.КодОКПО);
    ЗАК_ЛИЦЕН = СокрЛП(Контрагент.Лицензия);

    Стр_Грузоотправитель = Шаблон("[Константа.ОсновнаяФирма1.ПолнНаим], [Константа.ОсновнаяФирма1.ЮрАдрес], р/с [Константа.ОсновнаяФирма1.РасчСчет] в [Константа.ОсновнаяФирма1.БанкОрг], код банка [Константа.ОсновнаяФирма1.БанкОрг.МФО]");

    Стр_Контрагент =
    СокрЛП(Контрагент.ПолнНаим) + ", " +
    СокрЛП(Контрагент.ЮрАдрес) + ", р/с " +
    СокрЛП(Контрагент.АдресБанкаОрг) + ", " +
    СокрЛП(Контрагент.БанкОрг) + ", код банка " +
    СокрЛП(Контрагент.БанкОрг.МФО);

    ОснованиеОтпуска = Контрагент.Договор;

    КолонтитулНижний = Шаблон("Отпуск разрешил _________________ [ОтпускРазрешил.Должность] [ОтпускРазрешил]") + РазделительСтрок +
    РазделительСтрок +
    Шаблон("Сдал грузоотправитель _________________ [СокрЛП(СдалОтправитель.Должность)] [СдалОтправитель]") + РазделительСтрок +
    РазделительСтрок +
    Шаблон("Товар к доставке принял _________________ [ДовФИО]");

    Т = СоздатьОбъект("Таблица");

    Если реж = 3 Тогда
    Т.ИсходнаяТаблица("СпецификацияТН");
    Иначе
    Т.ИсходнаяТаблица("ТН2");
    КонецЕсли;
    Т.ВывестиСекцию("Шапка");

    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл

    СтрокаТовар = СокрП(Товар.Наименование) + ", ";
    Если ПустоеЗначение(Товар.ДогкомиссРУ) = 0 Тогда
    СтрокаТовар = СтрокаТовар + СокрП(Товар.ДогкомиссРУ) + ", ";
    КонецЕсли;
    Если ПустоеЗначение(Товар.СтранаПР.Производитель) = 0 Тогда
    СтрокаТовар = СтрокаТовар + СокрП(Товар.СтранаПР.Производитель) + ", ";
    КонецЕсли;
    Если ПустоеЗначение(Товар.СтранаПР) = 0 Тогда
    СтрокаТовар = СтрокаТовар + СокрП(Товар.СтранаПР);
    КонецЕсли;
    СтрокаТовар = СтрокаТовар + РазделительСтрок;
    Если ПустоеЗначение(Товар.ТоварК.Серт_соотвНомер) = 0 Тогда
    СтрокаТовар = СтрокаТовар + СокрП(Товар.ТоварК.Серт_соотвНомер);
    КонецЕсли;
    Если (ПустоеЗначение(Товар.ТоварК.Серт_соотвНомер) = 0) и (ПустоеЗначение(Товар.ТоварК.ГигиенаНомер) = 0) Тогда
    СтрокаТовар = СтрокаТовар + ", ";
    КонецЕсли;
    Если ПустоеЗначение(Товар.ТоварК.ГигиенаНомер) = 0 Тогда
    СтрокаТовар = СтрокаТовар + СокрП(Товар.ТоварК.ГигиенаНомер);
    КонецЕсли;

    ЕдиницаИЗМ = Товар.ЕдИзм;
    ВидТары = Товар.ВидТары;
    Если Кол_во < Товар.Кол_воВУП Тогда
    КВУП = Кол_во;
    Иначе
    КВУП = Товар.Кол_воВУП;
    КонецЕсли;
    КолВоГрМест = КГМ;
    СП = Товар.СтранаПР;
    Производитель = Товар.СтранаПР.Производитель;
    Если (реж = 1) или (реж = 3) Тогда
    Т.ВывестиСекцию("Строка");
    КонецЕсли;
    КонецЦикла;

    Если реж = 2 Тогда
    Т.ВывестиСекцию("Строка_Спец");
    КонецЕсли;

    КолНаим = КоличествоСтрок();
    Т.ВывестиСекцию("Подвал");
    Если реж = 3 Тогда
    Т.Опции(0,0,5,0,,"Печать Спецификации");
    Т.ПовторятьПриПечатиСтроки(1,5);
    Т.ПараметрыСтраницы(1,100,,10,5,10,30,,20,1);
    Иначе
    Т.Опции(0,0,0,0,,"Печать ТН");
    Т.ПараметрыСтраницы(1,100,,10,5,0,10,,,1);
    КонецЕсли;
    Т.ТолькоПросмотр(1);
    Т.Показать("Печать ТН2");
    КонецПроцедуры
     
  14. kaa

    kaa Гость

    что то я с колонтитулами никогда не замарачивался, попробуй так

    КолонтитулНижний = "";
    Т.ВывестиСекцию("Подвал");
     
  15. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Правильно "НижнийКолонтитул="""
    А так - мысль хорошая. Похоже перед печатью подвала как раз и получим ПОСЛЕДНЮЮ страницу
     
  16. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Шаманы вы, однако. На практике пробовали?
    Когда "ВывестиСекцию", колонтитулов еще нет. В этот момент формируется макет таблицы. А вот когда "Показать" или "Напечатать", тогда появляются колонтитулы. И что будет в нижнем колонтитуле? Правильно! НИЧЕГО! И это ничего будет на каждой странице.
     
  17. Olga1307

    Olga1307 Гость

    А других идей, кроме колонтитулов, никто не подкинет?
     
  18. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    В таких случаях обычно рассчитывают высоту таблицы и выводят в начале страницы и в конце нужные данные, т.е. УПРАВЛЯЮТ формированием макета, в том числе и разбивкой на страницы.
     
Статус темы:
Закрыта.

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