Имя: Пароль:
1C
1С v8
Проблема с выгрузкой отчета в ТабДок (отчет на СКД, 1С 8.2)
0 ils108
 
26.08.16
09:49
Формирую отчет.
СхемаКомпоновкиДанных = Отчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
    пВарианты = СхемаКомпоновкиДанных.ВариантыНастроек;
    Для Каждого пЭл ИЗ пВарианты Цикл
        СтруктураВариантов.Вставить(пЭл.Имя,пЭл.Настройки);
    КонецЦикла;
    пНастройки = СтруктураВариантов.ИтогиСОценкой;
    
    //Из схемы возьмем настройки по умолчанию
    //установим период, скомпонуем отчет по основному варианту отчету
    СхемаКомпоновкиДанных.Параметры.КонецПериода.Значение = КонецДня(Дата("20150505"));
    СхемаКомпоновкиДанных.Параметры.НачалоПериода.Значение = НачалоДня(Дата("20150505") - 6 * 86400);
    ТабДок = СкомпоноватьМакетВТабДок(СхемаКомпоновкиДанных, пНастройки);

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

и тут случается затык. Нормально компонуется только если я в параметрах ставлю "ограничение доступности" в противном случае ругается, что не заполнен параметр "начало периода".
Подскажите как можно разрешить ситуацию? ограничение доступности ставить не вариант, хотелось бы отчет не только программно использовать. Заранее спасибо
1 SpellKeeper
 
26.08.16
09:54
во-первых, ты привел какие-то куски кода. Что откуда не ясно.
Во-вторых. В каком месте ругается?
Ты проверь, а что стоит в этом параметре на момент выполнения сбойной строки.
Может у тебя где-то вызывается какая-то процедура, которая обнуляет значение параметра.
2 ils108
 
26.08.16
10:16
(1) я привел как раз этот кусок, конкретно ругается здесь
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);
3 SpellKeeper
 
26.08.16
10:22
Да ругается то она здесь. Только не понятно, а что до этого было.
Короче, в отладчике проверь значение параметра. Если слетело, то ищи где оно слетело.
Ошибка? Это не ошибка, это системная функция.