табличный документ параметры печати
Программирование 1С 8.х для начинающих
Конфигурация
ИмяПараметровПечати, КлючПараметровПечати
Если Вы сталкивались с данным свойством Табличного документа, то думаю заметили, что не совсем очевидно как оно устанавливается и где хранится. В этой статье я расскажу об этом.
В этой статье я буду использовать свойство ИмяПараметровПечати как более привычное, но все что здесь написано справедливо и для КлючПараметровПечати.
Как происходит сохранение параметров печати?
Рассмотрим простой отрывок кода (листинг):
В нём мы создали табличный документ и установили свойство «ПолеСверху» равное 5. Далее мы указали для свойства «ИмяПараметровПечати» значение «ПАРАМЕТРЫ_ПЕЧАТИ_Реализация_Печать», эта текстовая строка является ключом в хранилище настроек(об этом позже). Выполняя этот код программа посмотрит существует ли для этого табличного документа и этого пользователя настройка печати, если нет то запишет, а если есть, то параметры будут взяты уже из сохраненной.
Как изменить параметры печати?
Параметры печати можно изменить только в пользовательском режиме открыв окно «Параметры страницы»
Здесь Вы видите параметры которые сохраняются для печати здесь же их можно изменить, после изменения нужно нажать «ОК».
Программно изменить уже существующую настройку нельзя, т.к. она хранится в виде объекта с которым 1С не умеет работать «НеизвестныйОбъект». Чтобы установить свои параметры нужно удалить существующую настройку и тогда при печати запишутся те параметры которые Вы указали выше установки свойства «ИмяПараметровПечати». В моем примере сохранится только отступ сверху 5 мм. При этом остальные параметры могут оказаться не пустыми, а заполненными по умолчанию.
Как удалить параметры печати?
Настройка сохраняется в системном Хранилище настроек и чтобы её удалить нужно, вызвать метод «Удалить» указав «Ключ объекта» и «Имя пользователя». Если пользователя не указать, то эта настройка удалиться для всех пользователей. При указании Ключа объекта есть особенность это не просто строка которую Вы указали при создании табличного документа, а дополненная в начале следующим:
В моем случае чтобы удалить настройку нужно написать следующее:
1С 8.x : Табличный документ: Колонтитулы и параметры страницы
Большинство обучающих материалов по программированию в системе 1С при описании формирования печатных форм на основе объекта «Табличный документ» ограничиваются выводом готовой формы на экран. Для пользователей же куда более важным является то, как документ будет выглядеть в распечатанном виде. Здесь, кроме хорошо сверстанного макета, играют роль и установки параметров печати.Почти все параметры, доступные в диалогах настройки печати (настройки принтера, свойства страницы), можно указать непосредственно при формировании табличного документа.Рассмотрим свойства и методы табличного документа, относящиеся к настройкам печати (в приведенных примерах «ТабДок» это объект типа «Табличный документ»).
Свойство «ИмяПринтера» позволяет задать для печати принтер, отличный от установленного по умолчанию. Имя должно совпадать с именем принтера, заданным в системе:
ТабДок.ИмяПринтера=»HP LaserJet 3050 Series PCL 6″;
При печати пакета документов можно сэкономить время, установив признак разбора по копиям:
Число копий можно указать так:
Разумеется, можно задать поля:
ТабДок.ПолеСлева=20;//Поле слева 20мм, остальные поля 10мм (по умолчанию)
Еще несколько свойств страницы:
ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт; ТабДок.ЭкземпляровНаСтранице=2; //на листе будет размещено 2 страницы ТабДок.Автомасштаб=истина; //аналогично настройкам масштаба «по ширине страницы»
При необходимости можно указать конкретное значение масштабирования в процентах (свойство «МасштабПечати»).
Свойство «РазмерСтраницы» позволяет задать стандартные форматы страницы – “A3”, “A4”, “A5” (полный список вариантов доступен в справке 1С).
ТабДок.РазмерСтраницы=»A3″;// буква А должна быть английской
Для нестандартного размера бумаги (Custom) можно указать значения высоты и ширины страницы (в мм):
ТабДок.РазмерСтраницы=»Custom»;//нестандартный размер ТабДок.ВысотаСтраницы=350; ТабДок.ШиринаСтраницы=350;
Также в табличном документе доступно управление выводом колонтитулов и их содержимым. Для этого служат свойства «ВерхнийКолонтитул» и «НижнийКолонтитул». Например:
ТабДок.ВерхнийКолонтитул.Выводить=истина; //будет напечатан верхний колонтитул ТабДок.РазмерКолонтитулаСверху=7; //размер колонтитула 7мм (по умолчанию 10мм) ТабДок.ВерхнийКолонтитул.ВертикальноеПоложение=ВертикальноеПоложение.Верх; ТабДок.ВерхнийКолонтитул.НачальнаяСтраница=2;//колонтитул выводится со второй страницы ШрифтКолонтитула=Новый Шрифт(«Courier New», 8,,Истина); ТабДок.ВерхнийКолонтитул.Шрифт=ШрифтКолонтитула; //наклонный шрифт ТабДок.ВерхнийКолонтитул.ТекстВЦентре=»Верхний колонтитул»; ТабДок.ВерхнийКолонтитул.ТекстСправа=»Стр.[&НомерСтраницы] из [&СтраницВсего]»; //нумерация страниц ТабДок.ВерхнийКолонтитул.ТекстСлева=»[&Дата]»;//текущая дата
Сформированный документ отправляется на печать с помощью метода «Напечатать()». Возможно два варианта вызова.
1) Непосредственно на принтер:ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); ТабДок.Напечатать(истина);
2) Перед печатью будет выведен диалог печати:ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать); ТабДок.Напечатать(ложь);
Кроме того можно управлять и разбиением документа на страницы. Оценить количество страниц в документе по настройкам текущего принтера можно так:
С помощью методов «ПроверитьВывод()» и «ПроверитьПрисоединение()» можно определить, умещается ли табличный документ или массив областей табличного документа на странице в высоту и в ширину при текущих настройках принтера.Надо иметь ввиду, что работа последних трех методов зависит от установленного принтера. Если методу не удается его найти, вызывается исключение.
Принудительно вставить разрывы страниц позволяют методы «ВывестиВертикальныйРазделительСтраниц()» и «ВывестиГоризонтальныйРазделительСтраниц()».Таким образом, можно управлять постраничным выводом на печать и контролировать заполнение страницы:
Если Не ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц();КонецЕсли;
Настройка печати в 1С
Здравствуйте дорогие читатели блога 1С Программист.
Спонсор Поста: Прошивка принтеров, заправка картриджей, ремонт принтеров в Москве. Прошивка принтера Samsung ML-2950ND/2955ND. Перепрошивка принтера Samsung ML 3300, прошивка принтеров Xerox.
В работе 1С Программист часто имеет дело с созданием и редактированием печатных формам документов, и сегодня поговорим о создании печатных формы для документов и настройкой печати.
При построении печатной формы используются следующие объекты:
1) Макет — В нем содержатся различные области для формирования печатной формы.
2) Табличный документ — Необходим для вывода печатной формы на экран.
Построение печатной формы происходит в следующем порядке:
1) Получить макет (созданный для данного объекта или общий)
2) Получаем области макета (в областях макета содержится параметр или текст)
3) Создаем табличный документ (тот объект, куда будет происходить вывод).
4) Подставляем значения в параметры и выводим области в табличный документ.
5) Отображаем табличный документ на экране.
Создание Макетов и областей макетов затрагивать сейчас не будем, а сразу перейдем к типу данных “ТабличныйДокумент”, который необходим для вывода печатной формы созданной на основании макета.
“Макет” доступен только на сервере и толстом клиенте, поэтому для формирования печатной формы потребуется серверный вызов, Заполнение макета будем производить на сервере, а вывод на клиенте.
Пример создания простейшей печатной формы:
Существует множество методов и свойств класса ТабличныйДокумент, с помощью которых можно сразу же выводить табличный документ на печать, устанавливать настройки принтера, свойства страницы, многое другое.
Сейчас рассмотрим более подробней как документ будет выгладить в распечатанном виде, задавая установки параметров печати через свойства и методы объекта «Табличный документ».
Свойства Табличного Документа
Зададим для печати принтер, отличный от установленного по умолчанию.
Используем свойство Табличного документа «ИмяПринтера» которое позволяет задать имя принтера известного в системе, на который бедет выводится печать.
Установим количество копий печатуемого документа программно.
Установив признак разбора по копиям для документа.
Установим через свойство «РазмерСтраницы» которое позволяет задать стандартные форматы страницы – “A3”, “A4”, “A5” (полный список в справке 1С).
Если размер бумаги нестандартен (Custom — произвольный размер бумаги ) то укажем значения высоты и ширины страницы (в мм):
Зададим поля для страницы (по умолчанию поля 10мм).
Программно управляем вывводом колонтиттула и его содержимым в 1С через свойства «ВерхнийКолонтитул» и «НижнийКолонтитул».
Пример:
Еще пару свойств страницы:
Если свойство АвтоМасштаб имеет значение Ложь или еще не заданно то можно указать значение масштабирования в процентах (через свойство «МасштабПечати»).
Методы Табличного Документа
Отправим на печать табличный документ непосредственно на принтер.
Перед печатью будет выведен диалог печати.
Скрываем окно табличного документа.
Или открываем окно для показа и редактирования табличного документа.
Можно принудительно вставить разрывы страниц используя методы «ВывестиГоризонтальныйРазделительСтраниц()» и «ВывестиВертикальныйРазделительСтраниц()»
Более полный список по свойствам и методам Табличного Документа смотрите в справке 1С.
На платформе «1С:Предприятие 8.2» у свойств и методов идет четкое разделение по контексту исполнения. Если свойства доступны в любом контексте, то методы в основном недоступны на «Тонком» клиенте. Следовательно, оформляем документ на сервере, а отправку на печать производим в клиентской процедуре.
Чтобы понять, что написано в модуле формы необходимо разбираться в контексте модуля формы.
П.С. Если вам необходимо создать печатную форму или отредактировать существующую обращайтесь 1С Программист к вашим услугам.
Пожалуйста, оставляйте комментарий мне важно ваше мнение.
Печать документов в 1С 8.3
Функция печать документов в программах «1С Предприятие» имеет свои особенности настроек, при выводе на печать готового файла.
Настройка печатного документа
В разделе «Подписи» указываются данные руководителя, кассира и главного бухгалтера. При изменении ответственных лиц в организации всю информацию действий можно проследить перейдя в раздел «История». Например, при необходимости вывода одного документа на печать под разными датами и за подписями разных ответственных лиц.
Для автоматического заполнения данных ответственных лиц за подготовку отчетов, следует ввести все необходимые параметры в разделе «Ответственные лица за подготовку отчетов».
На рисунке №4 представлен пример автоматического заполнения документа.
Необходимо знать, при формировании печатной формы существуют специальные закладки для внесения данных. На рисунке №5 представлен пример: при открытии вкладки «Инвентаризационная комиссия» требуется внести информацию о членах комиссии.
В печатной форме, при не заполнении данных, поля остаются пустыми.
Печать табличного документа 1С. Параметры печати
Для избежания ситуации, при которой на печати таблица делит документ на несколько листов, следует воспользоваться кнопкой «Предварительный просмотр документа». При ее нажатии, появляется окно с итоговым расположением таблицы на бумаге. Пример на рисунке №6. Внизу окна указывается количество страниц документа.
Если документ выходит за рамки листа, разбивает колонки таблицы и занимает несколько страниц, то следует воспользоваться разделом «Параметры страницы». Перейдя в данный раздел, появляется возможность настроить необходимые параметры, для правильного расположения таблиц и остальных частей документа на бумаге.
В разделы «Предварительный просмотр» и «Параметры страницы» можно перейти через главное меню «Файл», находясь в печатной форме документа. Пример рисунок №10.
На рисунке №12 представлен вариант, при котором на печать выводятся страницы с 3 по 5, и дополнительно 10.
Ошибки печати
При отправке документа на печать, программа может выдавать ошибку или не печатать вовсе. Какие возможны причины неисправности?
Изменение принтера пользователя после переустановки. Система автоматически выбирает для печати принтер, на который ранее уже производилась печать. Для исправления этой ошибки можно попробовать выбрать другой принтер перед печатью документа, но такой вариант не всегда эффективен. В случае, когда первый вариант не подходит, следует сбросить настройки, выбрав в «Меню» следующий путь: «Администрирование», «Настройки пользователей и прав», «Настройки пользователей», «Прочие настройки», «Настройки печати табличных документов», «Очистить». (пример рисунки №13,№14 и №15)
Выполнив все вышеперечисленные действия, необходимо выбрать требуемый принтер в «Параметры страницы».
Еще один вариант ошибки — сохранение документа в формате PDF, а не вывод на печать, при работе в браузере. Такая ошибка может возникнуть при отсутствии подключения принтера. Для исправления проблемы, требуется изменить настройки в браузере перейдя в раздел «Печать» или «Предварительный просмотр», далее в «Изменить» и указать нужный принтер. Пример на рисунке №16.
Иногда ошибки в работе приложения «1С Предприятие» с принтерами могут возникать из-за сбоя в коде самой программы, в данном случае исправлением занимаются сами разработчики. Чаще всего ошибки при печати в приложении возникают при неправильном заполнении настроек.
Программирование в 1С для всех
В массе своей, в прикладных задачах нужно вывести на печать какие-либо данные оформленные нужным образом (например, счет, торговую накладную, акт сверки и т.п.). Для вывода на печать в 1С 8.3. можно использовать табличные документы. В предыдущей статье я показал, как создать макет табличного документа и как правильно его оформить. Нам осталось научиться заполнять его данными и выводить на просмотр для последующей печати. Материал по выводу табличного документа на печать, я решил разбить на две части. В первой части мы разберем простой пример (я бы назвал его учебным), а во втором случае реализуем пример приближенный к реальному. Эта статья — первая часть, в ней мы реализуем простой пример: будем выводить табличный документ на печать, используя команду управляемой формы. Этот вариант имеет следующий недостаток: нельзя вывести печатную форму из списка документов, можно это сделать, только открыв форму документа. Для того, чтобы можно было вывести печатную форму из списка документов, необходимо создать команду документа. Этот вариант мы рассмотрим в следующей статье.
И так, сам макет документа мы уже создали, как это сделано, вы можете узнать в соответствующей статье.
Сейчас мы получим ранее созданный макет, заполним табличный документ 1С по этому макету, и нам останется вывести табличный документе 1С на просмотр для последующей печати.
Мы сделаем упрощенный (учебный) вариант: формирование всего нашего табличного документа будет осуществляться на модуле управляемой формы. Для этого мы на форме документа создадим команду «ПечатьДокумента», которую разместим в командной панели формы.
Для команды ПечатьДокумента создадим два обработчика в клиентском и серверном контексте.
Серверный обработчик переименуем в функцию, в нем мы создадим программно табличный документ 1С, который она и будет возвращать.
Теперь нужно получить макет, созданный в предыдущей статье, для этого мы будем использовать метод менеджера документа ПолучитьМакет.
Имейте в виду, что метод ПолучитьМакет напрямую доступен только или в модуле документа, или в модуле менеджера документа. Еще этот метод можно применить, используя менеджер конкретного объекта, как я сделал выше. Непосредственно на форме его использовать нельзя!
Алгоритм заполнения табличного документа будет следующим: мы будем получать нужную область макета, если необходимо заполнять эту область какими-нибудь данными, а потом выводить полученную область в табличный документ.
Напомню, что макет у нас имеет четыре области: Шапка, ШапкаТаблицы, СтрокаТаблицы, Подвал. Области Шапка, ШапкаТаблицы и Подвал будут выведены в табличный документ всего один раз, а область СтрокаТаблицы будет выведена столько раз, сколько строк в табличной части обрабатываемого документа.
Весь код ниже я выполняю между кодом получения макета и возвратом табличного документа.
Получим самую первую область макета, при помощи метода ПолучитьОбласть, где в качестве параметра следует указать название получаемой области.
В этой области мы используем шаблон, в котором имеются два параметра: НомерДок и ДатаДок передадим номер документа и дату документа в соответствующие параметры области, используя свойство Параметры нужной нам области. Данное свойство содержит коллекцию параметров табличного документа, и мы можем обращаться к нужному параметру через оператор «.».
Мы закончили с областью Шапка, и нам нужно вывести её в табличный документ, делается это при помощи метода Вывести табличного документа, где в качестве параметра указывается выводимая область.
Точно также получим область, которая соответствует шапке таблицы, заполнять его не нужно, а мы просто выведем его сразу же в табличный документ.
Следующим шагом выведем область СтрокаТаблицы, причем эта область должна быть выведена столько раз, сколько строк в табличной части документа. Поэтому мы сначала получим эту область, а потом циклом будем обходить табличную часть, заполнять параметры области и выводить область в табличный документ.
В коде выше, мы обошли табличную часть документа, обратившись к ней через основной реквизит Объект управляемой формы (основной формы документа).
Обратите внимание, я использовал метод Заполнить, потому что названия параметров макета совпадают с названиями реквизитов табличной части документа.
Нам осталось получить область Подвал и вывести её в табличный документ.
На этом мы закончим работать с функцией на сервере, весь ее код будет выглядеть следующим образом.
Нам осталось доделать клиентскую процедуру ПечатьДокумента: мы будем выводить на просмотр полученный табличный документ при помощи метода табличного документа Показать().
В качестве первого параметра метода Показать, я указал название, которое выйдет на форме табличного документа.
Проверим, как работает наш код.
Напомню, что я рассмотрел самый простой (учебный) пример вывода печатной формы, следующие примеры будут более приближенные к реальным.
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu