Создание внешних печатных форм в 8.1, 8.2 (неуправляемые формы)

Источник: http://www.uasoft.com.ua/content/articles/315/

Область применения

Часто Клиенты просят изменить печатную форму того или иного документа. Если изменять конфигурацию, то придется включить возможность изменения конфигурации и забыть об автоматическом обновлении. Отсутствие автоматических обновлений – это дополнительные затраты денег, времени и отсутствие оперативных обновлений. Для программистов и консультантов – это дополнительная нагрузка, причем массовый поток заявок невозможно предугадать. Однако можно обойтись без изменения конфигурации 1С 8. Для этого будем использовать внешние печатные формы.

Наверняка, многие замечали пункт меню Сервис/Внешние обработки и печатные формы.

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

Приступим!

Практическая часть

Откроем конфигуратор и создадим внешнюю обработку с названием ВнешняяПечатнаяФорма.epf . Нажмем Файл/Новый…

Выберем «Внешняя обработка».

Результатом будет новая внешняя обработка.

Назовем её ВнешняяПечатнаяФорма. Добавим новый реквизит СсылкаНаОбъект с типом ДокументСсылка.РеализацияТоваровИУслуг. Если хотим сделать печатную форму для другого вида документа – нужно использовать соответствующий ссылочный тип.

Добавим новый макет.

Создадим макет с названием «Макет». Создадим область с названием «Заголовок» и параметром «ТекстЗаголовка».

Откроем модуль внешней обработки.

И вставим следующий текст модуля:

//Украинская Софтовая Компания. Пример внешней печатной формы для 1С:Предприятие 8// Функция формирует табличный документ с печатной формой// Возвращаемое значение:// Табличный документ - печатная форма накладной//// Рекумендуется заменить на аналогичную функцию из модуля документа, для которого создается внешняя печатная формаФункция ПечатьДокумента() //Получим данные из документа Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Номер, | РеализацияТоваровУслуг.Дата |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент"; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); //используем в качестве параметра реквизит обработки СсылкаНаОбъект Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); //Созданим и заполним табличный документ ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.ТекстЗаголовка = "Расходная накладная №" + Шапка.Номер + " от " + Шапка.Дата; ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент;КонецФункции // ПечатьДокумента()// Функция является точкой входа в данную обработку.// Алгоритм заполнения печатной формы удобно размещать в отдельной(ых) функции(ях)// Возвращаемое значение:// Табличный документ - печатная форма накладной//Функция Печать() Экспорт ТабДокумент = ПечатьДокумента(); Возврат ТабДокумент; КонецФункции // Печать

В результате получится

Запустим 1С:Предприятие 8. Перейдем в Сервис/Внешние обработки и печатные формы/Внешние печатные формы.

Добавим новую запись в список форм. Выберем созданный нами файл обработки. В табличной части укажем принадлежность внешней печатной формы документу «Реализация товаров и услуг».

Проверим как работает новая печатная форма.

Заключение

Мы прошли весь путь от создания до внедрения внешней печатной формы. Удобно для создания внешних форм использовать макеты и модули из типовой конфигурации.