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

  0    0 
19.08.2019 | kievol | 1066

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

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


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

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


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

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

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

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


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


  • Массовая замена значений в БД mysql средствами PHPMyAdmin
    Массовая замена значений в БД mysql средствами PHPMyAdmin

    Иногда требуется массово заменить значения в ячейке таблицы базы данных mysql. Допустим стоит задача: одним запросом во всей таблице базы данных поменять запись «значение 1» на  «значение2» . Как это сделать разберём ниже. Заходим в интерфейс phpMyAdmin.  Допустим, у нас есть таблица «yuts_catalog»,в ней поле «leader», и значения в ячейке этого поля «0″, которое…

  • Пять способов вызвать JS функцию
    Пять способов вызвать JS функцию

    JavaScript — язык мультипарадигменный, и в нем имеются механизмы функционального программирования. Пора изучить эти возможности. В этой статье я расскажу вам о пяти способах вызова функций в JavaScript.На первых этапах изучения JavaScript новички обычно думают, что функции в нем работают примерно так же, как, скажем, в C#. Но механизмы вызова функций в JavaScript имеют ряд важных отличий, и незнание…

  • SSL сертификат в Open Server
    SSL сертификат в Open Server

    В разработке, я постоянно использую локальный Open Server (OSpanel) и нахожу его очень удобным из-за его гибких настроек и обилия различных модулей. Однако, в каждой новой версии остается одна проблема — отсутствие настроек SSL сертификатов. Поэтому далее я покажу как решить эту проблему… SSL в Open Server — в чем проблема? В этом и заключается все, что как таковой проблемы нет, но есть…

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

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

  • 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 и выделяем строку. Справа нажимаем "Добавить…

  • Почему я выбрал МЛМ бизнес
    Почему я выбрал МЛМ бизнес

      Добрый день мои дорогие читатели. В этой статье я расскажу о том, почему я выбрал МЛМ бизнес. Немного о себе. Я женат, воспитываю дочку. Последнее время ездил за границу на заработки. В данный момент не могу, так как, болеет моя жена (тромбофлебит, мерцательная аритмия,…
    Блогер: amd2015

  • Причини безсоння
    Причини безсоння

    отреба уві сні надзвичайно важлива для нашого психічного та фізичного здоров’я. але чи то сильний стрес чи напруженість у повсякденному житті сильно впливають на якість нашого сну. Дуже багато людей страждають саме від порушень сну. Безсоння – найпоширеніший розлад сну.…
    Блогер: amd2015

  • Гастрит. Причини, симптоми та лікування.
    Гастрит. Причини, симптоми та лікування.

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

  • Як позбутися ліні. Пошук мотивації.
    Як позбутися ліні. Пошук мотивації.

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

  • Ідеальна схема для інтервального голодування
    Ідеальна схема для інтервального голодування

    Як часто проводити інтервальне голодування? Є кілька способів інтервального голодування. Розглянемо всі схеми інтервального голодування, щоб зрозуміти, яка схема інтервального голодування вам підійде. Схема для інтервального голодування.Схема 5:2Схема 5:2 (я така схема…
    Блогер: amd2015


Комментарии

23 + 42 =