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