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

  0    0 
19.08.2019 | kievol | 1101

В основном все информационные материалы по программированию в 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. С выводом диалога перед печатью 

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


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

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


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

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

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

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


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


  • ОТКЛЮЧИТЬ CTRL+ALT+DEL ПРИ ВХОДЕ В WINDOWS
    ОТКЛЮЧИТЬ CTRL+ALT+DEL ПРИ ВХОДЕ В WINDOWS

    При включении компьютера, Вам нужно нажать "Ctrl"+"Alt"+"Del"и выбрать пользователя Настройка Windows Отключить нажатие CTRL+ALT+DEL сразу после загрузки Windows Нажимаем "Пуск". Заходим в "Панель управления" - "Администрирование" - "Локальная политика безопасности" - "Локальные политики" - "Параметры безопасности" Находим пункт "Интерактивный вход в систему: не требовать нажатия CTRL + ALT +…

  • 1c Установка подключения к MySQL через ODBC connector
    1c Установка подключения к MySQL через ODBC connector

    Руководство, облегчающее жизнь при очередной настройке подключения MySQL к 1С через ODBC connector (driver). Оставлю это хотя бы для себя на память :) Итак, для того, чтобы настроить связь между MySQL и 1С нужно: 1. Скачать дистрибутив установки ODBC connector. Я обычно пользуюсь ODBC 5.3 Unicode driver, он еще называется 5.3.0 alpha, скачать можно здесь https://downloads.mysql.com/archives/c-odbc/). Устанавливать нужно на сервер, на…

  • IIS и 1С ошибки: Обнаружено потенциально опасное значение Request.Path или ошибка 500
    IIS и 1С ошибки: Обнаружено потенциально опасное значение Request.Path или ошибка 500

    Ошибка примерно такая:[HttpException (0x80004005): Обнаружено потенциально опасное значение Request.Path, полученное от клиента (:).] System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +9914812 System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +53Алгоритм следующий:  Открываем IIS. Открываем наш сайт-публикацию в браузере. Идем в сопоставления обработчиков. Ищем ISAPI-dll и выделяем строку. Справа нажимаем "Добавить…

  • Apache падает
    Apache падает

    В логах /var/log/apache2/error.log Апач внезапно падает [timestamp] [mpm_event:notice] [pid 20056:tid 140176783820672] AH00493: SIGUSR1 received. Doing graceful restart [timestamp] [core:notice] [pid 20056] AH00060: seg fault or similar nasty error detected in the parent process Соответсвенно сайты уходят в 502 Bad Gateway. У меня эта проблема была из-за программы logrotate и в неточности в насройках. $ sudo nano /etc/logrotate.d/apache2 В этом файле нежно сменить apache2 reload на apache2 restart ! После данных…

  • полезные PHP скрипты
    полезные PHP скрипты

    Не так уж конечно и давно, но занимался, в серьёз, PHP программированием, но потом как то забросил. А вот сейчас порой нужно что ни будь дописать, но программирование, как и иностранный язык, без повторений можно всё забыть, а вспоминать — время. Поэтому решил написать не большие, но полезные примеры на php, дабы не забыть и воспользоваться, когда будет нужно.1. Отправка E-mail…

  • Как правильно выбрать обои.
    Как правильно выбрать обои.

    Выбор обоев не такой простой вопрос как кажется на первый взгляд. Ведь здесь есть нюансы как по оклейке, износостойкости и самого дизайна. Как вариант существуют специализированные интернет ресурсы. На них вы можете выбрать не только обои, но и клей для них. Например на…
    Блогер: amd2015

  • Профілактика простудних захворювань
    Профілактика простудних захворювань

    Міжсезоння - це час, коли простудні захворювання зустрічаються частіше, ніж зазвичай. Організм людини, особливо з ослабленим імунітетом, чуйно реагує на осінню сльоту і вологість. Простудні захворювання в цей період є наслідком імунологічної перебудови організму. В цей…
    Блогер: amd2015

  • Яблучний оцет користь і шкода
    Яблучний оцет користь і шкода

    Сирий, органічний, нефільтрований і непастеризований яблучний оцет – одне з найстаріших ліків, відомих на Землі. Яблучний оцет містить цілих 93 корисні для організму людини речовини – ферменти та корисні бактерії, мінерали – калій, натрій, магній, фосфор, хлор, сірку, мідь,…
    Блогер: amd2015

  • Очищення печінки
    Очищення печінки

    Один-два рази на рік прихильники методик очищення рекомендують проводити чистку печінки. Вони кажуть, що це захистить і вилікує орган від захворювань, допоможе поліпшити загальне самопочуття, позитивно позначиться на зовнішньому вигляді і зміцнить здоров'я в цілому.…
    Блогер: amd2015

  • Високий рівень холестерину
    Високий рівень холестерину

    Чим небезпечний високий рівень холестеринуВисокий рівень холестерину – це стан, що характеризується підвищеним рівнем атерогенних ліпопротеїнів у крові. Але що це означає? Оскільки холестерин і жир нерозчинні у воді, а кров складається здебільшого з води, ці життєво…
    Блогер: amd2015


Комментарии

17 + 75 =