Настройка табличного документа для вывода на печать в 1С

1. ranis888 104 22.05.18 15:34 Сейчас в теме
основном все информационные материалы по программированию в 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. С выводом диалога перед печатью
ТабличныйДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
ТабличныйДок.Напечатать(ложь);

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

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

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

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

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


Разделение методов и свойств по контексту исполнения является важной особенностью платформы. Если вышеуказанные свойства доступны в любом контексте, то методы на тонком клиенте не доступны, за исключением метода «Напечатать()». То есть формирование табличного документа происходит на сервере, а отправляется он при помощи клиентской процедуры.
Vyacheslide; MaximKor; suarez55; SV6; +4
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. 1sbk.ru 07.12.18 16:23 Сейчас в теме
Если Табличный документ на насколько страниц, то как распечатать одну какую-то, например, 2 ?
Lemmonbri; +1
3. OK1951 01.02.19 21:10 Сейчас в теме
Присоединяюсь к (2) - ?
Lemmonbri; +1
4. xioxao 01.04.19 10:12 Сейчас в теме
Присоединяюсь к (3)
Lemmonbri; +1
5. mdbm 190 11.07.19 15:25 Сейчас в теме
Присоединяюсь к (4)
Lemmonbri; +1
6. Gaster 21.10.19 17:38 Сейчас в теме
Присоединяюсь к (5)
Lemmonbri; +1
7. daark 29.11.19 11:50 Сейчас в теме
Присоединяюсь к (6)
Lemmonbri; +1
8. user1314022 11.12.19 08:48 Сейчас в теме
Присоединяюсь к (7).
Дальнейшие присоединения невозможны
Lemmonbri; +1
13. Mechanik21 24 04.02.22 08:22 Сейчас в теме
Присоединяюсь к (8)
+
14. en_kzn 27.06.23 12:24 Сейчас в теме
(13) Присоединяюсь к (13)
+
9. gluglugluglu 11.02.20 14:28 Сейчас в теме
(3) Присоединяюсь к (3)
+
10. user1135816 4 28.02.20 10:02 Сейчас в теме
(9) Присоединяюсь к (9)
+
12. softinfo 24.11.21 00:49 Сейчас в теме
(2) Указать область печати
Например:
ТабличныйДокумент.ОбластьПечати = ТабличныйДокумент.Область(1,1,75,12);
Выведет на печать строки с 1 по 75 и колонки с 1 по 12
+
11. VladIsLooove23 29.07.20 15:31 Сейчас в теме
Коллеги доброго времени суток, есть функция которая получает сформированные Печатные формы(далее ПФ) у каждого табдока есть параметр "ШиринаТаблицы" для всех сформированных ПФ разный(зависит от макета) и объединяет их в большойТАбДОк.
При попытке вывести на печать наш большойТАбДОк (при условии что для него АвтоМасштаб = Истина) получается что та ПФ которая с меньшим параметром "ШиринаТаблицы" становится нечитаемым(скрин прилагается) . Хотелось узнать можно ли как то решить эту проблему не унифицируя все макеты ПФ?

ПЫСЫ: параметр ШиринаТаблицы недоступен для записи.
Прикрепленные файлы:
+
15. SvetaBr 14.11.23 11:00 Сейчас в теме
(11) На какой версии 1С какая конфигурация у Вас ?

Аналогичная проблема

конфигурация БП 3.0.143.32 , платформа 8.3.23.1865
+
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот