Имя: Пароль:
1C
1С v8
СКД на форме
0 antiteror91
 
23.04.13
07:16
Я сделал отчет с помощью СКД он работал без проблем. Я решил создать форму где будут его параметры. форму создал. Подскажите как вывести отчет с СКД на форму?????
1 Wobland
 
23.04.13
07:20
этот клинический случай прекрасно описан хрусталёвой
2 mkanaev
 
23.04.13
07:30
antiteror91, в данном случае тебе придётся самому описывать вывод, соответственно получать настройку схемы компановки данных и в ней устанавливать параметры, вот тебе пример:

ТабДок.Очистить();
   
   Схема =    ПолучитьМакет("Макет");
   Настройка = КомпоновщикНастроек.Настройки;
   
   Для каждого Параметр из Настройка.ПараметрыДанных.Элементы цикл
       
       Если Строка(Параметр.Параметр) = "НачалоПериода" тогда
           Параметр.Значение = НачалоДня(НачалоПериода);
           Параметр.Использование=Истина;
       КонецЕсли;
       Если Строка(Параметр.Параметр) = "КонецПериода" тогда
           Параметр.Значение = НачалоДня(КонецПериода);
           Параметр.Использование=Истина;
       КонецЕсли;
       Если Строка(Параметр.Параметр) = "Организация" тогда
           Параметр.Значение = Организация;
           Параметр.Использование=Истина;
       КонецЕсли;
       Если Строка(Параметр.Параметр) = "СписокСтатей" тогда
           СписокСтатей = Новый СписокЗначений;
           СписокСтатей.ЗагрузитьЗначения(ТаблицаРазварачиваемыхСтатей.ВыгрузитьКолонку("СтатьяДДС"));
           Параметр.Значение = СписокСтатей;
           Параметр.Использование=Истина;
       КонецЕсли;
       
   КонецЦикла;
   
   ДР = новый ДанныеРасшифровкиКомпоновкиДанных;
   
   КомпановщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпановкиДанных = КомпановщикМакета.Выполнить(Схема, Настройка, ДР); //добавить элемент типа данные расшифровки  3 параметр
   
   ПолеОпределенияДетализацииСтатьи = "";
   ПолеОпределенияДетализацииКонтрагента = "";
   
   МакетСтатьи = МакетКомпановкиДанных.Макеты.Найти("Макет4");
   Если МакетСтатьи <> Неопределено тогда
       Для каждого параметр из МакетСтатьи.Параметры цикл
           Попытка
           Если параметр.Выражение = "Представление(Максимум(НаборДанных1.ПризнакРаскрытияСтатьи))" тогда
               ПолеОпределенияДетализацииСтатьи = Параметр.Имя;
               Прервать;
           КонецЕсли;
           Исключение
           КонецПопытки;
       КонецЦикла;        
   КонецЕсли;
   
   МакетСтатьи = МакетКомпановкиДанных.Макеты.Найти("Макет5");
   Если МакетСтатьи <> Неопределено тогда
       Для каждого параметр из МакетСтатьи.Параметры цикл
           Попытка
           Если параметр.Выражение = "Представление(Максимум(НаборДанных1.ПризнакРаскрытияКонтрагента))" тогда
               ПолеОпределенияДетализацииКонтрагента = Параметр.Имя;
               Прервать;
           КонецЕсли;
       Исключение
           КонецПопытки;
       КонецЦикла;        
   КонецЕсли;
   
   Если ПолеОпределенияДетализацииКонтрагента = "" или ПолеОпределенияДетализацииСтатьи = "" тогда
       Сообщить("Не удалось сформировать отчет!");
       Возврат;
   КонецЕсли;                
   
   ПроцессорКомпановкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпановкиДанных.Инициализировать(МакетКомпановкиДанных,,ДР);//добавить элемент типа данные расшифровки 3 параметр
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ТабДок);
ПроцессорВывода.Вывести(ПроцессорКомпановкиДанных);
3 mkanaev
 
23.04.13
07:32
я там лишка кода кинул, смотри на получение макета компановки, процессор компановки данных, процессор вывода, и настройку СКД
4 cw014
 
23.04.13
07:50
(2)(3) А вот это не обязательно, ибо у отчета есть типовые команды "Сформировать", "Настройки" и т.д.
Закон Брукера: Даже маленькая практика стоит большой теории.