1с табличный документ колонтитул

Данный раздел описывает особенности работы с колонтитулами табличного документа из встроенного языка 1С:Предприятие.

Работа с колонтитулами

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

Пример правильной установки колонтитулов:

Пример неправильной установки колонтитулов:

Альтернативным способом является настройка колонтитулов в макете отчета. Как визуально, при настройке макета, так и программно, перед использованием макета. Пример:

Описание ошибки:
После добавления исполняемого кода для вывода колонтитулов в табличный документ печатной формы, верхний и нижний колонтитулы не выводятся. Информации по работе с колонтитулами табличного документа при разработке в 1С: Предприятие 8 предостаточно. Тот же синтакс-помощник дает исчерпывающую информацию, но не уточняет одной особенности работы с верхним и нижним колонтитулом.

Работа с колонтитулами сводится к объявлению следующего исполняемого кода. В последний раз использовал код при работе с 1С: Предприятие 8.2 давно. И вот наступил момент работы в 1С:Предприятие 8.3. Исходно код вывода колонтитулов табличного документа был размещен сразу же после объявления переменной ТабличныйДокумент. Но в силу странных обстоятельств колонтитулы, как верхний, так нижний, не былы видны при просмотре страницы (напомню, что в самой печатной форме колонтиту не отображается, его можно увидеть при использовании «Предварительного просмотра» (меню «Файл» — «Предварительный просмотр»)).

Беглные изыскания в интренете, в частности на форуме infostart.ru в соответствующей теме не дали решения проблемы, хотя полезная инофрмация для тех, кто еще не работал с колонтитулами табличных документов, отчетов в 1С в ссылке имеется.

Внезапное озарение подсказало перенести код настройки параметров колонтитулов уже после вывода всех областей в табличный документ.

И это дало положительный результат, колонтитулы стали выводиться. Проверка в «Предварительном просмотре» это подтвредила:

Большинство обучающих материалов по программированию в системе 1С при описании формирования печатных форм на основе объекта «Табличный документ» ограничиваются выводом готовой формы на экран. Для пользователей же куда более важным является то, как документ будет выглядеть в распечатанном виде. Здесь, кроме хорошо сверстанного макета, играют роль и установки параметров печати.Почти все параметры, доступные в диалогах настройки печати (настройки принтера, свойства страницы), можно указать непосредственно при формировании табличного документа.Рассмотрим свойства и методы табличного документа, относящиеся к настройкам печати (в приведенных примерах «ТабДок» это объект типа «Табличный документ»).

Свойство «ИмяПринтера» позволяет задать для печати принтер, отличный от установленного по умолчанию. Имя должно совпадать с именем принтера, заданным в системе:

ТабДок.ИмяПринтера=»HP LaserJet 3050 Series PCL 6″;

При печати пакета документов можно сэкономить время, установив признак разбора по копиям:

Число копий можно указать так:

Разумеется, можно задать поля:

ТабДок.ПолеСлева=20;//Поле слева 20мм, остальные поля 10мм (по умолчанию)

Еще несколько свойств страницы:

ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт; ТабДок.ЭкземпляровНаСтранице=2; //на листе будет размещено 2 страницы ТабДок.Автомасштаб=истина; //аналогично настройкам масштаба «по ширине страницы»

При необходимости можно указать конкретное значение масштабирования в процентах (свойство «МасштабПечати»).

Свойство «РазмерСтраницы» позволяет задать стандартные форматы страницы – “A3”, “A4”, “A5” (полный список вариантов доступен в справке 1С).

ТабДок.РазмерСтраницы=»A3″;// буква А должна быть английской

Для нестандартного размера бумаги (Custom) можно указать значения высоты и ширины страницы (в мм):

ТабДок.РазмерСтраницы=»Custom»;//нестандартный размер ТабДок.ВысотаСтраницы=350; ТабДок.ШиринаСтраницы=350;

Также в табличном документе доступно управление выводом колонтитулов и их содержимым. Для этого служат свойства «ВерхнийКолонтитул» и «НижнийКолонтитул». Например:

ТабДок.ВерхнийКолонтитул.Выводить=истина; //будет напечатан верхний колонтитул ТабДок.РазмерКолонтитулаСверху=7; //размер колонтитула 7мм (по умолчанию 10мм) ТабДок.ВерхнийКолонтитул.ВертикальноеПоложение=ВертикальноеПоложение.Верх; ТабДок.ВерхнийКолонтитул.НачальнаяСтраница=2;//колонтитул выводится со второй страницы ШрифтКолонтитула=Новый Шрифт(«Courier New», 8,,Истина); ТабДок.ВерхнийКолонтитул.Шрифт=ШрифтКолонтитула; //наклонный шрифт ТабДок.ВерхнийКолонтитул.ТекстВЦентре=»Верхний колонтитул»; ТабДок.ВерхнийКолонтитул.ТекстСправа=»Стр.[&НомерСтраницы] из [&СтраницВсего]»; //нумерация страниц ТабДок.ВерхнийКолонтитул.ТекстСлева=»[&Дата]»;//текущая дата

Сформированный документ отправляется на печать с помощью метода «Напечатать()». Возможно два варианта вызова.

1) Непосредственно на принтер:ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); ТабДок.Напечатать(истина);

2) Перед печатью будет выведен диалог печати:ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать); ТабДок.Напечатать(ложь);

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

С помощью методов «ПроверитьВывод()» и «ПроверитьПрисоединение()» можно определить, умещается ли табличный документ или массив областей табличного документа на странице в высоту и в ширину при текущих настройках принтера.Надо иметь ввиду, что работа последних трех методов зависит от установленного принтера. Если методу не удается его найти, вызывается исключение.

Принудительно вставить разрывы страниц позволяют методы «ВывестиВертикальныйРазделительСтраниц()» и «ВывестиГоризонтальныйРазделительСтраниц()».Таким образом, можно управлять постраничным выводом на печать и контролировать заполнение страницы:

Если Не ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц();КонецЕсли;

Понравилась статья? Поделиться с друзьями:
Vkontakte.INFO
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: