Имя: Пароль:
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) Извиняюсь. Понял в чем суть. Проверить, есть ли открытый, но не записанный документ на основании. Но опять же, не понятно, как это сделать.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.