Связь расширение-внешний отчет

1. XelOla 17 07.04.21 13:59 Сейчас в теме
Здравствуйте! Подскажите пожалуйста,
в конфигурации есть обработка, в ней есть кнопка, по которой идет обращение к отчету (он внутренний, в базе конфигурации) и выводится табличный документ.
Отчет я переделала (грубо - было по всей номенклатуре, стало - по выбранной номенклатуре), подключила его внешним.
теперь надо обработку переделать, и не знаю, как обратиться к внешнему
Я взяла форму в расширение и процедуру по кнопке
&НаКлиенте
Процедура Расш1_ОтчетСведенияОЗадолженностиФормаВместо(Команда)
	ВнешнийОтчетОбработкаДляОткрытияСсылка = ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере ("Сведения о задолженностях, Форма 3");	
	ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);

	ТекущийЛС = Элементы.Должники.ТекущиеДанные.ЛицевойСчет;
	Расш1_ОбновитьСведенияОЗадолженностиФорма3_(ТекущийЛС, ВнешнийОтчетОбработкаДляОткрытияСсылка);
	Элементы.ИсторияРаботы.ТекущаяСтраница = Элементы.СтраницаОтчеты;
	
КонецПроцедуры
&НаСервере
Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
    Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
КонецФункции
Показать



потом обращение на сервер
и там, База у нас серверная, значит исполняется
РезультатВыполнения = ТиповыеМетодыСервер.ЗапуститьВыполнениеВФоне(
УникальныйИдентификатор,

"Отчеты.СведенияОЗадолженностяхФорма_.СформироватьОтчет",
ПараметрыОтчета,
ТиповыеМетодыКлиентСервер.ПолучитьНаименованиеЗаданияВыполненияОтчета(ЭтотОбъект));

АдресХранилища = РезультатВыполнения.АдресХранилища;
ИдентификаторЗадания = РезультатВыполнения.ИдентификаторЗадания;

Ну т.е. как запустить отчет внешний, зарегистрированный в ДополнительныеОтчетыИОбработки.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Torin 744 07.04.21 14:36 Сейчас в теме
(1)
запустить отчет внешний, зарегистрированный в ДополнительныеОтчетыИОбработки.


&НаСервереБезКонтекста
Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
    Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
КонецФункции
5. XelOla 17 07.04.21 15:07 Сейчас в теме
(2) меня отвлекли
я не дописала, что "Отчеты.СведенияОЗадолженностяхФорма_.СформироватьОтчет" - выполняется экспортная процедура из модуля менеджера.
т е как не только запустиь внешний, но и получить из него результат выполнения?
3. UtSpar 134 07.04.21 14:37 Сейчас в теме
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаДопОтчет,"Наименование");
    ВыполняемаяКоманда = Новый Структура;
    ВыполняемаяКоманда.Вставить("ВариантЗапуска",  ПредопределенноеЗначение("Перечисление.СпособыВызоваДополнительныхОбработок.ОткрытиеФормы"));
    ВыполняемаяКоманда.Вставить("Вид",  ПредопределенноеЗначение("Перечисление.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет"));
    ВыполняемаяКоманда.Вставить("Идентификатор",  "СформироватьОтчет");
    ВыполняемаяКоманда.Вставить("Модификатор",  "");
    ВыполняемаяКоманда.Вставить("ПоказыватьОповещение",  Ложь);
    ВыполняемаяКоманда.Вставить("ОбъектыНазначения",  Неопределено);
    ВыполняемаяКоманда.Вставить("Представление",  Представление);
    ВыполняемаяКоманда.Вставить("Ссылка",  СсылкаНаДопОтчет);
    ВыполняемаяКоманда.Вставить("ЭтоОтчет",  Истина);
    
    ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, ЭтаФорма, Неопределено);
