Имя: Пароль:
1C
1С v8
Как из обработки сформировать отчет?
0 curys
 
22.11.11
12:45
Подскажите как из обработки сформировать отчет?

вот что я делаю:
Отчет = Отчеты[НазваниеОтчета].Создать();
       Форма = Отчет.ПолучитьФорму(, , );
       Форма.Открыть();
       
       // Выполнить настройку отчета по умолчанию
       
         Форма.ЭлементыФормы.Сайт.Значение = Запись.Ссылка;
           
       // После завершения настроек нажмем программно кнопку "Сформировать"
         ОбработкаНажатия = Новый Действие("Сформировать");
       КнопкаСформировать = Форма.ЭлементыФормы.ДействияФормы;
       КнопкаСформировать = Форма.УстановитьДействие("Нажатие", ОбработкаНажатия);

Вот какую ошибку выдает:
{Обработка.ОтправкаПочты.Форма.Форма.Форма(44)}: Обращение к процедуре объекта как к функции (УстановитьДействие)
       КнопкаСформировать = Форма.УстановитьДействие("Нажатие", ОбработкаНажатия);
1 mikecool
 
22.11.11
12:46
нафига такой изврат, когда есть модуль и из него можно получить результат?
2 curys
 
22.11.11
12:49
а как, если не сложно?
3 ProProg
 
22.11.11
12:50
вчера же была эта тема. чо ветки плодитть
4 ProProg
 
22.11.11
12:53
"не можешь сrать, не мучай jопу"

ОтчетОбъект = Отчеты[ИмяОтчета].Создать();
   
   ФормаОтчета = ОтчетОбъект.ПолучитьФорму();
   Попытка
       ФормаОтчета.СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Максимизированное;
   Исключение        
   КонецПопытки;
   ФормаОтчета.УниверсальныйОтчет.ВариантОформления = СтандартноеОформление.Бронза;
   
   ОтчетОбъект.УстановитьНачальныеНастройки();
   ОтчетОбъект.УниверсальныйОтчет.мВосстанавливатьНастройкиПриОткрытии = Ложь;

ФормаОтчета.Открыть();
       
       Отбор = ФормаОтчета.ЭтотОбъект.УниверсальныйОтчет.ПостроительОтчета.Отбор;    
       Сч = 0;
       Пока Сч < Отбор.Количество() Цикл
           Отбор[Сч].Использование=Ложь;
           
           Сч = Сч+1;
       КонецЦикла;
       
       Если Отбор.Найти("Номенклатура") = Неопределено Тогда
           Отбор.Добавить("Номенклатура","Номенклатура");
       КонецЕсли;
       Отбор["Номенклатура"].Использование = Истина;
       Отбор["Номенклатура"].ВидСравнения  = ВидСравнения.ВИерархии;
       Отбор["Номенклатура"].Значение      = Номенклатура;
       
       ФормаОтчета.УниверсальныйОтчет.ДатаНач = НачалоДня(ДатаНач);
       ФормаОтчета.УниверсальныйОтчет.ДатаКон = КонецДня(ДатаКон);
       ФормаОтчета.УниверсальныйОтчет.ОтрицательноеКрасным    = Истина;
       ФормаОтчета.УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Ложь;
       ФормаОтчета.УниверсальныйОтчет.ВыводитьОбщиеИтоги      = Истина;
       
       ПострОтчета = ФормаОтчета.УниверсальныйОтчет.ПостроительОтчета;
       ПострОтчета.ВыбранныеПоля.Очистить();
       ПострОтчета.Порядок.Очистить();
       ПострОтчета.ИзмеренияСтроки.Очистить();
       ПострОтчета.ИзмеренияКолонки.Очистить();    
       ПострОтчета.ИзмеренияСтроки.Добавить(ПострОтчета.ДоступныеПоля.Номенклатура.ПутьКДанным,,ТипИзмеренияПостроителяОтчета.Элементы);
       ПострОтчета.ИзмеренияСтроки.Добавить(ПострОтчета.ДоступныеПоля.ЗаказПоставщику.ПутьКДанным,,ТипИзмеренияПостроителяОтчета.Элементы);
       
       ФормаОтчета.ОбновитьОтчет();
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший