Dev ›
Программное открытие отчета СКД без формы с передачей параметров ›
#32
13.10.23 16:50
Сделал рабочий код с текущим вариантом отчета:
Проверял работу на УТ 11.4
//Данные не передавал, стояла задача просто открыть отчет с текущим вариантом отчета.
Код |
---|
&НаКлиенте
Процедура НеотгруженныеОрдера(Команда)
КомандаОткрытьВнешнийОтчет("\\192.168.0.3\Отчеты\Другие отчеты\НеотгруженныеОрдера.erf");
КонецПроцедуры
&НаКлиенте
Процедура КомандаОткрытьВнешнийОтчет(Путь)
ОписаниеОповещения = Новый ОписаниеОповещения("ПоместитьФайлВХранилищеЗавершениеОтчет", ЭтотОбъект);
НачатьПомещениеФайла(ОписаниеОповещения, , Путь, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ПоместитьФайлВХранилищеЗавершениеОтчет(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
РезЗапроса = ПодключитьВнешнийОтчетНаСервереОтчет(Адрес);
ИмяОтчета = РезЗапроса.ИмяОтчета;
КлючВарианта = РезЗапроса.ВариантОтчета;
ПараметрыОткрытия = Новый Структура("КлючВарианта", КлючВарианта);
Уникальность ="ВнешнийОтчет." + ИмяОтчета;
ОткрытьФорму("ВнешнийОтчет." + ИмяОтчета + ".Форма", ПараметрыОткрытия, Неопределено, Уникальность)
КонецПроцедуры
&НаСервере
Функция ПодключитьВнешнийОтчетНаСервереОтчет(АдресХранилища)
результат = Новый Структура;
ИмяОтчета = ВнешниеОтчеты.Подключить(АдресХранилища);
ВариантыОтчета = ХранилищеВариантовОтчетов.ПолучитьСписок("Отчет."+ИмяОтчета);
КлючОбъекта = "ВнешнийОтчет."+ИмяОтчета+"/КлючТекущегоВарианта";
ВариантОтчета = ОбщегоНазначения.ХранилищеСистемныхНастроекЗагрузить(КлючОбъекта, "");
Мт = ВариантыОтчета.НайтиПоЗначению(ВариантОтчета);
Если МТ <> Неопределено Тогда
ВариантОтчета = МТ.Представление;
КонецЕсли;
результат.Вставить("ИмяОтчета",ИмяОтчета);
результат.Вставить("ВариантОтчета",ВариантОтчета);
Возврат Результат;
КонецФункции
&НаСервереБезКонтекста
Функция ПолучитьПользовательскиеНастройки(ВнешнийОтчетОбработкаДляОткрытияСсылка);
КомпоновщикНастроек=ДополнительныеОтчетыИОбработкиВызовСерве<wbr>ра.ОбъектВнешнейОбработки(ВнешнийОтчетОбработкаДляОткрытияСсылка).КомпоновщикНастроек;
Настройки=КомпоновщикНастроек.ПолучитьНастройки();
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачПериода",НачалоДня(ТекущаяДата()));
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонПериода",КонецДня(ТекущаяДата()));
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Возврат КомпоновщикНастроек.ПользовательскиеНастройки;
КонецФункции
|