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