Как задать область печати в макете 1с

Обновлено: 07.07.2024

Большинство обучающих материалов по программированию в системе 1С при описании формирования печатных форм на основе объекта «Табличный документ» ограничиваются выводом готовой формы на экран. Для пользователей же куда более важным является то, как документ будет выглядеть в распечатанном виде. Здесь, кроме хорошо сверстанного макета, играют роль и установки параметров печати.

Почти все параметры, доступные в диалогах настройки печати (настройки принтера, свойства страницы), можно указать непосредственно при формировании табличного документа.

Рассмотрим свойства и методы табличного документа, относящиеся к настройкам печати (в приведенных примерах «ТабДок» это объект типа «Табличный документ»).

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

ТабДок . ИмяПринтера = "HP LaserJet 3050 Series PCL 6" ;

При печати пакета документов можно сэкономить время, установив признак разбора по копиям:

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

Число копий можно указать так:

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

Разумеется, можно задать поля:

ТабДок . ПолеСлева = 20 ; //Поле слева 20мм, остальные поля 10мм (по умолчанию)

Еще несколько свойств страницы:

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

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

Также в табличном документе доступно управление выводом колонтитулов и их содержимым. Для этого служат свойства «ВерхнийКолонтитул» и «НижнийКолонтитул». Например:

Сформированный документ отправляется на печать с помощью метода «Напечатать()». Возможно два варианта вызова.

1) Непосредственно на принтер:

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

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

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

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

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

Надо иметь ввиду, что работа последних трех методов зависит от установленного принтера. Если методу не удается его найти, вызывается исключение.

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

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

Привет всем! В данной статье предлагаю рассмотреть методы вывода макета на печать любых документов (собственных или типовых) с помощью актуальной библиотеки стандартных подсистем (БСП). Данный небольшой обзор поможет снять вам вопросы типа "как прицепить макет печати к собственному документу или справочника?" или "как разместить кнопку печать на форме списка и форме документа или справочника". На момент написания статьи - середина февраля 2021 года - точка актуальности - это БСП версии 3.1.4.148.

Для кого-то этот материал не новшество, но отмечу, что данная статья будет полезна специалистам, желающим использовать последние возможности библиотеки стандартных подсистем в методах вывода на печать. Хорошо известно, что подсистема БСП постоянно меняется и усовершенствуется, и я могу сказать определенно, что старые методы и алгоритмы вывода на печать макетов печатных форм документов и справочников уже будут вряд ли применимы в современных конфигурациях на последних БСП.

Подготовка и настройка собственного документа конфигурации для использования в подсистеме печати в системе БСП.

Начнем с простого создания документа ТестоваяПечатьДокументов в конфигурации на БСП. В качестве конфигурации я беру чистую библиотеку стандартных подсистем версии 3.1.4.148. Разработка ведется на Платформе 1с 8.3.18.1208.

Основным и главным моментом после создания собственного документа будет необходимость прописать данный документ в общем модуле - процедуре УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт

выглядит это вот так:

ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт

Далее, что нам потребуется. Создаем 2 формы в документе ТестоваяПечатьДокументов - это "ФормаСписка" и "ФормаДокумента". В каждой из этих форм создаем и привязываем процедуру ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

выглядит она вот так:

Далее, для "формы списка" добавляем внутренние БСП подключаемые процедуры:

"ФормаСписка" в документе "ТестовыйДокумент"

А для "формы документа" добавляем вот такие внутренние БСП подключаемые процедуры:

"ФормаДокумента" в документе "ТестовыйДокумент"

Хочу отметить, что данные процедуры я копирую из типовых документов БСП - их будет достаточно, чтобы активировать кнопку системы печати на формах документа. Ничего лишнего добавлять не нужно.

Далее, заполним модуль менеджера нашего документа. Напишем в нем такой код:

Здесь функция - ПечатнаяФормаТестовогоДокумента(МассивОбъектов, ОбъектыПечати) - формирует заполненный макет печатной формы и возвращает пользователю.

Процедура - Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт - типовая процедура печати БСП.

Тут нет ничего сложного, но особое внимание хочу обратить на вот эту процедуру добавления команд

Открываем код БСП и смотрим какие возможности предоставляет нам функция УправлениеПечатью.СоздатьКоллекциюКомандПечати() - она используется для "наполнения" объекта КомандыПечати(). Возможности широчайшие:

Как мы видим, основные параметры - Идентификатор, Представление. Остальные являются необязательными.

Правильно разместив вышеуказанный код в конфигурации вы получите необходимый результат - вывод кнопки "Печать" для формы документа и формы списка для документа ТестоваяПечатьДокументов.
Перейдем к разделу заключений и выводов по данной статье.

Заключение и выводы

В данной статье мы рассмотрели основной алгоритм БСП для размещения команд печати на любых документах конфигурации, в основе которой лежит современная библиотека стандартных подсистем. Напомню, что разработка примера велась на "чистой" библиотеке стандартных подсистем версии 3.1.4.148 и Платформе 1с 8.3.18.1208.

Ну и конечно, знание данных методов позволит вам ускорить разработку и доработку любых типовых конфигураций 1с (БУХ, ЗУП, Розница, УНФ и т.п. ), основой которых является библиотека стандартных подсистем. И самое главное - это правильно и по стандарту профессиональных разработчиков.

Другие мои материалы по БСП

Так же прошу ознакомиться с другими моими статьями по функционалу библиотеки стандартных подсистем и типовым конфигурациям:

В 1С Предприятии для представления табличной информации существует специальный вид файлов "Табличный документ". Файлы могут быть созданы в 1С Конфигураторе или в 1С Предприятии. Для создания новых файлов необходимо перейти в главном меню Файл->Новый. В языке программирования 1С существует одноименный объект ТабличныйДокумент, который позволяет программно создавать, сохранять и выводить табличные документы.

Область печати

В табличном документе может быть определена область печати. В этом свойстве можно указать ту область, которая будет напечатана на принтере. Такое может потребоваться если нужно распечатать часть документа. Это можно сделать двумя способами. Задать можно только одну область.

1. Через пользовательские настройки

Область печати может быть задана непосредственно через главное меню Таблица->Настройка печати->Задать область печати. Так же через главное меню можно удалить область печати Таблица->Настройка печати->Удалить область печати. Добавляемая и удаляемая области должны быть выделены.

На печать будет выведена 3 строка с 1 по 7 колонку. Остальные области будут проигнорированы.

2. Средствами встроенного языка

Другой вариант определить область печати - программный. Используя объект встроенного языка ТабличныйДокумент, можно задать какую область печатать. Для этого есть специальное свойство ОбластьПечати. В этом свойстве определяется ОбластьЯчеекТабличногоДокумента, которая будет печататься.

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

Повторяющаяся область печати

Табличный документ широко применяется при создании печатных форм. Довольно часто, при создании печатных форм может потребоваться повторять какую либо информацию вверху на каждой последующей странице. Например, это может быть шапка таблицы. Задать можно только одну область.

1. Через пользовательские настройки

Повторяющуюся область можно задать через главное меню Таблица->Настройки печати->Повторять на каждом листе. Для удаления области, в главном меню нужно выбрать Таблица->Настройки печати->Удалить повторение. Добавляемая и удаляемая области должны быть выделены.

На всех последующих страницах, вверху, будет повторяться вывод 3 строки. Остальные области будут выводиться как обычно.

2. Средствами встроенного языка

Для решения задачи вывода повторяющейся области, в объекте ТабличныйДокумент есть специальные свойства: ПовторятьПриПечатиСтроки и ПовторятьПриПечатиКолонки. Как видно из названия, в первом свойстве ПовторятьПриПечатиСтроки определяется область строк (тип: ОбластьЯчеекТабличногоДокумента, задается только номерами строк), а во втором ПовторятьПриПечатиКолонки задается область колонок (тип: ОбластьЯчеекТабличногоДокумента, задается только номерами колонок).

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

Комментарии (1)

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

Настройка печатного документа

Перед печатью необходимо создать печатную форму и ввести необходимые реквизиты, которые могут быть обязательные, например, подписи ответственных лиц. Настройки для таких реквизитов можно установить по умолчанию для вывода в печатную форму. Для этого следует заполнить сведения об организациях, перейдя по ссылкам «Главное» - «Реквизиты организации».


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


Для автоматического заполнения данных ответственных лиц за подготовку отчетов, следует ввести все необходимые параметры в разделе «Ответственные лица за подготовку отчетов».


На рисунке №4 представлен пример автоматического заполнения документа.


Необходимо знать, при формировании печатной формы существуют специальные закладки для внесения данных. На рисунке №5 представлен пример: при открытии вкладки «Инвентаризационная комиссия» требуется внести информацию о членах комиссии.


В печатной форме, при не заполнении данных, поля остаются пустыми.

Печать табличного документа 1С. Параметры печати

Для избежания ситуации, при которой на печати таблица делит документ на несколько листов, следует воспользоваться кнопкой «Предварительный просмотр документа». При ее нажатии, появляется окно с итоговым расположением таблицы на бумаге. Пример на рисунке №6. Внизу окна указывается количество страниц документа.


Если документ выходит за рамки листа, разбивает колонки таблицы и занимает несколько страниц, то следует воспользоваться разделом «Параметры страницы». Перейдя в данный раздел, появляется возможность настроить необходимые параметры, для правильного расположения таблиц и остальных частей документа на бумаге.



  1. Масштаб. Есть два варианта: «100%» и «По ширине страницы». При необходимости, можно изменить масштаб увеличив или уменьшив процент, или выбрав второй вариант, при котором размер таблицы автоматически подберется под размер страницы.
  2. Ориентация: «Книжная» - при горизонтальном расположении документа на бумаге, или «Альбомная» - при вертикальном расположении.
  3. Экземпляров на страницу. Здесь стоит указать сколько листов должно поместиться на одной странице — 1, 2 или автоматический вариант. При выводе на печать нескольких небольших документов, удобнее всего выбрать последний вариант, при котором будет происходить автоматический подбор. В противном случае, все документы напечатаются на отдельных листах.
  4. Поля. Данная настройка позволяет изменить отступы полей и сохранить масштаб документа. Но следует помнить, что отступ слева требуется для подшивки документа и должен составлять не менее 300 мм. В противном случае — часть документа не будет читаться при архивации.
  5. Чередование страниц и двусторонняя печать — эти функции позволяют напечатать документ на лицевой и обратной стороне листа.
  6. Колонтитулы, при необходимости следует уменьшить их размер для увеличения размера страницы.


В разделы «Предварительный просмотр» и «Параметры страницы» можно перейти через главное меню «Файл», находясь в печатной форме документа. Пример рисунок №10.




На рисунке №12 представлен вариант, при котором на печать выводятся страницы с 3 по 5, и дополнительно 10.

Ошибки печати

При отправке документа на печать, программа может выдавать ошибку или не печатать вовсе. Какие возможны причины неисправности?

Изменение принтера пользователя после переустановки. Система автоматически выбирает для печати принтер, на который ранее уже производилась печать. Для исправления этой ошибки можно попробовать выбрать другой принтер перед печатью документа, но такой вариант не всегда эффективен. В случае, когда первый вариант не подходит, следует сбросить настройки, выбрав в «Меню» следующий путь: «Администрирование», «Настройки пользователей и прав», «Настройки пользователей», «Прочие настройки», «Настройки печати табличных документов», «Очистить». (пример рисунки №13,№14 и №15)




Выполнив все вышеперечисленные действия, необходимо выбрать требуемый принтер в «Параметры страницы».

Еще один вариант ошибки — сохранение документа в формате PDF, а не вывод на печать, при работе в браузере. Такая ошибка может возникнуть при отсутствии подключения принтера. Для исправления проблемы, требуется изменить настройки в браузере перейдя в раздел «Печать» или «Предварительный просмотр», далее в «Изменить» и указать нужный принтер. Пример на рисунке №16.


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

Читайте также: