PDA

Просмотр полной версии : Создание печатных форм



Proger
08.11.2010, 09:52
Здравствуйте, кто нибудь сталкивался с такой ситуацией: нужно сделать так, чтобы определенная область макета выводилась в начале каждой новой страницы, и еще одна область - в конце каждой страницы? Как это можно описать на встроенном языке?

Добавлено через 11 часов 12 минут 42 секунды
Структура макета:

| ВерхКолонтитул (с картинками) |
| Шапка |
| Заголовок |
|Строка (количество строк зависит от колиества товаров) |
| Подвал |
| НизКолонтитул (с картинками) |

Задача:

Область верхКолонтитул должна выводиться в верху каждой страницы, а НизКолонтитул - в низу каждой страницы.

Решение:


ТабДок = Новый ТабличныйДокумент;
ТабДок.Очистить();
Макет = ПолучитьМакет("Макет");

//Получаем области макета
ВерхКолонтитул = Макет.ПолучитьОбласть("ВерхКолонтитул");
Шапка = Макет.ПолучитьОбласть("Шапка");
Заголовок = Макет.ПолучитьОбласть("Заголовок");
Строка = Макет.ПолучитьОбласть("Строка");
Подвал = Макет.ПолучитьОбласть("Подвал");
НизКолонтитул = Макет.ПолучитьОбласть("НизКолонтитул");

//Выводим область "ВерхКолонтитул"
ТабДок.Вывести(ВерхКолонти тул);

//Выводим область "Шапка"
// Параметры шапки
// ...
ТабДок.Вывести(Шапка);

//Выводим область "ЗаголовокСтрока"
// Параметры заголовка
// ...
ТабДок.Вывести(Заголовок);

//Параметры области "НизКолонтитул"
// ...

//Выводим область "Строка"
ПроверкаПечатиНизКолонтит ул = Новый Массив;
ПроверкаПечатиНизКолонтит ул.Добавить(Строка);
ПроверкаПечатиНизКолонтит ул.Добавить(НизКолонтитул);

// Параметры оласти "строка"
// ...

Для Каждого СтрокаТоваров из Документ.Товары Цикл
Если НЕ ТабДок.ПроверитьВывод(Пров еркаПечатиНизКолонтитул) Тогда
ТабДок.Вывести(НизКолонтит ул);
ТабДок.Вывести(ВерхКолонти тул);
КонецЕсли;
ТабДок.Вывести(Строка);
КонецЦикла;

//Выводим область "Подвал"
ПроверкаПечатиНизКолонтит ул.Очистить();
ПроверкаПечатиНизКолонтит ул.Добавить(Подвал);
ПроверкаПечатиНизКолонтит ул.Добавить(НизКолонтитул);
ПустаяСтрока = Макет.ПолучитьОбласть("ПустаяСтрока");
ПроверкаНизКолонтитул = Новый Массив;
ПроверкаНизКолонтитул.Доб� �вить(НизКолонтитул);
ПроверкаНизКолонтитул.Доб� �вить(ПустаяСтрока);
Если НЕ ТабДок.ПроверитьВывод(Пров еркаПечатиНизКолонтитул) Тогда
Пока ТабДок.ПроверитьВывод(Пров еркаНизКолонтитул) Цикл
ТабДок.Вывести(ПустаяСтрок а);
КонецЦикла;
ТабДок.Вывести(НизКолонтит ул);
ТабДок.Вывести(ВерхКолонти тул);
КонецЕсли;
ТабДок.Вывести(Подвал);

//Выводим область "НизКолонтитул"
Пока ТабДок.ПроверитьВывод(Пров еркаНизКолонтитул) Цикл
ТабДок.Вывести(ПустаяСтрок а);
КонецЦикла;
ТабДок.Вывести(НизКолонтит ул);

//Устанвливаем параметры таблицы и выводим ее
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовк� � = Ложь;
Возврат ТабДок;