Друзья!Помогите!
Есть отчет1, по нажатию на ячейку должен открываться другой отчет который расшифровывает.
Не получается передать Параметры отчета1 (ДатаНачала,ДатаОкончания) и отбор по значению в отчет2.
Как передать параметры и отбор? Как программно сформировать отчет?
Вот что пишу:
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля().Найти("НомерВагона") <> Неопределено Тогда
//Откроем форму отчета "ДвижениеВагонаПоПредприятию"
ДатаНачалаПростой = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение;
ДатаОкончанияПростой = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение;
ЗначениеПоляНомерВагонаПростой = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0].Значение;
Отчет = Отчеты.КФЗОтчетПоДвижениюВагоновПоПредприятию.Создать();
ДатаНачала = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2];
ДатаНачала.Значение = ДатаНачалаПростой;
ДатаНачала.Использование = Истина;
ДатаОкончания = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1];
ДатаОкончания.Значение = ДатаОкончания;
ДатаОкончания.Использование = Истина;
НомерВагона = Отчет.КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы[0];
НомерВагона.ПравоеЗначение = ЗначениеПоляНомерВагонаПростой;
НомерВагона.Использование = Истина;
Отчет.ПолучитьФорму("ФормаОтчета").Открыть();
КонецЕсли;
КонецПроцедуры
Изучайте модуль ТиповыеОтчеты в любой типовой.
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
Перем ВыполненноеДействие;
// Запретим стандартную обработку расшифровки
СтандартнаяОбработка = Ложь;
// Создадим и инициализируем обработчик расшифровки
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
Если ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля().Найти("НомерВагона") <> Неопределено Тогда
ДоступныеДействия = Новый Массив();
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать);
// Осуществим выбор действия расшифровки пользователем
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие, ДоступныеДействия);
Если Настройки <> Неопределено Тогда
// Пользователь выбрал действие, для которого нужно менять настройки
Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать Тогда
// При других действиях - создадим новый отчет, откроем форму, сформируем отчет в ней
Отчет = Отчеты.КФЗОтчетРасшифровкаПростоя.Создать();
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Форма = Отчет.ПолучитьФорму();
Форма.Открыть();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
ТиповыеОтчеты.СтандартнаяОбработкаРасшифровкиТиповогоОтчета(ЭтотОбъект,ЭтаФорма,Расшифровка,Ложь);
КонецПроцедуры
Процедура СтандартнаяОбработкаРасшифровкиТиповогоОтчета(ОтчетОбъект, ФормаОтчета, Расшифровка, СтандартнаяОбработка) Экспорт
Перем ВыполненноеДействие;
// Запретим стандартную обработку расшифровки
СтандартнаяОбработка = Ложь;
// Создадим и инициализируем обработчик расшифровки
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ФормаОтчета.ДанныеРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(ПолучитьСхемуКомпоновкиОбъекта(ОтчетОбъект)));
ДоступныеДействия=Новый Массив; // заполняем доступные действия, если параметр не указан, то будут доступны все действия
ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать); //Дописал
// Осуществим выбор действия расшифровки пользователем
Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие,ДоступныеДействия);
Если Настройки <> Неопределено Тогда
// Пользователь выбрал действие, для которого нужно менять настройки
Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить Тогда
// Если требется упорядочить - упорядочим в текущем отчете
ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ФормаОтчета.ОбновитьОтчет();
Иначе
НовыйОтчет = Отчеты[ОтчетОбъект.Метаданные().Имя].Создать();
ЗаполнитьЗначенияСвойств(НовыйОтчет, ОтчетОбъект, , "СохраненнаяНастройка");
НовыйОтчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ФормаНовогоОтчета = НовыйОтчет.ПолучитьФорму();
НазначитьФормеУникальныйКлючИдентификации(ФормаНовогоОтчета);
ФормаНовогоОтчета.ЭтоОтработкаРасшифровки = Истина;
Если Не ЭтоСтараяВерсияОтчета(ОтчетОбъект) Тогда
ФормаНовогоОтчета.РежимРедактированияНастройки = Истина;
ФормаНовогоОтчета.ПредставлениеНастройки = НСтр("ru='Расшифровка ';uk='Розшифровка '", ЛокализацияПовтИсп.ПолучитьЯзыкФормированияПечатныхФормОтчетов()) + Символы.ПС + ОтчетОбъект.СохраненнаяНастройка;
КонецЕсли;
ФормаНовогоОтчета.Открыть();
ФормаНовогоОтчета.ОбновитьОтчет();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Сделал вот так, вроде получил то что хотел.
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПериодНачалоПростой = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение;
ПериодОкончанияПростой = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].Значение;
НомерВагонаПростой =ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля()[0].Значение;
ОтчетРасшифровка = Отчеты.КФЗОтчетРасшифровкаПростоя.Создать();
ОтчетРасшифровка.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодНачало",ПериодНачалоПростой);
ОтчетРасшифровка.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодОкончания",ПериодОкончанияПростой);
ОтчетРасшифровка.КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = НомерВагонаПростой;
ОтчетРасшифровка.КомпоновщикНастроек.Настройки.Отбор.Элементы[0].Использование = Истина;
ФормаРасшифровки = ОтчетРасшифровка.ПолучитьФорму("ФормаОтчета");
ФормаРасшифровки.Открыть();
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua