Найти в Дзене
Владимир Жирицкий

1С. Есть внешняя обработка. В ней макет типа СКД. Как вывести этот макет с помощью команды на форме?

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

&НаКлиенте

Процедура СкомпоноватьРезультат(Команда)

табДок = новый ТабличныйДокумент;

СкомпоноватьРезультатНаСервере(табДок);

табДок.Показать();
КонецПроцедуры

&НаСервере

Процедура СкомпоноватьРезультатНаСервере(табДок)

ОтчетОбъект = РеквизитФормыВЗначение("Объект");

СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("Макет");

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

ПроцессорВывода.УстановитьДокумент(ТабДок);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры