Имя: Пароль:
1C
1С v8
Открыть форму внешнего отчета СКД
0 Anabella
 
17.03.15
19:51
Вопроса у меня, наверно, сразу два.
Идея отчета в следующем: открываем внешний отчет, на форме у него кнопочка. Пользователь настраивает период и отбор, формирует отчет. Затем нажимает на кнопочку, и нужно программно переключиться на другой вариант отчета и сформировать его, передав период вместе с отбором. Вот такой получился код кнопки:

&НаСервере
Процедура СформироватьГрафикСравненияНаСервере(Результат)
    Результат.Очистить();
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    
    Схема = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    Варианты = Схема.ВариантыНастроек;
    Настройки1 = Схема.ВариантыНастроек[1].Настройки;

    Дата1 = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение.ДатаНачала;
    Дата2 = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение.ДатаОкончания;     
    
    КомпоновщикНастроекДанных = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроекДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема));
    КомпоновщикНастроекДанных.ЗагрузитьНастройки(Схема.НастройкиПоУмолчанию);
    КомпоновщикНастроекДанных.ЗагрузитьНастройки(Настройки1);
        
    КомпоновщикНастроекДанных.Настройки.ПараметрыДанных.Элементы[4].Значение.ДатаНачала    = Дата1;
    КомпоновщикНастроекДанных.Настройки.ПараметрыДанных.Элементы[4].Значение.ДатаОкончания = Дата2;
    КомпоновщикНастроекДанных.Настройки.ПараметрыДанных.Элементы[4].Использование = Истина;
    
    КомпоновщикНастроекДанных.ПользовательскиеНастройки.Элементы[0].Значение.ДатаНачала = Дата1;
    КомпоновщикНастроекДанных.ПользовательскиеНастройки.Элементы[0].Значение.ДатаОкончания = Дата2;
    КомпоновщикНастроекДанных.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакета.Выполнить(Схема, КомпоновщикНастроекДанных.ПолучитьНастройки());
    //Макет.ЗначенияПараметров.Дата1.Значение = Дата1.Значение.Дата;
    //Макет.ЗначенияПараметров.Дата2.Значение = Дата2.Значение.Дата;

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

    Элементы.Результат.ОтображениеСостояния.Видимость = Ложь;
    Элементы.Результат.ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.НеИспользовать;

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

Даты не устанавливаются, хоть тресни ( Все значения присваиваются верно, но на моменте ПроцессорВывода.Вывести(ПроцессорКомпоновки) формируется макет с ошибкой. Что я делаю не так ?

В обход проблемы решила программно открыть форму с нужным вариантом, программно же назначить параметры и передать. И здесь проблема:
В переменную Вариант я передаю нужный вариант отчета, но на моменте ПолучитьФорму в параметре "КлючТекущегоВарианта" стоит исходный вариант отчета, и в итоге ничего не меняется.

Вариант = СтруктураВариантов(ВидОтчета);
    КлючВарианта       = Новый Структура;
    КлючВарианта.Вставить("КлючВарианта", Вариант.Имя);
    //ОткрытьФорму("ВнешнийОтчет.Продажи10.Форма.ФормаОтчета");
    Форма              = ПолучитьФорму("ВнешнийОтчет.Продажи10.Форма.ФормаОтчета", КлючВарианта,ЭтаФорма);
    
Помогите найти ошибки, пожалуйста :(
1 Anabella
 
18.03.15
09:39
ап
2 Timon1405
 
18.03.15
09:50
можно попробовать в ПолучитьФорму 4м параметром передать
Новый УникальныйИдентификатор
3 Anabella
 
18.03.15
11:03
(2) попробовала, без изменений :(
Почему, блин, у меня не работает даже то, что работает у всех!
4 D_E_S_131
 
18.03.15
11:25
(3) Потому что ты котик.
5 Anabella
 
18.03.15
11:30
(4)Как я не додумалась ) А может всё-таки можно решить эту проблему программно, без привязки к котику ?)
6 Anabella
 
18.03.15
11:32
А вообще как это работает? Может, дело в том, что я открываю форму открытой формы ? Но как мне тогда программно открыть вариант отчета?
7 Anabella
 
18.03.15
11:34
(4) от котика слышу :)
8 Anabella
 
18.03.15
13:20
ап