Показать
4. UtSpar 134 07.04.21 14:38 Сейчас в теме
(3)Ссылка на отчет по наименованию
Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
6. XelOla 17 07.04.21 15:26 Сейчас в теме
(3) не просто запустить внешний - а запустить его процедуру, чтобы получить Результат
7. vadim.semyonov.rzn 07.04.21 17:06 Сейчас в теме
(6)
СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(<Наименование>);
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
ЗначениеИзОбработки = Обработка.<ВашаЭкспортнаяФункция>(<ПараметрыВызова>);
8. XelOla 17 07.04.21 23:09 Сейчас в теме
(7)насервере или клиенте? завтра пробовать буду
11. vadim.semyonov.rzn 08.04.21 14:34 Сейчас в теме
(8)
насервере или клиенте?
Вот эта строчка:
Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию
ни о чем не говорит? На сервере, естественно.
9. XelOla 17 07.04.21 23:09 Сейчас в теме
(7) экспортная в модуле формы или объекта?
12. vadim.semyonov.rzn 08.04.21 14:35 Сейчас в теме
(9)
экспортная в модуле формы или объекта?
По "ВнешниеОбработки.Создать" создается объект обработки, а не ее форма.
13. XelOla 17 20.04.21 16:28 Сейчас в теме
(7)
СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию();
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
ЗначениеИзОбработки = Обработка.();


очень хорошо, но Метод объекта не обнаружен (СформироватьМодульОтчет)
в модуле внешней обработки
СформироватьМодульОтчет(ПараметрыОтчета, АдресХранилища) Экспорт

но, это процедура из Модуля менеджера для внутреннего отчета.

может это связано с СведенияОВнешнейОбработке()

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

в модуле отчета // Процедура формирует отчет.
Процедура СформироватьМодульОтчет(ПараметрыОтчета, АдресХранилища) Экспорт
14. XelOla 17 20.04.21 16:42 Сейчас в теме
(7)
СсылкаНаОбъект Сведения о задолженностях, Форма 3 СправочникСсылка.ДополнительныеОтчетыИОбработки
Вид Дополнительный отчет ПеречислениеСсылка.ВидыДополнительныхОтчетовИОбработок
поэтому поменяла на ВнешниеОтчеты
//РезультатВыполнения = УПЖКХ_ТиповыеМетодыСервер.ЗапуститьВыполнениеВФоне(
		//	УникальныйИдентификатор,
		//	"Отчеты.КВП_СведенияОЗадолженностяхФорма3_.СформироватьОтчет",
		//	ПараметрыОтчета,
		//	УПЖКХ_ТиповыеМетодыКлиентСервер.ПолучитьНаименованиеЗаданияВыполненияОтчета(ЭтотОбъект));
	
	СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Сведения о задолженностях, Форма 3");
	ИмяФайла = ПолучитьИмяВременногоФайла();
	ДвоичныеДанные = СсылкаНаОбъект.ХранилищеОбработки.Получить();
	ДвоичныеДанные.Записать(ИмяФайла);
	Обработка = ВнешниеОтчеты.Создать(ИмяФайла);
	
	//РезультатВыполнения = 
	//Обработка.СформироватьМодульОтчет(ПараметрыОтчета, АдресХранилища);
	РезультатВыполнения = УПЖКХ_ТиповыеМетодыСервер.ЗапуститьВыполнениеВФоне(
			УникальныйИдентификатор,
			"Обработка.СформироватьМодульОтчет",
			ПараметрыОтчета,
			УПЖКХ_ТиповыеМетодыКлиентСервер.ПолучитьНаименованиеЗаданияВыполненияОтчета(ЭтотОбъект));
		АдресХранилища       = РезультатВыполнения.АдресХранилища;
		ИдентификаторЗадания = РезультатВыполнения.ИдентификаторЗадания;
Показать

Сделала так - и пусто, данные "Обработка.СформироватьМодульОтчет" - никуда не попадают
А по заслешеному - РезультатВыполения = Обработка.СформироватьМодульОтчет - ошибка обращение к процедуре как к функции.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот