|
Повторное открытие управляемой формы |
☑ |
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. В общем модуле методом Оповестить() посылаю информацию в эту форму.
Не так красиво, как хотелось, но другого способа не нашел
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший