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