Имя: Пароль:
1C
 
Как обратится из модуля формы отчета к реквизиту отчета
0 gabd_marat
 
02.06.16
00:46
Народ, надо вывести отчет. Для этого есть процедура с запросом описанная в общем модуле. В запросе есть параметры.Нужно установить параметр, для этого передать в процедуру значение реквизита отчета, который заполняется на форме. Подскажите как это сделать?
И чем отличается реквизит формы от реквизита отчета? И как обращаться к ним?
1 gabd_marat
 
02.06.16
00:47
вот код
&НаСервере
Процедура ЗаполнитьФормаОтчет(ТабДок) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ОстаткиТоваровОстатки.Товар,
                   |    ОстаткиТоваровОстатки.КоличествоОстаток
                   |ПОМЕСТИТЬ ВТОстатки
                   |ИЗ
                   |    РегистрНакопления.ОстаткиТоваров.Остатки(
                   |            ,
                   |            Организация = &Организация
                   |                И Склад = &Склад) КАК ОстаткиТоваровОстатки
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ВТОстатки.Товар,
                   |    ВТОстатки.КоличествоОстаток,
                   |    ЕСТЬNULL(ЦеныТоваровСрезПоследних.Цена, 0) КАК Цена
                   |ИЗ
                   |    ВТОстатки КАК ВТОстатки
                   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныТоваров.СрезПоследних(
                   |                ,
                   |                Организация = &Организация
                   |                    И Склад = &Склад
                   |                    И Товар В
                   |                        (ВЫБРАТЬ
                   |                            ВТОстатки.Товар
                   |                        ИЗ
                   |                            ВТОстатки КАК ВТОстатки)) КАК ЦеныТоваровСрезПоследних
                   |        ПО ВТОстатки.Товар = ЦеныТоваровСрезПоследних.Товар";
                  
     Запрос.УстановитьПараметр("Организация",Объект.Организация);
     Запрос.УстановитьПараметр("Склад",Объект.Склад);
     РезультатЗапроса = Запрос.Выполнить();
     Выборка = РезультатЗапроса.Выгрузить();
        
    ТабДок = Новый ТабличныйДокумент;
    ТекМакет = Отчеты.ИнвентаризационнаяВедомостьТовара.ПолучитьМакет("Макет");
    Шапка = ТекМакет.ПолучитьОбласть("Шапка");
    ШапкаТаблицы = ТекМакет.ПолучитьОбласть("ШапкаТаблицы");
    Строки = ТекМакет.ПолучитьОбласть("Строки");
    ТабДок.Вывести(Шапка);
    ТабДок.Вывести(ШапкаТаблицы);
     Номер = 1;
    Для Каждого Строка Из Выборка Цикл
        Строки.Параметры.Заполнить(Строка);
        Строки.Параметры.Код = Номер;
        Строки.Параметры.Товар = Строка.Товар;
        Строки.Параметры.Цена = Строка.Цена;
        Строки.Параметры.Цена = Строка.КоличествоОстаток;
        Номер = Номер + 1;
        ТабДок.Вывести(Строки);
    КонецЦикла;

&НаКлиенте
Процедура Сформировать(Команда)
    РаботаСоСправочниками.ЗаполнитьФормаОтчет(Результат,ЭтаФорма.Организация,ЭтаФорма.Склад);
КонецПроцедуры
2 Bigbro
 
02.06.16
07:51
реквизиты формы доступны через "ЭтаФорма." - у тебя есть.
а реквизиты отчета/обработки через "ЭтотОбъект."
3 Pistol
 
02.06.16
07:54
(2) Про ЭтотОбъект на УФ я бы не был так категоричен.
4 b_ru
 
02.06.16
07:56
РаботаСоСправочниками.ЗаполнитьФормаОтчет(Результат, Объект.Организация, Объект.Склад)

Только разберись, что такое должно быть Результат. Скорее всего РезультатЗапроса, соответственно должно быть так:

&НаСервере
Процедура СформироватьНаСервере()
Результат = <Как-то получаешь результат>
  РаботаСоСправочниками.ЗаполнитьФормаОтчет(Результат,Объект.Организация,Объект.Склад);
  
КонецПроцедуры

&НаКлиенте
Процедура Сформировать(Команда)
  СформироватьНаСервере();
КонецПроцедуры
5 Enterprise
 
02.06.16
08:15
(0) Отчет.ТвойРеквизит
6 Enterprise
 
02.06.16
08:17
(5)+   РаботаСоСправочниками.ЗаполнитьФормаОтчет(Отчет.Результат, Организация, Склад);
7 gabd_marat
 
02.06.16
09:19
Все разобрался спасиб
&НаКлиенте
Процедура Сформировать(Команда)
    РаботаСоСправочниками.ЗаполнитьФормаОтчет(Результат,Отчет.Организация,Отчет.Склад);
КонецПроцедуры
Процедура ЗаполнитьФормаОтчет(ТабДок,Организация,Склад) Экспорт
//...
Запрос.УстановитьПараметр("Организация",Организация);
     Запрос.УстановитьПараметр("Склад",Склад);
//....