|
Как открыть форму внешнего отчета? | ☑ | ||
---|---|---|---|---|
0
Rizhij_Nikitos
29.10.17
✎
12:53
|
Ситуация такая: нужно программно открыть форму внешнего отчета, но формы нет. Собственно исходные: УТ 11.2.3.84 на базе 8.3.8.1652. Получаю ссылку на внешний отчет, который уже добавлен в список дополнительных отчетов обработок, беру двоичные данные, пишу во временный файл, помещаю в хранилище, подключаю через
ВнешниеОтчеты.Подключить(АдресХранилища) Беру имя обработки, открываю через ОткрытьЗначение("ВнешняяОбработка."+ ИмяОбработки+".Форма.Форма") Проблема в том, что форм в отчете нет, а в качестве основной формы выбрана общая форма отчетов конфы, соответственно при всех попытках получаю что имя формы невалидно. Как быть? |
|||
1
jsmith82
29.10.17
✎
12:55
|
Скопируй основную форму отчёта в формы отчёта и назначь эту форму основной формой отчёта.
|
|||
2
jsmith82
29.10.17
✎
12:56
|
А в форме настроек укажи Форму настроек отчёта (типовую).
|
|||
3
Rizhij_Nikitos
29.10.17
✎
12:56
|
(1) тестирую, спасибо. Сейчас отпишусь
|
|||
4
banco
29.10.17
✎
12:58
|
(0) а просто ОткрытьЗначение("ВнешняяОбработка."+ ИмяОбработки) не работает?
|
|||
5
Rizhij_Nikitos
29.10.17
✎
12:59
|
(4) показывает строку
|
|||
6
Rizhij_Nikitos
29.10.17
✎
13:01
|
(2) Тот же результат:
Неизвестное имя формы. Имя: "ВнешняяОбработка.ПрайсЛист8.Форма" |
|||
7
Rizhij_Nikitos
29.10.17
✎
13:03
|
Я не тот кусок в условии немного скопировал, открываю через
ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки+".Форма"); |
|||
8
jsmith82
29.10.17
✎
13:04
|
Какая форма?!
|
|||
9
jsmith82
29.10.17
✎
13:04
|
Форма.ФормаОтчета
|
|||
10
jsmith82
29.10.17
✎
13:05
|
И почему подключаешь внеш. отчет, а открываешь обработку.
|
|||
11
Rizhij_Nikitos
29.10.17
✎
13:05
|
(9) Это уже последняя ошибка. Проверил с
Форма Форма.Форма ФормаОтчета.Форма Форма.ФормаОтчета |
|||
12
Rizhij_Nikitos
29.10.17
✎
13:06
|
(10)Глобальные перечисления существуют только "ВнешняяОбработка", я так понимаю это общее для отчетов и обработок
|
|||
13
Rizhij_Nikitos
29.10.17
✎
13:09
|
(10) Все, запустилось. Понял в чем косяк. Перечитал СП еще раз на ОткрытьФорму:
Для внешних отчетов и обработок имя формы задается следующим образом: ВнешнийОтчет.<имя отчета>.Форма.<имя формы>; ВнешнийОтчет.<имя отчета>.<имя стандартной формы>; ВнешняяОбработка.<имя обработки>.Форма.<имя формы>; ВнешняяОбработка.<имя обработки>.<имя стандартной формы>. |
|||
14
Rizhij_Nikitos
29.10.17
✎
13:10
|
Огромное спасибо. Вот полный код паттерна, вдруг кто будет искать:
&НаКлиенте Процедура ПриОткрытии(Отказ) ИмяФайла=ПолучитьИмяФайлаОбработки(); АдресХранилища=""; Результат=ПоместитьФайл(АдресХранилища,ИмяФайла,,Ложь); ИмяОбработки=ПолучитьСсылкуНаОбработку(АдресХранилища); ОткрытьФорму("ВнешнийОтчет."+ ИмяОбработки+".Форма"); КонецПроцедуры &НаСервере Функция ПолучитьИмяФайлаОбработки() СсылкаНаОбъект = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Прайс-лист"); ДвоичныеДанные = СсылкаНаОбъект.ХранилищеОбработки.Получить(); ИмяФайла = ПолучитьИмяВременногоФайла(); ДвоичныеДанные.Записать(ИмяФайла); Возврат(ИмяФайла); КонецФункции &НаСервере Функция ПолучитьСсылкуНаОбработку(АдресХранилища) Возврат ВнешниеОтчеты.Подключить(АдресХранилища); КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |