Здравствуйте! Подскажите пожалуйста,
в конфигурации есть обработка, в ней есть кнопка, по которой идет обращение к отчету (он внутренний, в базе конфигурации) и выводится табличный документ.
Отчет я переделала (грубо - было по всей номенклатуре, стало - по выбранной номенклатуре), подключила его внешним.
теперь надо обработку переделать, и не знаю, как обратиться к внешнему
Я взяла форму в расширение и процедуру по кнопке
потом обращение на сервер
и там, База у нас серверная, значит исполняется
РезультатВыполнения = ТиповыеМетодыСервер.ЗапуститьВыполнениеВФоне(
УникальныйИдентификатор,
"Отчеты.СведенияОЗадолженностяхФорма_.СформироватьОтчет",
ПараметрыОтчета,
ТиповыеМетодыКлиентСервер.ПолучитьНаименованиеЗаданияВыполненияОтчета(ЭтотОбъект));
АдресХранилища = РезультатВыполнения.АдресХранилища;
ИдентификаторЗадания = РезультатВыполнения.ИдентификаторЗадания;
Ну т.е. как запустить отчет внешний, зарегистрированный в ДополнительныеОтчетыИОбработки.
в конфигурации есть обработка, в ней есть кнопка, по которой идет обращение к отчету (он внутренний, в базе конфигурации) и выводится табличный документ.
Отчет я переделала (грубо - было по всей номенклатуре, стало - по выбранной номенклатуре), подключила его внешним.
теперь надо обработку переделать, и не знаю, как обратиться к внешнему
Я взяла форму в расширение и процедуру по кнопке
&НаКлиенте
Процедура Расш1_ОтчетСведенияОЗадолженностиФормаВместо(Команда)
ВнешнийОтчетОбработкаДляОткрытияСсылка = ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере ("Сведения о задолженностях, Форма 3");
ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);
ТекущийЛС = Элементы.Должники.ТекущиеДанные.ЛицевойСчет;
Расш1_ОбновитьСведенияОЗадолженностиФорма3_(ТекущийЛС, ВнешнийОтчетОбработкаДляОткрытияСсылка);
Элементы.ИсторияРаботы.ТекущаяСтраница = Элементы.СтраницаОтчеты;
КонецПроцедуры
&НаСервере
Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
КонецФункции
Показатьпотом обращение на сервер
и там, База у нас серверная, значит исполняется
РезультатВыполнения = ТиповыеМетодыСервер.ЗапуститьВыполнениеВФоне(
УникальныйИдентификатор,
"Отчеты.СведенияОЗадолженностяхФорма_.СформироватьОтчет",
ПараметрыОтчета,
ТиповыеМетодыКлиентСервер.ПолучитьНаименованиеЗаданияВыполненияОтчета(ЭтотОбъект));
АдресХранилища = РезультатВыполнения.АдресХранилища;
ИдентификаторЗадания = РезультатВыполнения.ИдентификаторЗадания;
Ну т.е. как запустить отчет внешний, зарегистрированный в ДополнительныеОтчетыИОбработки.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
запустить отчет внешний, зарегистрированный в ДополнительныеОтчетыИОбработки.
&НаСервереБезКонтекста
Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
КонецФункции
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаДопОтчет,"Наименование");
ВыполняемаяКоманда = Новый Структура;
ВыполняемаяКоманда.Вставить("ВариантЗапуска", ПредопределенноеЗначение("Перечисление.СпособыВызоваДополнительныхОбработок.ОткрытиеФормы"));
ВыполняемаяКоманда.Вставить("Вид", ПредопределенноеЗначение("Перечисление.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет"));
ВыполняемаяКоманда.Вставить("Идентификатор", "СформироватьОтчет");
ВыполняемаяКоманда.Вставить("Модификатор", "");
ВыполняемаяКоманда.Вставить("ПоказыватьОповещение", Ложь);
ВыполняемаяКоманда.Вставить("ОбъектыНазначения", Неопределено);
ВыполняемаяКоманда.Вставить("Представление", Представление);
ВыполняемаяКоманда.Вставить("Ссылка", СсылкаНаДопОтчет);
ВыполняемаяКоманда.Вставить("ЭтоОтчет", Истина);
ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОткрытиеФормыОбработки(ВыполняемаяКоманда, ЭтаФорма, Неопределено);
Показать
(6)
СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(<Наименование>);
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
ЗначениеИзОбработки = Обработка.<ВашаЭкспортнаяФункция>(<ПараметрыВызова>);
(7)
очень хорошо, но Метод объекта не обнаружен (СформироватьМодульОтчет)
в модуле внешней обработки
СформироватьМодульОтчет(ПараметрыОтчета, АдресХранилища) Экспорт
но, это процедура из Модуля менеджера для внутреннего отчета.
может это связано с СведенияОВнешнейОбработке()
в модуле отчета // Процедура формирует отчет.
СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию();
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
ЗначениеИзОбработки = Обработка.();
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОбработки.Создать(ИмяФайла);
ЗначениеИзОбработки = Обработка.();
очень хорошо, но Метод объекта не обнаружен (СформироватьМодульОтчет)
в модуле внешней обработки
СформироватьМодульОтчет(ПараметрыОтчета, АдресХранилища) Экспорт
но, это процедура из Модуля менеджера для внутреннего отчета.
может это связано с СведенияОВнешнейОбработке()
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Сведения о задолженностях форма 3 по лицевым счетам'");
НоваяКоманда.Идентификатор = "СведенияОЗадолженностяхПоЛСФорма3";
НоваяКоманда.Использование = МодульДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Ложь;
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,"КоммандаВыполнитьОбработку","КоммандаВыполнитьОбработку", "ВызовСерверногоМетода", Ложь,"Выполнить");
Показатьв модуле отчета // Процедура формирует отчет.
Процедура СформироватьМодульОтчет(ПараметрыОтчета, АдресХранилища) Экспорт
(7)
СсылкаНаОбъект Сведения о задолженностях, Форма 3 СправочникСсылка.ДополнительныеОтчетыИОбработки
Вид Дополнительный отчет ПеречислениеСсылка.ВидыДополнительныхОтчетовИОбработок
поэтому поменяла на ВнешниеОтчеты
Сделала так - и пусто, данные "Обработка.СформироватьМодульОтчет" - никуда не попадают
А по заслешеному - РезультатВыполения = Обработка.СформироватьМодульОтчет - ошибка обращение к процедуре как к функции.
СсылкаНаОбъект Сведения о задолженностях, Форма 3 СправочникСсылка.ДополнительныеОтчетыИОбработки
Вид Дополнительный отчет ПеречислениеСсылка.ВидыДополнительныхОтчетовИОбработок
поэтому поменяла на ВнешниеОтчеты
//РезультатВыполнения = УПЖКХ_ТиповыеМетодыСервер.ЗапуститьВыполнениеВФоне(
// УникальныйИдентификатор,
// "Отчеты.КВП_СведенияОЗадолженностяхФорма3_.СформироватьОтчет",
// ПараметрыОтчета,
// УПЖКХ_ТиповыеМетодыКлиентСервер.ПолучитьНаименованиеЗаданияВыполненияОтчета(ЭтотОбъект));
СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Сведения о задолженностях, Форма 3");
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
Обработка = ВнешниеОтчеты.Создать(ИмяФайла);
//РезультатВыполнения =
//Обработка.СформироватьМодульОтчет(ПараметрыОтчета, АдресХранилища);
РезультатВыполнения = УПЖКХ_ТиповыеМетодыСервер.ЗапуститьВыполнениеВФоне(
УникальныйИдентификатор,
"Обработка.СформироватьМодульОтчет",
ПараметрыОтчета,
УПЖКХ_ТиповыеМетодыКлиентСервер.ПолучитьНаименованиеЗаданияВыполненияОтчета(ЭтотОбъект));
АдресХранилища = РезультатВыполнения.АдресХранилища;
ИдентификаторЗадания = РезультатВыполнения.ИдентификаторЗадания;
ПоказатьСделала так - и пусто, данные "Обработка.СформироватьМодульОтчет" - никуда не попадают
А по заслешеному - РезультатВыполения = Обработка.СформироватьМодульОтчет - ошибка обращение к процедуре как к функции.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот