Имя: Пароль:
1C
1С v8
Открытие формы
0 galimovmaks
 
10.11.15
17:56
помогите разобраться, необходимо открыть форму задачи которые есть в регистре, при этом если форма открыта, повторно открывать не нужно
пишу так

Процедура ПриНачалеРаботыСистемы()
    
    ПодключитьОбработчикОжидания("ПоказатьВсеНеВыполненныеЗадачи", 5);
    
КонецПроцедуры

Процедура ПоказатьВсеНеВыполненныеЗадачи() Экспорт
    
    МассивЗадач = ОбщийМодуль1.ПолучитьМассивНеВыполненныхЗадач();
    
    Для каждого ЭлементМмссива Из МассивЗадач Цикл
        Параметры = Новый Структура;
        Параметры.Вставить("Ключ", ЭлементМмссива);
        Форма = ПолучитьФорму("Задача.Задача1.ФормаОбъекта", Параметры, , 1);
        
        Если Не Форма.Открыта() Тогда
            Форма.Открыть();    
        КонецЕсли;
            
    КонецЦикла;
        
КонецПроцедуры


он мне каждый раз открывает одну и ту же форму..
1 Горогуля
 
10.11.15
17:59
уникальность - четвёртый параметр штоль?
2 galimovmaks
 
10.11.15
18:00
(1) ну на УФ - да
3 Dethmont
 
10.11.15
18:04
(1) А если у формы есть ключевые параметры?
4 VikingKosmo
 
10.11.15
18:06
это ОФ, что ли?
5 galimovmaks
 
10.11.15
18:07
(4) это Управляемые Формы
6 Горогуля
 
10.11.15
18:08
>ЭлементМмссива
Сатурну больше не наливать ;)
7 galimovmaks
 
10.11.15
18:08
в СП сказано
Описание:

Получает форму или управляемую форму. Перед получением осуществляется поиск уже открытой такой же формы.
Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности.

вроде все параметры одни передаю, почему же он ее не видит то?
8 VikingKosmo
 
10.11.15
18:08
(5) тогда за
Форма = ПолучитьФорму("Задача.Задача1.ФормаОбъекта", Параметры, , 1);

расстрел через повешание
9 galimovmaks
 
10.11.15
18:12
(8) а что не так?
10 Dethmont
 
10.11.15
18:12
(7) Как ты думаешь КЛЮЧ? это КЛЮЧевой параметр?
11 Dethmont
 
10.11.15
18:14
(7) Неужели из (3) не сразу стало все понятно?
12 VikingKosmo
 
10.11.15
18:14
(9) читай СП, ОткрытьФорму().
13 VikingKosmo
 
10.11.15
18:14
где же ДениСЧ?!
14 VikingKosmo
 
10.11.15
18:14
где же ДенисЧ?!
15 Горогуля
 
10.11.15
18:17
где же ДенисЧ?!
16 VikingKosmo
 
10.11.15
18:18
(15) спс, а то под вечер руки заплитыкиваются
17 Dethmont
 
10.11.15
18:19
Если ТС будет передавать в параметры Ключ с разными значениями, он не получит Другого результата!
18 Dethmont
 
10.11.15
18:19
Хоть через ОткрытьФорму(), хоть через ПолучитьФорму()
19 Dethmont
 
10.11.15
18:20
СП.
Расширение управляемой формы для объектов (Managed form extension for objects)
Ключ (Key)
Использование:

Ключевой.
Описание:
20 galimovmaks
 
10.11.15
18:28
написал так

Процедура ПоказатьВсеНеВыполненныеЗадачи() Экспорт
    
    МассивЗадач = ОбщийМодуль1.ПолучитьМассивНеВыполненныхЗадач();
    
    Для каждого ЭлементМмссива Из МассивЗадач Цикл
        Параметры = Новый Структура;
        Параметры.Вставить("Ключ",      ЭлементМмссива);
        Параметры.Вставить("Параметр1", ЭлементМмссива);
        
        ОткрытьФорму("Задача.Задача1.ФормаОбъекта", Параметры);
        
        
    КонецЦикла;
        
КонецПроцедуры


где параметр1 это ключевой паремтр формы, однако все равно не работает
21 Aleksandr N
 
10.11.15
18:35
(20) А зачем здесь Параметр1?
22 galimovmaks
 
10.11.15
18:40
(21) чтоб точно с формой не ошибиться
23 Aleksandr N
 
10.11.15
18:43
А элемент массива какой тип имеет?
24 galimovmaks
 
10.11.15
18:45
(23) ссылка на задачу
25 Aleksandr N
 
10.11.15
18:51
Что именно сейчас не работает?
26 galimovmaks
 
10.11.15
19:19
(25) при каждом новом вызове процедуры каждый раз открывается форма задачи, даже если она уже открыта
27 galimovmaks
 
10.11.15
19:21
Открывается новый экземпляр формы, то есть у меня открыто три и более одинаковых форм
28 Aleksandr N
 
10.11.15
19:40
Попробуйте так:
ОткрытьФорму("Задача.Задача1.ФормаОбъекта", Параметры,,,,,, РежимОткрытияОкнаФормы.Независимый);
29 Aleksandr N
 
10.11.15
19:41
И да: Параметр1 здесь точно не нужен.
30 galimovmaks
 
11.11.15
05:17
(28) да, спасибо, так получилось.