Войти
1с - Настройка вывода на печать табличного документа
Добавил статью 19.08.2019 пользователь kievol / Смотрели 636

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

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

Ниже рассмотрим более подробно свойства и методы табличного документа, которые имеют отношение к настройкам печати (В приведенном примере "ТабличныйДок" это объект типа "Табличный документ") 

Для того что бы задать принтер для печати, отличный от того, что по умолчанию установлен в системе, используется такое свойство как "ИмяПринтера", причем имя должно полностью совпадать с принтером который установлен в системе: 

ТабличныйДок.ИмяПринтера="Kyocera FS-1320D KX";


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

ТабличныйДок.РазборПоКопиям=истина;


Число копий указывается так: 

ТабличныйДок.КоличествоЭкземпляров=X; // где X — это число копий


Также возможно задать поля: 

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


Вот еще несколько свойств страницы, которые нам доступны: 

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


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

ТабличныйДок.МасштабПечати=80; // задается масштаб 80% от натуральной величины

Задать стандартные форматы страницы "А3", "А4", "А5" можно при помощи свойства «РазмерСтраницы». Есть и другие доступные стандартные форматы, полный их список можно найти в справке 1С. 

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

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

ТабличныйДок.РазмерСтраницы="Custom";//нестандартный размер бумаги
ТабличныйДок.ВысотаСтраницы=250;
ТабличныйДок.ШиринаСтраницы=250;


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

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

Отправить на печать уже сформированный документ можно использовав метод «Напечатать()». При этом есть два варианта вызова этого метода. 

1. Непосредственно на принтер 

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


2. С выводом диалога перед печатью 

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


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

ТабличныйДок.КоличествоСтраниц();


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

Если вам необходимо принудительно вставить разрывы страниц, то вы можете использовать методы «ВывестиВертикальныйРазделительСтраниц()» и «ВывестиГоризонтальныйРазделительСтраниц()»

Это позволяет управлять постраничным выводом и контролировать заполнение страницы: 

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


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





Комментарии

Имя:
54 + 24 =

Новини