Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:44

Как открыть внешний отчет из другого внешнего отчета?

Автор MKozzlik, 24 янв 2013, 12:54

0 Пользователей и 2 гостей просматривают эту тему.

MKozzlik

Здравствуйте!
Имеется внешний отчет, при нажатии на ячейку на печатной форме должен открываться другой внешний отчет, и надо еще как-то передать параметры из одного отчета в другой. Платформа 8.1, может кто-нибудь сталкивался с таким?

Klyacksa

Используйте ОбработкуРасшифровки первого отчета, и открывайте по ней все, что хотите. Параметры передавать можно по-разному. Если это реквизиты первой обработки, то можно назначить ее владельцем второй, и обращаться как ВтораяОбработка.Владелец.НужныеРеквизитВладельца.
Или создать реквизиты во второй обработке, и при ее создании (до открытия и формирования), в той же обработке расшифровки заполнить эти реквизиты.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

MKozzlik

В обработке расшифровки прописываю такой код

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

ЗапускаемаяОбработка = Справочники.ВнешниеОбработки.НайтиПоКоду("Ц00000017", Истина);
ЗапускаемаяОбработка.ПолучитьФорму().Открыть();

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


Открывается форма "Регистрация внешнего отчета", а мне надо Именно форму отчета. если пишу так: ЗапускаемаяОбработка.ПолучитьФорму("ФормаОтчета").Открыть();  выдается ошибка

Klyacksa

СтандартнуюОБработку отмените.
Потому что получаете не форму самой обработки, а форму элемента справочника с кодом "Ц00000017". Чтобы открыть саму обработку, посмотрите как работает справочник. Откройте форму элемента справочника, там наверняка есть кнопочка по запуску/открытию обработки, посмотрите, как там это делается и что где хранится.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

MKozzlik

Спасибо! Открыть форму получилось, но мне еще надо передать параметры во внешнюю обработку и запустить выполнение процедуры, чтобы при открытии второй внешней обработки на форме в табличном поле сформировался отчет, пишу такой код, это в первой обработке из которой открываю:
СсылкаНаОбъект = Справочники.ВнешниеОбработки.НайтиПоКоду("Ц00000017");

ЭтоОтчет = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет, Истина, Ложь);

Если НЕ ЭтоОтчет Тогда
  Возврат;
КонецЕсли;

ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);

ВнешнийОтчет = ВнешниеОтчеты.Создать(ИмяФайла);
ВнешнийОтчет.НачПериода = НачПериода;
ВнешнийОтчет.КонПериода = КонПериода;
ВнешнийОтчет.Менеджер = Менеджер;
ВнешнийОтчет.Организация = Организация;
ВнешнийОтчет.Подразделение = Подразделение;
ВнешнийОтчет.Склад = Склад;
ВнешнийОтчет.СформироватьОтчет();

Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла);

Если Не Форма = Неопределено Тогда
  Форма.ОткрытьМодально();
Иначе
  Сообщить("Форма открываемой обработки или отчета не определена.", СтатусСообщения.БезСтатуса);
КонецЕсли;

УдалитьФайлы(ИмяФайла);


Параметры передаются, функция вроде как выполняется, но на форме табличное поле пустое! (НачПериода, КонПериода, Организация, Подразделение, Склад - это реквизиты отчета)

Klyacksa

Получаете форму от нового экземпляра отчета, а не от того, который формировали. Поэтому и пустые поля!
Попробуйте открыть как
Форма = ВнешнийОтчет.ПолучитьФорму();
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

MKozzlik

Если пробую так

Форма = ВнешнийОтчет.ПолучитьФорму();

то ругается, выдает ошибку:

{Форма.ФормаОтчета.Форма(353)}: Недостаточно фактических параметров
   Форма = ВнешниеОтчеты.ПолучитьФорму();

Klyacksa

Так в ошибке так и осталось "ВнешниеОтчеты"
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

MKozzlik

Ой, простите, да действительно, сейчас все получилось!

Nitro

MKozzlik, Подскажите как открыть управляемую форму с этим отчетом?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск