Создание внешних печатных форм в 8.1, 8.2 (неуправляемые формы)
Источник: http://www.uasoft.com.ua/content/articles/315/
Область применения
Часто Клиенты просят изменить печатную форму того или иного документа. Если изменять конфигурацию, то придется включить возможность изменения конфигурации и забыть об автоматическом обновлении. Отсутствие автоматических обновлений – это дополнительные затраты денег, времени и отсутствие оперативных обновлений. Для программистов и консультантов – это дополнительная нагрузка, причем массовый поток заявок невозможно предугадать. Однако можно обойтись без изменения конфигурации 1С 8. Для этого будем использовать внешние печатные формы.
Наверняка, многие замечали пункт меню Сервис/Внешние обработки и печатные формы.
В нем можно хранить внешние обработки, отчеты, печатные формы и обработки заполнения табличных частей. Сегодня рассмотрим работу с внешними печатными формами. Результатом будет новая печатная форма для документа «Реализация товаров и услуг».
Приступим!
Практическая часть
Откроем конфигуратор и создадим внешнюю обработку с названием ВнешняяПечатнаяФорма.epf . Нажмем Файл/Новый…
Выберем «Внешняя обработка».
Результатом будет новая внешняя обработка.
Назовем её ВнешняяПечатнаяФорма. Добавим новый реквизит СсылкаНаОбъект с типом ДокументСсылка.РеализацияТоваровИУслуг. Если хотим сделать печатную форму для другого вида документа – нужно использовать соответствующий ссылочный тип.
Добавим новый макет.
Создадим макет с названием «Макет». Создадим область с названием «Заголовок» и параметром «ТекстЗаголовка».
Откроем модуль внешней обработки.
И вставим следующий текст модуля:
//Украинская Софтовая Компания. Пример внешней печатной формы для 1С:Предприятие 8// Функция формирует табличный документ с печатной формой// Возвращаемое значение:// Табличный документ - печатная форма накладной//// Рекумендуется заменить на аналогичную функцию из модуля документа, для которого создается внешняя печатная формаФункция ПечатьДокумента() //Получим данные из документа Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Номер, | РеализацияТоваровУслуг.Дата |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент"; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); //используем в качестве параметра реквизит обработки СсылкаНаОбъект Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); //Созданим и заполним табличный документ ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.ТекстЗаголовка = "Расходная накладная №" + Шапка.Номер + " от " + Шапка.Дата; ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент;КонецФункции // ПечатьДокумента()// Функция является точкой входа в данную обработку.// Алгоритм заполнения печатной формы удобно размещать в отдельной(ых) функции(ях)// Возвращаемое значение:// Табличный документ - печатная форма накладной//Функция Печать() Экспорт ТабДокумент = ПечатьДокумента(); Возврат ТабДокумент; КонецФункции // Печать
В результате получится
Запустим 1С:Предприятие 8. Перейдем в Сервис/Внешние обработки и печатные формы/Внешние печатные формы.
Добавим новую запись в список форм. Выберем созданный нами файл обработки. В табличной части укажем принадлежность внешней печатной формы документу «Реализация товаров и услуг».
Проверим как работает новая печатная форма.
Заключение
Мы прошли весь путь от создания до внедрения внешней печатной формы. Удобно для создания внешних форм использовать макеты и модули из типовой конфигурации.