# Разработка внешних печатных форм для 1С 8.3

# Видео

# Что такое внешняя печатная форма

Типовые решения 1С разработаны на базе Библиотеки стандартных подсистем (БСП). БСП предоставляет набор универсальных функциональных подсистем. Одна из подсистем - "Дополнительные отчеты и обработки". Данный функционал позволяет без изменения конфигурации добавить новую печатную форму для документа или справочника.

Внешняя печатная форма - это обработка 1С (файл с расширением epf), в модуле которой прописаны стандартные экспортные функции и процедуры.

# Функция СведенияОВнешнейОбработке()

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("3.1.5.221");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();

	МассивНазначений = Новый Массив;
	МассивНазначений.Добавить("Документ.РеализацияТоваров");
	ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

	ПараметрыРегистрации.Версия = "21.12.16";
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = "Реализация товаров (доработанная)";
	НоваяКоманда.Идентификатор = "РеализацияТоваровДоработанная";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	НоваяКоманда.ПоказыватьОповещение = Истина;
	
	Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
	ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

# Функция Печать()

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	ТабличныйДокумент = ПечатьМассиваОбъектов(МассивОбъектов);
	
	УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
	КоллекцияПечатныхФорм,
	"РеализацияТоваровДоработанная",
	"Реализация товаров (доработанная)",
	ТабличныйДокумент
	);
	
КонецПроцедуры   

Функция ПечатьМассиваОбъектов(МассивОбъектов)
	
	ТабДок = Новый ТабличныйДокумент;
	Для каждого Ссылка из МассивОбъектов Цикл
		ПечатьОбъекта(ТабДок, Ссылка);	
	КонецЦикла; 
	
	Возврат ТабДок;
	
КонецФункции

Процедура ПечатьОбъекта(ТабДок, Ссылка)
	// Заполнение Табличного документа с использованием
    // конструктора запроса с обработкой результата
КонецПроцедуры

# Формирование табличного документа

Простейший макет и его заполнение проще всего разработать используя "Конструктор запроса с обработкой результата".

В простейшем случае запросом выбираются нужные поля объекта, отбор задается по ссылке.

ВЫБРАТЬ
	РеализацияТоваров.Номер КАК Номер,
	РеализацияТоваров.Дата КАК Дата
ИЗ
	Документ.РеализацияТоваров КАК РеализацияТоваров
ГДЕ
	РеализацияТоваров.Ссылка = &Ссылка

# Отладка внешней печатной формы

Отладку печатной формы легче всего осуществлять без подключения обработки, через Файл - Открыть. Для этого необходимо создать простейшую Форму обработки с ссылочным реквизитом ОбъектСсылка и кнопкой "ПечатьОбъекта" с обработчиком следующего содержания.

&НаКлиенте
Процедура ПечатьОбъекта(Команда)
	ТабДок = Новый ТабличныйДокумент;
	ПечатьОбъектаНаСервере(ТабДок);
	ТабДок.Показать();
КонецПроцедуры

&НаСервере
Процедура ПечатьОбъектаНаСервере(ТабДок) 
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	ОбработкаОбъект.ПечатьОбъекта(ТабДок, ОбъектСсылка);
КонецПроцедуры

Last Updated: 12/17/2021, 6:39:35 AM