Имя: Пароль:
1C
1С v8
Проверить открыта форма или нет
0 squall84
 
25.03.20
10:00
Нужно при проведении документа, создать другой на основании.
Пишу в обработке проведения:
[CODE]Если НЕ Отказ Тогда
        Если СодержимоеДМ Тогда
            ДокументДМ=Документы.ДвижениеДрагоценныхМатериалов.СоздатьДокумент();
            ДокументДМ.ДокументОснование=ЭтотОбъект.Ссылка;
            ДокументДМ.Заполнить(ЭтотОбъект.Ссылка);
            ФормаДМ = ДокументДМ.ПолучитьФорму("ФормаДокумента",ЭтотОбъект.ПолучитьФорму("ФормаДокумента"), "Уникальность");
                          Если НЕ ФормаДМ.Открыта() Тогда             
                          ФормаДМ.Открыть();
                          КонецЕсли;            
        КонецЕсли;
    КонецЕсли;
[/CODE]
ФормаДМ.Открыта() - всегда ложь, независимо от того, что я устанавливаю ПолучитьФорму. Судя по отладчику, ключ уникальности записывается в форму, и владелец записывается, но получается, что всегда форма закрыта.

Пробовал в процедуре ПередОткрытие дать отказ:
[CODE]
Если ЭтаФорма.КлючУникальности="Уникальность" И ЭтаФорма.Открыта() Тогда
        Отказ=Истина;
    КонецЕсли;
[/CODE]
Тоже самое. Ключ уникальности в форме есть, владелец есть. Но ЭтаФорма.Открыта()  все-равно ложь.

Не пойму, что не так?
1 squall84
 
25.03.20
10:04
1с УПП. Обычные формы.
2 mikecool
 
25.03.20
10:08
Форма.Открыта()
3 mikecool
 
25.03.20
10:08
+2 потому что ключ уникальности
4 Сияющий в темноте
 
25.03.20
10:09
а зачем при получении формы документа передавать ей форму тееущего документа?
и,если документ только создан,то явно,что у него нет открытой формы ?
наверное,целью было проверить,а нет ли такого уже созданного?
5 mikecool
 
25.03.20
10:09
а вообще - затея в (0) бред
6 squall84
 
25.03.20
10:13
(4) (5) Цель такая.
Когда я провожу документ, открывается форма документа созданного на основании. Если я еще раз нажму проведение, то снова откроется форма документа созданного на основании. И так до бесконечности.

Я хочу сделать, к в стандартном механизме. Если я выбираю - создать на основании, то открывается форма создаваемого документа. Но если я еще раз выберу создание на основании - у меня не будет создаваться новых форм, а просто произойдет переключение на уже созданную форму создаваемого документа.
7 Жан Пердежон
 
25.03.20
11:49
(6) тебе не форму нужно проверять, а наличие документа, созданного на основании (чтобы не создаваться новый). Открытие формы тут совсем ни при чем
8 squall84
 
25.03.20
12:25
(7) Это не совсем то. На основании первичного документа может быть создано несколько документов.
9 squall84
 
25.03.20
12:33
(7) Извиняюсь. Понял в чем суть. Проверить, есть ли открытый, но не записанный документ на основании. Но опять же, не понятно, как это сделать.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн