Имя: Пароль:
1C
1С v8
Как открыть Несколько экземпляров отчета не програмно
0 Cerera
 
25.10.12
09:51
Вставляю в форму процедуру и закрепляю в форме свойств формы процедуру "ПередОткрытием".

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   ЭтаФорма.КлючУникальности = Новый УникальныйИдентификатор;
КонецПроцедуры

Ключ уникальности генерируется каждый раз новый, но по неизвестной причине, вторая копия отчета не открывается. Странно, да? если просто скопировать форму в конфигураторе и сделать основной, то открывается, но ведь это для каждого экземпляра придется плодить формы. Как решается проблема?
1 Maxus43
 
25.10.12
09:58
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
Отказ = истина;
Форма = Отчет.ТвойОТчет.ПолучитьФорму(,, Новый УникальныйИдентификатор);
Форма.Открыть();
2 Cerera
 
25.10.12
10:30
(1)а если отчет внешний?
3 Maxus43
 
25.10.12
10:31
Форма = ЭтотОбъект.ПолучитьФорму(,, Новый УникальныйИдентификатор);
4 Cerera
 
25.10.12
11:31
(3)спасибо .я так и думал)
5 Cerera
 
26.10.12
11:41
(3)(1)не будет это работать! не будет
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   Отказ=Истина;
   Форма=ЭтотОбъект.ПолучитьФорму(,,Новый УникальныйИдентификатор);
   Форма.Открыть();
КонецПроцедуры

а потому что когда выполняешь "форма.Открыть(), то снова будет вызываться "Перед открытием" и получается замкнкнутый цикл.
6 PR
 
26.10.12
11:42
(5) Делай флажок, который проверяй перед открытием.
7 Cerera
 
26.10.12
11:46
(6)можно. спасибо. а я просто создал промежуточную форму, которая вызывается при открытии отчета и в ней есть ПередОткрытием и из неё уже вызываю основную форму ))