Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Передача параметров во внешний отчет через ПостроительОтчета

Передача параметров во внешний отчет через ПостроительОтчета
Я
   SprayTM
 
15.10.19 - 07:18
Есть два внешних отчета. В ОбработкеРасшифровки прописан код, в котором должен открываться другой внешний отчет с некоторыми параметрами из первого(Номенклатура и ТипЦен, которые передаются в отбор на втором отчете). Передавать параметры нужно через ПостроительОтчета. Но с ним возникают трудности - выдает ошибку о нехватке фактических параметров. Куда решать, а то уже второй день с этим борюсь.
8.3, УТ 2.1

ИначеЕсли ВнешняяРасшифровкаАнализЦенКонтрагентов Тогда
    
    Если НЕ Расшифровка.Свойство("Номенклатура") Тогда
        Возврат;
    КонецЕсли;

    ВнешнийОтчет = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Анализ цен");
    
    Если ВнешнийОтчет.Пустая() Тогда                    
        Предупреждение("В справочнике ""Внешние отчеты"" не найден отчет с наименованием ""Анализ цен""");            
    Иначе
        ДвоичныеДанные  = ВнешнийОтчет.ХранилищеВнешнейОбработки.Получить();                            
        ИмяФайла         = ПолучитьИмяВременногоФайла("epf");
        ДвоичныеДанные.Записать(ИмяФайла);
        
        ОтчетАнализЦенКонтрагентов               = ВнешниеОтчеты.Создать(ИмяФайла, Ложь);
        ОтчетАнализЦенКонтрагентов.ДатаОтчета = КонецДня(ТекущаяДата());
        
        Форма = ОтчетАнализЦенКонтрагентов.ПолучитьФорму();
                        
        Если КонецПериода <> Неопределено Тогда
            Если ТипЗнч(КонецПериода.Значение)  = Тип("СтандартнаяДатаНачала") Тогда
                КонецПериода.Значение.Дата        = КонецДня(ТекущаяДата());
                КонецПериода.Использование         = Истина;
            КонецЕсли;
        КонецЕсли;

        ОтчетАнализЦенКонтрагентов.ПостроительОтчета.Параметры.Вставить("Номенклатура", Расшифровка.Значение("Номенклатура"));
        ОтчетАнализЦенКонтрагентов.ПостроительОтчета.Параметры.Вставить("ТипЦен", "Аптечная");

        АнализЦенКонтрагентовДокументРезультат = Форма.ЭлементыФормы.Найти("ДокументРезультат");
        Форма.СформироватьОтчет(АнализЦенКонтрагентовДокументРезультат);
        Форма.Открыть();
        
        УдалитьФайлы(ИмяФайла);
        Возврат;
    КонецЕсли;            
    
КонецЕсли;
 
 
   ДенисЧ
 
1 - 15.10.19 - 07:22
500 рублей и я не стану угадывать строку, в которой возникает ошибка!
   SprayTM
 
2 - 15.10.19 - 07:24
(1) неужто весь геморрой в одной строке кроется?
   ДенисЧ
 
3 - 15.10.19 - 07:26
(2) Ну, я же не знаю, сколько ошибок у тебя в ДНК, явно больше одной.
Поскольку ты даже не сообразил, что если 1с даёт ошибку, то она же и показывает строку, в которой эта ошибка возникает.
   SprayTM
 
4 - 15.10.19 - 07:29
(3) ошибку она выдает здесь
 Форма.СформироватьОтчет(АнализЦенКонтрагентовДокументРезультат);
   Irbis
 
5 - 15.10.19 - 07:32
(4) А отладчик как всегда спёрли, и по обычаю вкупе с СП.
   SprayTM
 
6 - 15.10.19 - 07:35
(5)СП обшарил по построителю, ничего не нашёл нужного.
Отладчик в параметры построителя заносил пустое значение в номенклатуру и "Аптечная" в ТипЦен
   KolPecivanovich
 
7 - 15.10.19 - 07:36
(4)
посмотрите в форме процедуру СформироватьОтчет, сколько там параметров стоит в скобках, столько же и при вызове нужно передавать
   Irbis
 
8 - 15.10.19 - 07:39
(6) Построитель вообще пока не при делах. Да и требовать от формы выполнения отчета... скорее это должен быть метод объекта.
   SprayTM
 
9 - 15.10.19 - 07:46
(7) Процедура СформироватьОтчет(ДокументРезультат, ПоказыватьЗаголовок, ТолькоЗаголовок = Ложь) Экспорт 
вы про эту процедуру?
(8) СформироватьОтчет - это экспортная процедура, вызываемая из АнализЦен
   KolPecivanovich
 
10 - 15.10.19 - 07:47
(9) да
   Irbis
 
11 - 15.10.19 - 08:08
(9) Экспортная процедура чего? Отчет или 153 его формы. Вызов экспортной процедуры объекта можно вообще без формы делать.
   SprayTM
 
12 - 15.10.19 - 08:23
(11) Дело в том, что в первом отчете есть такая же экспортная процедура СформироватьОтчет, и если делать не через форму, то он просто копирует всю таблицу во второй отчет
   ДенисЧ
 
13 - 15.10.19 - 08:45
ОтчетАнализЦенКонтрагентов.СформироватьОтчет(...)
   SprayTM
 
14 - 15.10.19 - 09:06
(13) Благодарю

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.