Имя: Пароль:
1C
1С v8
Не открывать форму объекта если уже есть открытая форма
,
0 Guerro
 
03.02.22
16:13
Есть управляемая форма, в модуле формы есть код на клиенте:

ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",, , ЭтаФорма.УникальныйИдентификатор); // Который открывает обычную форму объекта

Проблема в том, что если еще раз этот код выполнить, то открывается новая форма ВыдачиТоваров, а не уже открытая, как решить проблему? или что я не так делаю?

P.S. есть подозрение на взаимодействие между обычными и управляемыми формами.
1 unenu
 
03.02.22
16:16
обе формы управляемые, а по под "обычной" вы понимаете стандартную форму объекта?
2 Guerro
 
03.02.22
16:17
(1) ВыдачаТоваров обычная форма, модуль формы откуда вызывается - управляемая
3 ВасяЧ
 
03.02.22
17:58
<Уникальность> (необязательный)
Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма.

ЭтаФорма.УникальныйИдентификатор замени на менее уникальный идентификатор, Например, "1" ваш Кэп.
4 Guerro
 
04.02.22
08:06
(3) Не работает

ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",,, "1");
5 Guerro
 
04.02.22
11:38
Up
6 Ryzeman
 
04.02.22
12:32
(4) ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента",,,"1"); - прекрасно работает.

Скорее всего во время выполнения твоего алгоритма происходит запись и у формы меняются ключевые параметры. Попробуй так:

    Параметры = Новый Структура("Ключ", СсылкаНаТвоюВыдачуТовара);
    ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",,, "1");

КлючУникальности для твоей задачи в принципе вряд ли нужен... Там по умолчанию поиск по пустому идёт, если тебе не надо плодить формы, то как раз лучше не задавать.
7 Ryzeman
 
04.02.22
12:33
(6) ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1", Параметры,, "1");
8 Guerro
 
05.02.22
10:16
Создал для документа "ВыдачаТоваров" управляемую форму, как и форма откуда вызывается открытие формы, и теперь при вызове одной и той же функцией не создаются новые окна
9 Guerro
 
05.02.22
10:17
Есть ли решение с обычными формами?
Потому что если просто нажать создать документ, то лишние новые окна не создаются
10 Guerro
 
05.02.22
10:22
(6) Не помогло
11 ads55
 
05.02.22
10:24
(0) НЕ совсем понял задачу. Вообще, для УФ есть ПолучитьОкна(), там можно посмотреть все открытые окна приложения.
12 pechkin
 
05.02.22
10:39
Параметр уникальности вообще убери
13 Guerro
 
05.02.22
11:09
(12) пробовал
14 Guerro
 
05.02.22
11:12
(12)  Что пробовал:

ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1");
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",,,"1");
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",,,1);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",,ЭтаФорма,1);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",,ЭтаФорма);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",,ЭтаФорма,"1");
Параметры = Новый Структура("Ключ", ЭтотОбъект);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,,"1");
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,,1);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,ЭтаФорма,1);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,ЭтаФорма);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,ЭтаФорма,"1");
Параметры = Новый Структура("Ключ", СсылкаНаВыдачаТоваров);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,,"1");
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,,1);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,ЭтаФорма,1);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,ЭтаФорма);
ОткрытьФорму("Документ.ВыдачаТовара.Форма.Форма1",Параметры,ЭтаФорма,"1");
15 Guerro
 
05.02.22
11:13
(11) У меня обычное приложение.
ПолучитьОкна() = неопределенно
16 Guerro
 
05.02.22
11:50
Up
17 acht
 
05.02.22
11:59
ОткрытьФорму для обычных форм работает через задницу, параметры не обрабатываются и т.п.
Пользуйся традиционными:

Форма1 = СсылкаНаВыдачаТоваров.ПолучитьФорму("Форма1", ЭтотОбъект, КлючУникальности);
Форма1.Открыть();
18 Guerro
 
05.02.22
12:53
(17) Не помогло,ссылки нет на документ, или создавать новый

Форма1 = Документы.ВыдачаТовара.ПолучитьФорму("Форма1", ЭтотОбъект, КлючУникальности);
Форма1.Открыть();
19 Guerro
 
05.02.22
12:54
(18) Создать новый не помогло
20 Guerro
 
05.02.22
13:21
Легче уже на УФ перевести документ
21 ДедМорроз
 
05.02.22
16:16
В ключ уникальности при открытии поставить Ложь,тогда будет искаться форма без учета ключа уникальности.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший