2026-04-04 08:41:14 +03:00

94 lines
6.1 KiB
Plaintext

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