• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Колонтитулы

  • Автор темы Olga1307
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

Olga1307

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

vitfil

Эти параметры задаются в параметрах колонтитулов. У вас какой Офис стоит?
 
G

Guest

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

vitfil

которая будет печатать друг за другом два документа: всё без последней страницы и последнюю страницу без колонтитула.
Только вот определить, что именно будет попадать на последнюю страницу, в 90% случаев вряд ли получится.
 
O

Olga1307

А у меня отключен модуль телепата. Т.к. вы не указали, какая версия 1С вас интересует, рискнул предположить, что вы заполняете шаблон офисного документа из 1С.

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

vitfil

Ну хоть версию 1С, которая стоит у вас, вы знаете? Можно было бы и упомянуть.
 
G

Guest

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

vitfil

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

Olga1307

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

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

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");
КонецПроцедуры
 
K

kaa

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

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

vitfil

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

Olga1307

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

vitfil

В таких случаях обычно рассчитывают высоту таблицы и выводят в начале страницы и в конце нужные данные, т.е. УПРАВЛЯЮТ формированием макета, в том числе и разбивкой на страницы.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!