Имя: Пароль:
1C
1С v8
При программном формировании отчета данные не выводятся в табличный документ
0 Aydar
 
08.04.20
15:10
Добрый день!
Пытаюсь программно запустить отчет "ОтчетПоПроводкам" (это стандартный отчет) и выводить данные в табличный документ, но в результате табличный документ пустой (если отчет формирую интерактивно данные есть).
Подскажите, пожалуйста, где ошибка или где что нужно дописать?
Пишу следующий код:

ПараметрыОтчетаПоПроводкам = ПодготовитьПараметрыОтчетаПоПроводкам(ЭлементКраткиеИменаОрганизаций.Ключ, ВидОтчета.ТаблицаКорреспонденций);
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
БухгалтерскиеОтчетыВызовСервера.СформироватьОтчет(ПараметрыОтчета, АдресХранилища);

СтруктураРезультат = ПолучитьИзВременногоХранилища(АдресХранилища);
ТабличныйДокумент = СтруктураРезультат.Результат;
ТабличныйДокумент.Показать();

&НаСервере
Функция ПодготовитьПараметрыОтчетаПоПроводкам(Организация)

    НовыйОтчет = Отчеты["ОтчетПоПроводкам"].Создать();
    ПараметрыОтчета = Новый Структура;
    
    ПараметрыОтчета.Вставить("Организация"                      , Организация);
    ПараметрыОтчета.Вставить("НачалоПериода"                    , Период.ДатаНачала);
    ПараметрыОтчета.Вставить("КонецПериода"                     , Период.ДатаОкончания);
    ПараметрыОтчета.Вставить("ВключатьОбособленныеПодразделения", Ложь);
    ПараметрыОтчета.Вставить("ПоказательБУ"                     , Истина);
    ПараметрыОтчета.Вставить("ПоказательНУ"                     , Ложь);
    ПараметрыОтчета.Вставить("ПоказательПР"                     , Ложь);
    ПараметрыОтчета.Вставить("ПоказательВР"                     , Ложь);
    ПараметрыОтчета.Вставить("ПоказательВалютнаяСумма"          , Ложь);
    ПараметрыОтчета.Вставить("ПоказательКоличество"             , Ложь);
    ПараметрыОтчета.Вставить("РежимРасшифровки"                 , Ложь);
    ПараметрыОтчета.Вставить("ВыводитьЗаголовок"                , Истина);
    ПараметрыОтчета.Вставить("ВыводитьПодвал"                   , Ложь);
    ПараметрыОтчета.Вставить("ДанныеРасшифровки"                , Неопределено);
    ПараметрыОтчета.Вставить("МакетОформления"                  , "МакетОформленияОтчетовЗеленый");    
    ПараметрыОтчета.Вставить("СхемаКомпоновкиДанных"            , НовыйОтчет.ПолучитьМакет("СхемаКомпоновкиДанных"));
    ПараметрыОтчета.Вставить("ИдентификаторОтчета"              , "ОтчетПоПроводкам");
    ПараметрыОтчета.Вставить("НастройкиКомпоновкиДанных"        , НовыйОтчет.КомпоновщикНастроек.ПолучитьНастройки());
    ПараметрыОтчета.Вставить("НаборПоказателей"                 , Отчеты["ОтчетПоПроводкам"].ПолучитьНаборПоказателей());
    ПараметрыОтчета.Вставить("ОтветственноеЛицо"                , Перечисления.ОтветственныеЛицаОрганизаций.ОтветственныйЗаБухгалтерскиеРегистры);
    ПараметрыОтчета.Вставить("ВыводитьЕдиницуИзмерения"         , Ложь);
    
    
    Возврат ПараметрыОтчета;
    
КонецФункции
1 Renat11111
 
08.04.20
15:23
ПараметрФормы = Новый Структура("СформироватьПриОткрытии", Истина);
2 Renat11111
 
08.04.20
15:23
Отчеты["ОтчетПоПроводкам"].Создать();

И кстати по-моему через открыть ОткрытьФорму рекомендуют....
3 Aydar
 
08.04.20
15:34
(2) мне не нужно открывать форму отчета. я хочу программно запустить и получить результат
4 Михаил Козлов
 
08.04.20
20:02
Я не дока в СКД, но так работает:
отчет = Отчеты.ЗадолженностьКлиентов.Создать();
СхемаКомпоновкиДанных=Отчеты.ЗадолженностьКлиентов.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.ЗадолженностьКлиентовПричиныЗапретаОтгрузки.Настройки);
настройки = отчет.КомпоновщикНастроек.Настройки;
настройки.ДополнительныеСвойства.Вставить("КлючВарианта", "ЗадолженностьКлиентовПричиныЗапретаОтгрузки");
//фильтр по договору
ЭлементОтбора = Отчет.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ПолеКомпановки = Новый ПолеКомпоновкиДанных("Договор");
ЭлементОтбора.ЛевоеЗначение = ПолеКомпановки;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Объект.Заказ.Договор;
ЭлементОтбора.Использование = Истина;     
    
отчет.СкомпоноватьРезультат(Объект.ТабДок, НЕОПРЕДЕЛЕНО);
5 Aydar
 
09.04.20
10:38
(4) спасибо, это то что нужно)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс