Имя: Пароль:
1C
1С v8
Ошибка повторного открытия формы подбора (на УФ)
,
0 mzelensky
 
27.03.14
09:13
Доброго всем.
Кося к следующий. Управляемая форма. На ней табличная часть и кнопка "Подбор". Когда нажимаешь на кнопку, то открывается нужная формочка:

&НаКлиенте
Процедура МатериалыПодбор(Команда)
    ПараметрыПодбора = Новый Структура("ЗакрыватьПриВыборе, МножественныйВыбор, Дата", Ложь, Истина,ТекущаяДата());
    ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаПодбораУ", ПараметрыПодбора, Элементы.Материалы, Строка(ЭтаФорма.УникальныйИдентификатор)+"Материалы", ВариантОткрытияОкна.ОтдельноеОкно);
КонецПроцедуры


Косяк в том, что если форму подбора закрыть, а потом опять нажать кнопку "Подбор", то все норм. А если форма подбора открыта и еще раз нажать кнопку "Подбор", то выходит ошибка:

{Справочник.А_СпецификацияПродукции.Форма.ФормаЭлементаУ.Форма(266)}: Ошибка при вызове метода контекста (ОткрытьФорму)
    ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаПодбораУ", ПараметрыПодбора, Элементы.Замены, Строка(ЭтаФорма.УникальныйИдентификатор)+"Замены", ВариантОткрытияОкна.ОтдельноеОкно);
по причине:
Окно уже установлено, нельзя назначить другое окно.


Ключ уникальности для формы задан. Хоть убейте, не пойму в чем трабла?!
1 mzelensky
 
27.03.14
09:29
Ну что такое. никто не знает или никто не проснулся?!
2 mzelensky
 
27.03.14
09:57
Да что ж такое... :(
3 Fedor-1971
 
27.03.14
09:58
Как предположение:
1.Попробуй проверить в открываемой форме ПриПовторномОткрытии()
2.Попробуй без ключа уникальности формы, за ради эксперимента
4 mzelensky
 
27.03.14
10:05
(3) Без ключа уникальности ошибка такая же.

Событие "ПриПовторномОткрытии()" даже не вызывается. Ошибка вываливается сразу обработке строки

ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаПодбораУ", ПараметрыПодбора, Элементы.Материалы, Строка(ЭтаФорма.УникальныйИдентификатор)+"Материалы", ВариантОткрытияОкна.ОтдельноеОкно);
5 zva
 
27.03.14
10:12
скорей всего из-за параметра ВариантОткрытияОкна.ОтдельноеОкно. Без него должно активизировать уже открытую форму.
6 mzelensky
 
27.03.14
10:38
(5) Да, действительно, если убрать "ВариантОткрытияОкна.ОтдельноеОкно", то ошибка ушла.

но получается муть - если в настройках стоит "Отображать в закладках", то получаетс ,что форма объекта в одной закладке, а форма подбора в другой закладке...и это пипц как не удобно.

А в СП вообще по этому вповоду ничего не сказано. Где там наши многоуважаемые любители продать СП подороже??? Что за недоработки???
7 alexei366
 
27.03.14
10:49
(6) Заведи переменную &НаКлиенте в основной форме "ФормаПодбора" и в МатериалыПодбор(Команда) попробуй так

Если ФормаПодбора = Неопределенно Тогда
   ФормаПодбора = ПолучитьФорму(...);
КонецЕсли;

ФормаПодбора.Очистить();
ФормаПодбора.Открыть();


Метод очистить в форме подбора создай сам указав "Экспорт", тама очищай выбранные элементы ну или чо хош
8 zva
 
27.03.14
10:53
можно пробовать закрыть и открыть заново
В Попытке
Форма = ПолучитьФорму(...
Форма.Закрыть()

ОткрытьФорму(... ВариантОткрытияОкна.ОтдельноеОкно)
Исключение
ОткрытьФорму(... ВариантОткрытияОкна.ОтдельноеОкно)

работать будет, хотя 1С это вроде тоже не рекомедует
9 mzelensky
 
27.03.14
11:16
(7)(8) Не хочется делать через "ПолучитьФорму()"
10 GROOVY
 
27.03.14
11:20
Установи у формы "Блокировать владельца", тогда нельзя будет ткнуть в кнопку "Открыть подбор" пока окно подбора открыто еще раз.
11 mzelensky
 
27.03.14
11:21
(10) это получается фактически "Модальное окно".

Тоже не хочется такого.
12 alexei366
 
27.03.14
11:31
(11) Чоты вообще тогда хочешь?
13 zva
 
27.03.14
11:34
(11) просто при активизации уже открытой сработает процедура ПриПовторномОткрытии, но процедура ПриСозданииНаСервере уже не сработает, соответственно переданные параметры не обработаются. Поэтому либо открывать без параметров, либо предварительно закрывать, либо не давать открыть как в (10)
14 mzelensky
 
27.03.14
11:35
(12) Я хочу нормального поведения окна.

Есть некий объект. Из его формы я открываю форму подбора (передаю в эту форм пачку параметров для ее функционирования). При этом я хочу чтобы и форма подбора была "живой" и форма владельца тоже!

+ Если поставить в настройках конфы "отображать в закладках", то форма подбора все-равно должна открытсья в отдельном окне.

И все это в тонком клиенте

Вот и все, что я хочу
15 GROOVY
 
27.03.14
11:36
(11) Ну так по логике "подбора" это правильно.
16 mzelensky
 
27.03.14
11:39
(13)

"либо предварительно закрывать" - форма подбора не закрывается при выборе. А в кнопке подбора я не могу запомнить в переменную "форму подбора"...те. могу, но только в локальную переменную, а в переменную формы не дает сохранять.

"либо не давать открыть как в (10)" - Полностью блокировать владельца формы не вариант, а далее такое же ограничение, как и выше я описал - не могу запомнить форму, чтобы проверить ее на открытость.
17 mzelensky
 
27.03.14
11:40
(15) С чего бы это? Это стало правильно ток в управляемых формах, а до этого всю жизнь (вспоминаем БП 1.6, БП 2.0, и УТ 10.3 и так далее) форма подбора так и работала (как мне надо)
18 mzelensky
 
27.03.14
12:21
В общем, перебрали много чего. Остановились таки на блокировке аладельца формы (как в типовой Ут11), но только через передаваемый параметр
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс