Вход | Регистрация
 

Открыть форму внешнего отчета из Дополнительных отчетов и обработок

Открыть форму внешнего отчета из Дополнительных отчетов и обработок
Я
   pumba055
 
19.04.21 - 17:05
Коллеги, добрый день!
Интересная штука. У меня есть отчет во внешних отчетах и обработках.

Я его вызываю программно с передачей параметров-->

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

Все хорошо, он открывается, но только если я заново перезаходу в предприятие, то он уже не открывается --> не известное имя формы пишет...
Приходится заново заходить во внешние отчеты и его заново перевыбирать и перерегистрировать, тогда он заработает, но это же не выход...
   polosov
 
1 - 19.04.21 - 17:26
Общий модуль ДополнительныеОтчетыИОбработки смортел?
   acht
 
2 - 19.04.21 - 17:27
Потому что при регистрации он подключается (не в базу, а в платформе, при помощи ВнешниеОтчеты.Подключить) с именем по умолчанию, которое берется из его метаданных. Это приводит к "кэшированию" и неявно позволяет работать твоему изврату с "ОткрытьФорму("ВнешнийОтчет.ЦветаСотрудника" без подключения внешнего отчета. При новом сеансе, оно естественно ничего про соответствие имени "ЦветаСотрудника" и тушки отчета не знает.

Так что давай, делай все по человечески - тушку отчета на диск, подключение самостоятельно, открытие формы самостоятельно.

Ну и (1) где в потрохах тоже самое
   Kassern
 
3 - 19.04.21 - 17:35
попробуй так.
ПараметрыЗапуска = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СсылкаНаВнешнийОтчет, "БезопасныйРежим, ХранилищеОбработки");
ИмяОтчета = ВнешниеОтчеты.Подключить(АдресВоВременномХранилище, , БезопасныйРежим);
ОткрытьФорму("ВнешнийОтчет." + ИмяОтчета + ".Форма", ПолученныеДанные.ПараметрыФормы, ЭтаФорма);
   Kassern
 
4 - 19.04.21 - 17:52
(3) строчку пропустил)
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыЗапуска.ХранилищеОбработки.Получить())

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.