Внешние печатные формы для обычного приложения (для конфигурация Бухгалтерия предприятия 2.0, Зарплата и управление персоналом 2.5, Управление торговлей 10.3 и т.д.) создаются довольно просто по сравнению с внешними печатными формами для управляемого приложения.
Для чего создавать внешние печатные формы
Преимущество внешней печатной формы по сравнению с обычной в том, что она позволяет избежать изменения конфигурации информационной базы. А это значит, что процесс последующего обновления конфигурации не будет усложнен. Кроме того, внешние печатные формы наряду с внешними обработками являются единственным вариантом расширения функционала базовых версий конфигураций 1С, которые нельзя изменять вообще.
Ну и последнее: внешние печатные формы легче тиражировать, т.к. они представляют собой отдельный файл, который можно быстро подключить к информационной базе.
Как создать внешнюю печатную форму
Рассмотрим процесс создания внешней печатной формы 1С по шагам:
- Создаем внешнюю обработку. Для этого в конфигураторе выбираем пункт меню Файл — Новый… И в открывшемся диалоговом окне — Внешняя обработка.
- Создаем реквизит внешней обработки с именем СсылкаНаОбъект. Тип реквизита — ссылка на справочник или документ, для которого создается внешняя печатная форма. Одна и та же форма может применяться для нескольких типов объектов, в этом случае тип данных реквизита СсылкаНаОбъект должен быть составным.
- В модуле объекта создаем экспортную функцию с именем Печать, которая должна возвращать готовый табличный документ печатной формы.
Функция Печать () Экспорт
ТабДок=новый ТабличныйДокумент;
//здесь должен быть модуль, формирующий печатную форму
Возврат ТабДок;
КонецФункции
Часто бывает, что нужно слегка подкорректировать макет уже существующей печатной формы и сделать ее внешней. Например, добавить на макет печать организации и подпись руководителя.
Создание внешней печатной формы на основе стандартной с незначительными изменениями
Рассмотрим эту процедуру на примере создания внешней печатной формы универсального передаточного документа для документа Реализация товаров и услуг 1С:Бухгалтерии. От стандартной печатной формы она будет отличаться наличием печати организации.
- Создаем внешнюю обработку с реквизитом СсылкаНаОбъект, тип данных — ДокументСсылка.РеализацияТоваровУслуг.
- Находим макет стандартной печатной формы УПД (он находится в общих макетах) и копируем (перетаскиваем) его в окно внешней обработки. Макеты других печатных форм могут находиться в самих документах или справочниках.
- Вносим необходимые изменения в скопированный макет печатной формы.
- Находим функцию, отвечающую за формирование печатной формы. Эта функция должна возвращать сформированный табличный документ. Копируем ее содержание в экспортную функцию Печать() в модуле объекта внешней обработки.
В нашем случае это функция ПечатьУниверсальногоПередаточногоДокумента() Экспорт из модуля объекта документа Реализация товаров и услуг.
Если изменения макета были существенными (изменялись области и/или параметры), то необходимо внести соответствующие корректировки в функцию печати. - Пытаемся сохранить внешнюю обработку. При этом, скорее всего, появятся сообщения об ошибках, связанных с отсутствием некоторых процедур и функций, вызываемых функцией печати. Эти функции и процедуры необходимо найти в исходном документе и так же скопировать в модуль объекта внешней обработки. Либо скорректировать ссылку, если исходная функция или процедура экспортная.
- (не обязательно). Для тестирования внешней печатной формы удобно сделать ее форму, на которую вынести реквизит СсылкаНаОбъект. Кнопка Выполнить должна вызывать процедуру Печать() из модуля объекта. Для этого событию нажатия кнопки задается процедура:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Таб = Печать();
Таб.Показать();
КонецПроцедуры