1CLenta.ru  

Нумерация страниц при печати Табличного документа

Программирование системы     04.07.2017 08:43     24356

При создании печатных форм может потребоваться вывод нумерации страниц. Пронумеровать страницы можно программно или воспользоваться стандартными механизмами.

Нумерация страниц в колонтитулах


В свойстве табличного документа "Колонтитулы" можно задать нумерацию страниц. Открывается свойство "Колонтитулы" через главное меню: Таблица->Настройки печати->Колонтитулы. При установке нумерации страниц в колонтитулах, она будет видна только при печати или предварительном просмотре. Данное свойство доступно в режиме 1С:Предприятие и 1С:Конфигуратор.

В режиме предприятия это свойство нужно будет устанавливать каждый раз при выводе печатной формы. Если свойство "Колонтитулы" не доступно, то нужно включить режим редактирования табличного документа в главном меню: Таблица->Вид->Редактирование.

Если установить свойство в конфигураторе, то оно будет действовать всегда, при каждом выводе печатной формы. Как правило для вывода печатной формы используется макет типа "ТабличныйДокумент" в нем и необходимо задать колонтитулы с нумерацией страниц.

Колонтитулы табличного документа

Нумерация страниц в колонтитулах

Программный код для нумерации страниц


Для программной нумерации страниц необходимо разделить табличный документ на страницы и вывести номер каждой страницы.

Процедура Печать()

ТабДок = Новый ТабличныйДокумент;

Макет = Получитьмакет("Макет");
ОбластьВывода = Макет.ПолучитьОбласть("ОбластьВывода");
ОбластьНомера = Макет.ПолучитьОбласть("ОбластьНомера");

Номер = 1;
Для Индекс = 1 По 50 Цикл

//Параметры заполняются до проверки вывода
ОбластьВывода.Параметры["Текст"] = "текст текст";
ОбластьНомера.Параметры["НомерСтраницы"] = Номер;

МассивОбластей = Новый Массив;
МассивОбластей.Добавить(ОбластьВывода);
МассивОбластей.Добавить(ОбластьНомера);

Если НЕ ТабДок.ПроверитьВывод(МассивОбластей) Тогда

ТабДок.Вывести(ОбластьНомера);
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
Номер = Номер + 1;

КонецЕсли;

ТабДок.Вывести(ОбластьВывода);

КонецЦикла;

ТабДок.Показать();

КонецПроцедуры

Комментарии (0)