Имя: Пароль:
1C
1С v8
Повторное открытие управляемой формы
0 Dwarrior
 
23.06.17
13:14
Здравствуйте!

Есть общий модуль (клиент), в котором выполняется вот такой код:
ФормаДисплея = ПолучитьФорму("ОбщаяФорма.ФормаДисплеяПокупателя", , , "ДисплейПокупателя", ВариантОткрытияОкна.ОтдельноеОкно);
    
Если НЕ ФормаДисплея.Открыта() Тогда
    ФормаДисплея.Открыть();
КонецЕсли;     

По логике, всегда должна открываться один и тот же экземпляр формы (владелец
не задан, ключ уникальности тот же). А практика показывает, что иногда открывается новая. Честно не пойму, почему. Все сделано по документации, а новые формы создаются. Форма используется в РМК Розница 2.2.
Помогите пожалуйста советом.
1 lodger
 
23.06.17
13:23
попробуй вместо "ДисплейПокупателя" запихивать туда значение типа УникальныйИдентификатор.
любой, создай где-нибудь сам через Новый.
2 Dwarrior
 
23.06.17
13:53
(1) Не помогло
ФормаДисплея = ПолучитьФорму("ОбщаяФорма.РХ_ФормаДисплеяПокупателя",,, Новый УникальныйИдентификатор("9cf29cf8-aa68-40e2-8c76-339bfded7b32"), ВариантОткрытияОкна.ОтдельноеОкно);
3 НЕА123
 
23.06.17
14:20
хз
может есть подписка на ОбработкаПолученияФормы
4 Dwarrior
 
23.06.17
14:51
(3) Так это общий модуль и общая форма. Здесь нет объектов, у которых может быть ОбработкаПолученияФормы
5 Dwarrior
 
23.06.17
15:25
Опытным путем выяснил, что новый экземпляр создается, если вызов осуществляется из модального окна. Пока окна обычные - вызовы приходят в одну и ту же форму. Как только открывается новое модальное окно (РМК, окно регистрации продаж) - создается новое окно. Печаль...ЧЕго-то 1Сники упустили.
6 Cyberhawk
 
23.06.17
15:26
А если вместо ПолучитьФорму сразу открывать ее?
7 Dwarrior
 
23.06.17
15:31
(6) Та же история
8 Имитация работы
 
23.06.17
15:34
(2) Описание:

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

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

Если в параметре <Уникальность> передано значение Истина, то поиск уже открытых форм не осуществляется.
9 Dwarrior
 
23.06.17
15:50
(8) Не совсем понял, к чему вы ведете. Мне как раз нужен поиск открытых форм.
10 lodger
 
23.06.17
16:01
(9) он имитирует работу форумного бота.
11 Dwarrior
 
23.06.17
16:37
Нашел обходное решение, правда пришлось еще больше влезть в типовой код. Решение такое:
1. При открытии формы меню РМК открываю общую форму ДисплейПокупателя.
2. В общем модуле методом Оповестить() посылаю информацию в эту форму.

Не так красиво, как хотелось, но другого способа не нашел
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.