Имя: Пароль:
1C
1С v8
Программный запуск отчета (УТ 11, СКД)
0 bestuzhev
 
07.12.14
12:49
Нужно программно выполнить отчет Расчеты С Клиентами.
При этой нужно установить нужные период у отчета.

Имеем следующий код:

ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);        
        
Форма = ПолучитьФорму("Отчет.РасчетыСКлиентами.Форма", ПараметрыФормы);
        
Параметр = Форма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Период");
Если Параметр <> Неопределено Тогда        
    Параметр.Значение.ДатаНачала = Отчет.ДатаНачала;
    Параметр.Значение.ДатаОкончания = Отчет.ДатаОкончания;
    Параметр.Использование = Истина;    
    ПользовательскийПараметр = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Параметр.ИдентификаторПользовательскойНастройки);        
    Если ПользовательскийПараметр <> Неопределено Тогда
        ПользовательскийПараметр.Значение = Параметр.Значение;                    
    КонецЕсли;      
КонецЕсли;  
Форма.ВариантМодифицирован = Ложь;
        
Форма.Открыть();

Есть только 2 проблемы которые не могу решить.
1) После установки параметров (в часности периода) перестает отрабатываться СформироватьПриОткрытии, т.е. форма открывается но отчет не формируется, надо наживать кнопку.
2) Отчет формируется за выбранные период, но при этом на форме отображается период совсем не этот, а тот что был при предыдущем формировании отчета.

Подскажите плиз, уже голову сломал.
1 ДенисЧ
 
07.12.14
13:23
А дядя-отладчик что говорит?
2 bestuzhev
 
07.12.14
13:41
(1) А что именно искать в дяде отладчике?
3 ДенисЧ
 
07.12.14
13:46
(2) ну например, посмотреть что происходит ПриОткрытии и почему не срабатывает твой метод.
Ибо он не предопределённый, насколько я помню, поэтому должен быть его вызов.
4 bestuzhev
 
07.12.14
14:41
(3) нету у отчета формы переда предельной, отчет типовой в ут 11
5 Поpyчик-4
 
07.12.14
16:04
(0) Неправильно Форма.Открыть();
Надо

ОткрытьФорму(Форма);
6 Reaper_1c
 
07.12.14
16:22
(0)Нужно сформировать корректные пользовательские настройки компоновки и передать их форме как параметр. Не нужно при разработке управляемого приложения пытаться менять поведение объектов извне. Все поведение должно быть описано внутри объекта и изменяться в зависимости от полученных объектом параметров.
7 bestuzhev
 
07.12.14
17:29
(6) А примерчик можно?
8 bestuzhev
 
07.12.14
19:32
(6) Как называется это параметр?
Закон Брукера: Даже маленькая практика стоит большой теории.