Печать документа в 1С Предприятии с выводом в СКД

Печать документа в 1С Предприятии с выводом в СКД

Пример конфигурации 1С на управляемых формах с демонстрацией вывода формы печати созданной в СКД (Схема компоновки данных):

Реализация печати с кнопкой СКД в документе 1С
Вывод на печать (Пример):

 

Вывод на печать СКД в 1С
Вывод на печать СКД в 1С
&НаКлиенте
Процедура Печать(Команда)
	перем ТабДок;
	ПечатьДокумента(ТабДок);
	ТабДок.Показать();
	ТабДок.ОтображатьЗаголовки = ЛОЖЬ;
	ТабДок.ОтображатьСетку = ЛОЖЬ;
	ТабДок.ТолькоПросмотр = ИСТИНА;
КонецПроцедуры

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

	
	//Итог таблицы
	ОбластьИтог = Макет.ПолучитьОбласть("Итог");
	ОбластьИтог.параметры.ИтогСумма = Ит;
	ТабДок.Вывести(ОбластьИтог);
	
	//Итог подвал
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	ОбластьПодвал.Параметры.Организация = Объект.Организация;
	ОбластьПодвал.Параметры.Контрагент = Объект.Контрагент;
	ОбластьПодвал.Параметры.Склад =  Объект.Склад;
	ТабДок.Вывести(ОбластьПодвал);	
	
	
КонецПроцедуры

&НаКлиенте
Процедура ТЧКоличествоПриИзменении(Элемент)
	
	ТекСтр = Элементы.ТЧ.ТекущиеДанные;
	ТекСтр.Сумма = ТекСтр.Количество * ТекСтр.Цена;
	
КонецПроцедуры

&НаКлиенте
Процедура ТЧЦенаПриИзменении(Элемент)
	
	ТекСтр = Элементы.ТЧ.ТекущиеДанные;
	ТекСтр.Сумма = ТекСтр.Количество * ТекСтр.Цена;
	
КонецПроцедуры

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

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

 

dt

Скачать конфигурацию в DT* можно после регистрации


Оставьте комментарий

База знаний 1С