Настройка печати в 1С

Здравствуйте дорогие читатели блога  1С Программист.

Спонсор Поста: Прошивка принтеров, заправка картриджей, ремонт принтеров в Москве. Прошивка принтера Samsung ML-2950ND/2955ND. Перепрошивка принтера Samsung ML 3300, прошивка принтеров Xerox.

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

При построении печатной формы используются следующие объекты:
1) Макет – В нем содержатся различные области для формирования печатной формы.
2) Табличный документ – Необходим для вывода печатной формы на экран.

Построение печатной формы происходит в следующем порядке:
1) Получить макет (созданный для данного объекта или общий)
2) Получаем области макета (в областях макета содержится параметр или текст)
3) Создаем табличный документ (тот объект, куда будет происходить вывод).
4) Подставляем значения в параметры и выводим области в табличный документ.
5) Отображаем табличный документ на экране.

Создание Макетов и областей макетов затрагивать сейчас не будем, а сразу перейдем к типу данных “ТабличныйДокумент”, который необходим для вывода печатной формы созданной на основании макета.
“Макет” доступен только на сервере и толстом клиенте, поэтому  для формирования печатной формы потребуется серверный вызов, Заполнение макета будем производить на сервере, а вывод на клиенте.

Пример создания простейшей печатной формы:

Макет = Документы.РеализацияТоваров.ПолучитьМакет("Макет");
ОбластьШапка=Макет.ПолучитьОбласть("Шапка");
ТабДок=Новый ТабличныйДокумент;
ОбластьШапка.Параметры.Дата=Дата;
ТабДок.Вывести(ОбластьШапка);
ТабДок.Показать( );

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

Сейчас рассмотрим более подробней как документ будет выгладить в распечатанном виде, задавая установки параметров печати через свойства и методы объекта «Табличный документ».

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

Узнайте из статьи: Как стать Программистом 1С

[yadirect]

Свойства Табличного Документа

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

ТабДок.ИмяПринтера=" Samsung ML 3300 Series 5";

Установим количество копий печатуемого документа программно.

ТабДок.КоличествоЭкземпляров=3;

Установив признак разбора по копиям для документа.

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

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

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

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

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

Зададим поля для страницы (по умолчанию поля 10мм).

ТабДок.ПолеСверху = 15; //Поле сверху 25мм,
ТабДок.ПолеСлева=25;//Поле слева 25мм, 

Программно управляем вывводом колонтиттула и его содержимым в 1С через свойства «ВерхнийКолонтитул» и «НижнийКолонтитул».
Пример:

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

Еще пару свойств страницы:

ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
ТабДок.ЭкземпляровНаСтранице= 4; //на листе будет размещено четыре страницы
ТабДок.АвтоМасштаб= истина;

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

Методы Табличного Документа

Отправим на печать табличный документ непосредственно на принтер.

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

Перед печатью будет выведен диалог печати.

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

Скрываем окно табличного документа.

ТабДок.Скрыть();

Или открываем окно для показа и редактирования табличного документа.

ТабДок.Показать("Заявки от контрагентов", "Заявки.mxl");

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

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

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

На платформе «1С:Предприятие 8.2» у свойств и методов идет четкое разделение по контексту исполнения. Если свойства доступны в любом контексте, то методы в основном недоступны на «Тонком» клиенте. Следовательно, оформляем документ на сервере, а отправку на печать производим в клиентской процедуре.

Чтобы понять, что написано в модуле формы необходимо разбираться в контексте модуля формы.

П.С. Если вам необходимо создать печатную форму или отредактировать существующую обращайтесь 1С Программист к вашим услугам.

Пожалуйста, оставляйте комментарий мне важно ваше мнение.

P.S. Интересное видео. Мутация русского мужика

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

  1. АлександрЪ

    Спасибо. интересная статья.

  2. Ирина

    Спасибо за полезную инфу )

  3. Миша

    Спасибо большое. Статья очень помогла.

  4. Илья

    Спасибо за инфу!

  5. Андрей

    спасибо, нашёл интересные вещи, которых нет в хелпе 1с!

  6. Денис

    Эх… как бы указать диапазон страниц которые надо выводить на печать?! Или хотя бы сделать так, что бы один раз заполнив диапозон страниц – эти настройки параметров печати применить при печати сл. таб. документа.

    Хочу найти элегантное решение для групповой печати инв. карточек ОС с обеих сторон на одном листе – фиговенько пока получается…