Имя: Пароль:
1C
1С v8
как получить переданный параметр в отчете СКД 8,2
0 lite777
 
23.08.19
10:36
Добрый день, ЗУП 2,5 доделанная,как получить переданный параметр в  отчете (не внешний) при открытии ,отчет на СКД, имеет форму. передаю параметр так-

    Док=ЭтотОбъект.Ссылка ;
    Форма=Отчеты.Показатели.ПолучитьФорму("ФормаОтчета") ;
    Форма.Параметр = Док;
    Форма.Открыть();
1 lite777
 
23.08.19
10:55
Поле объекта не обнаружено (Параметр)
    Форма.Параметр = Док;
2 НадюшаЯЯ
 
23.08.19
10:57
КомпоновщикНастроек используй
3 lite777
 
23.08.19
10:59
да пытасюсь , информации мало
4 Deal with it
 
23.08.19
11:01
(0) пример передачи параметра валюты

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    ВалютаРуб = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ВалютаРуб");
    ВалютаРуб.Значение = Справочники.Валюты.НайтиПоКоду("643");
    ВалютаРуб.Использование = Истина;
5 lite777
 
23.08.19
11:08
передать тоже не получается-
Поле объекта не обнаружено (Параметр) -,вызов из документа-
    
    Док=ЭтотОбъект.Ссылка ;
    Форма=Отчеты.Показатели.ПолучитьФорму("ФормаОтчета") ;
!!! Форма.Параметр = Док;
    Форма.Открыть();
6 hhhh
 
23.08.19
11:11
(5) ну назови не "Параметр", а как-то по другому. "Параметр" - согласись, какое-то дикое слово, откуда ты его откопал? Понятно, что в форме не может быть этого слова, она тебе и пишет ошибку.
7 Deal with it
 
23.08.19
11:12
(5) ты уверен, что реквизит на форме, из которого ты пытаешься получить значение имеет именно наименование "параметр"? Если так, то это странно.
Соглашусь тут с (6)
8 lite777
 
23.08.19
11:13
рекизит Док  уменя, счас
9 hhhh
 
23.08.19
11:16
(8) ну и пиши

Форма.Док = Док;

пятница что ли?
10 lite777
 
23.08.19
11:18
Док=ЭтотОбъект.Ссылка ;
    Форма=Отчеты.Показатели.ПолучитьФорму("ФормаОтчета") ;
        Форма.Док = Док;
        Форма.Открыть();

  Док2 = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Док");
  Док2.Использование = Ложь;
  Док2.Значение  = Док;

форма открывается с доком
11 lite777
 
23.08.19
11:22
Форма открывается, док передается в форму, но сформировать ,что то не выдает результата ,
12 lite777
 
23.08.19
11:33
Если перевыбрать , в форме нужный документ ,то выдает отчет
13 Deal with it
 
23.08.19
11:36
(10)
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;  

КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;

    Док2 = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Док");
    Док2.Значение =Док;
    Док2.Использование = Истина;

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

КонецПроцедуры


Это процедура в модуле твоего отчета. Передать туда параметры с формы можно поместив его предварительно в отдельно созданный реквизит самого отчета.
Т.е при открытии отчета ты заполняешь на форме реквизит "Док", который является теперь реквизитом не только формы, но самого отчета, потом получаешь его уже в модуле отчета и устанавливаешь его в качестве параметра.
Обязательно ставь условие "Док2.Использование = Истина;" иначе параметр не работает
14 lite777
 
23.08.19
11:45
Спасибо ,попробую!
15 lite777
 
23.08.19
11:51
(13) ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);// !!!тут пишешь как называется твое поле куда выводиться отчет на форме, можешь это пояснить ?
16 Deal with it
 
23.08.19
12:31
17 lite777
 
23.08.19
13:14
Переменная не определена (ЭлементыФормы)
    ПроцессорВывода.УстановитьДокумент(<<?>>ЭлементыФормы.Результат);/
18 Максим Нижегородец
 
23.08.19
15:29
(16) И все таки согласитесь во все виновато название форума. Каждый заходящий на него думает, что все получиться само собой. Простите мысли в слух :).
19 lite777
 
23.08.19
16:33
Короче, в форму  отчета у меня док попадет, (передает в параметр док), но сформировать не работает, а если перевыбрать док в форме, то нормально подхватывает.

Вот Это стоит при изменение поля док в форме отчета-
  Док2 = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Док");
  Док2.Использование = Ложь;
  Док2.Значение  = Док;