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


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