&НаСервере Процедура СформироватьОтчетНаСервере(ТаблДок) //ОбъектОтчет = РеквизитФормыВЗначение("Отчет"); ОСКД = ПолучитьОбщийМакет(ИмяМакета); НастройкиОСКД = ОСКД.НастройкиПоУмолчанию; ЭлементыОтбора = Отбор[0].ОтборКомпоновкиДанных.Элементы; Для й=0 По ЭлементыОтбора.Количество()-1 Цикл Попытка ЭлементСКД = НастройкиОСКД.Отбор.Элементы[й]; Исключение ЭлементСКД = НастройкиОСКД.Отбор.Элементы.Добавить(); КонецПопытки; ЭлементСКД.Использование = ЭлементыОтбора[й].Использование; ЭлементСКД.ЛевоеЗначение = ЭлементыОтбора[й].ЛевоеЗначение; ЭлементСКД.ВидСравнения = ЭлементыОтбора[й].ВидСравнения; ЭлементСКД.ПравоеЗначение = ЭлементыОтбора[й].ПравоеЗначение; КонецЦикла; //НастройкиОСКД.Отбор = Отбор; //Если Отбор.Количество() > 0 Тогда // Для й=0 По Отбор.Количество()-1 Цикл // НастройкиОСКД.Отбор.Элементы[й].Использование = Отбор[й].Использование; // НастройкиОСКД.Отбор.Элементы[й].ЛевоеЗначение = Отбор[й].ЛевоеЗначение; // НастройкиОСКД.Отбор.Элементы[й].ВидСравнения = Отбор[й].ВидСравнения; // НастройкиОСКД.Отбор.Элементы[й].ПравоеЗначение = Отбор[й].ПравоеЗначение; // КонецЦикла; //КонецЕсли; //НастройкиОСКД = КомпоновщикНастроек.ПолучитьНастройкиОСКД(); ПараметрыДанныхОСКД = НастройкиОСКД.ПараметрыДанных.Элементы; ЭлементНачалоПериода = ПараметрыДанныхОСКД.Найти("Период"); ЭлементНачалоПериода.Использование = Истина; ЭлементНачалоПериода.Значение = Период; //ЭлементКонецПериода = ПараметрыДанныхОСКД.Найти("КонецПериода"); //ЭлементКонецПериода.Использование = Истина; //ЭлементКонецПериода.Значение = КонецПериода; //ЭлементСчет = ПараметрыДанныхОСКД.Найти("Счет"); //ЭлементСчет.Использование = Истина; //ЭлементСчет.Значение = ПланыСчетов.Хозрасчетный.ТоварыНаСкладах; //КомпоновщикНастроекДанных = Новый КомпоновщикНастроекКомпоновкиДанных; //КомпоновщикНастроекДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ОСКД)); //КомпоновщикНастроекДанных.ЗагрузитьНастройкиОСКД(ОСКД.НастройкиОСКДПоУмолчанию); //КомпоновщикНастроекДанных.ЗагрузитьПользовательскиеНастройкиОСКД(Отчет.КомпоновщикНастроек.ПользовательскиеНастройкиОСКД); КомпоновщикМакетаОСКД = Новый КомпоновщикМакетаКомпоновкиДанных; //Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, КомпоновщикНастроекДанных.ПолучитьНастройкиОСКД()); Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, НастройкиОСКД); ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиОСКД.Инициализировать(Макет); ТаблДок.Очистить(); ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВыводаОСКД.УстановитьДокумент(ТаблДок); ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД); КонецПроцедуры &НаКлиенте Процедура Сформировать(Команда) СформироватьОтчетНаСервере(Резутьтат); //Масштаб = 50; Резутьтат.Рисунки[0].Ширина = 70; Резутьтат.Рисунки[0].Высота = 60; Резутьтат.ПоказатьУровеньГруппировокСтрок(1); Резутьтат.ПоказатьУровеньГруппировокСтрок(0); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ИмяМакета = Параметры.ИмяМакета; ОСКД = ПолучитьОбщийМакет(ИмяМакета); ОтборСКД = ОСКД.НастройкиПоУмолчанию.Отбор; ДобавитьОтбор = Отбор.Добавить(); ДобавитьОтбор.ОтборКомпоновкиДанных = ОтборСКД; Период.ДатаНачала = НачалоМесяца(ТекущаяДата()); Период.ДатаОкончания = КонецМесяца(ТекущаяДата()); КонецПроцедуры