Имя: Пароль:
1C
 
1С 8.2 УТ 10.3 СКД Программное формирование отчета с внешними данными
0 ils108
 
24.01.17
12:00
Всем добра! Формирую отчет, чтобы отправлять результаты по почте.
Сначала запросом выгружаю нужные данные за месяц, потом мне надо сформировать 3 варианта (день, неделя, месяц), а я в итоге получаю только общий результат.
Подскажите как правильно передать параметры? я уже пытаюсь воткнуть всё что можно.
привожу кусок кода
Если НачалоДня(ТекущаяДата()) = НачалоМесяца(ТекущаяДата()) Тогда
        СхемаКомпоновкиДанных.Параметры.НачалоПериода.Значение = НачалоДня(ДобавитьМесяц(ТекущаяДата(), -1));
        СхемаКомпоновкиДанных.Параметры.КонецПериода.Значение  = КонецМесяца(ДобавитьМесяц(ТекущаяДата(), -1));
        пНастройки.ПараметрыДанных.Элементы[0].Значение = НачалоДня(ДобавитьМесяц(ТекущаяДата(), -1));
        пНастройки.ПараметрыДанных.Элементы[1].Значение = КонецМесяца(ДобавитьМесяц(ТекущаяДата(), -1));
    Иначе
        СхемаКомпоновкиДанных.Параметры.НачалоПериода.Значение = НачалоМесяца(ТекущаяДата());
        СхемаКомпоновкиДанных.Параметры.КонецПериода.Значение = НачалоДня(ТекущаяДата());
        пНастройки.ПараметрыДанных.Элементы[0].Значение = НачалоМесяца(ТекущаяДата());
        пНастройки.ПараметрыДанных.Элементы[1].Значение = НачалоДня(ТекущаяДата());
    КонецЕсли;
//    СхемаКомпоновкиДанных.Параметры.НачалоПериода.ОграничениеИспользования = Истина;
    Таб2 = СкомпоноватьМакетВТабДок(СхемаКомпоновкиДанных, пНастройки, ВнешниеДанные);

Функция СкомпоноватьМакетВТабДок (СхемаКомпоновкиДанных, Настройки, ВнешниеПараметры = Неопределено)
    Таб = Новый ТабличныйДокумент;
    //Помещаем в переменную данные о расшифровке данных
    Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;    
    //Формируем макет, с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;    
    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, Расшифровка);
    Если  ВнешниеПараметры = Неопределено Тогда
        ВнешниеПараметры = Новый Структура;
    КонецЕсли;
    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);
    
    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Таб);    
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
    Возврат Таб;
КонецФункции
1 aleks_default
 
24.01.17
12:20
Чтобы убедится что заполняешь именно тот параметр
ПараметрНачалоПериода = пНастройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
ПараметрНачалоПериода.Использование = Истина;
ПараметрНачалоПериода.Значение = НачалоДня(ДобавитьМесяц(ТекущаяДата(), -1));
2 aleks_default
 
24.01.17
12:20
пНастройки как получаешь?
3 ils108
 
24.01.17
12:24
(2)
    пВарианты = СхемаКомпоновкиДанных.ВариантыНастроек;
    Для Каждого пЭл ИЗ пВарианты Цикл
        СтруктураВариантов.Вставить(пЭл.Имя,пЭл.Настройки);
    КонецЦикла;
    пНастройки = СтруктураВариантов.ОтчетПоЗвонкам;
4 ils108
 
24.01.17
12:47
(1) убедился, результат тотже
5 ils108
 
24.01.17
13:30
Решение использовал альтернативное.
Фильтровать ТЗ по дате перебором для каждого варианта.
Программист всегда исправляет последнюю ошибку.