|
Открыть новый экземпляр формы | ☑ | ||
---|---|---|---|---|
0
KuJIT
23.01.14
✎
17:09
|
Вечер добрый. Подскажите пожалуйста, как открыть новый экземпляр формы? Код такой:
Процедура ПереходНаФорму(ИмяНовойФормы, ПараметрыНовойФормы = 1) Ответ = Вопрос("Сохранить изменения?", РежимДиалогаВопрос.ДаНетОтмена); Если Ответ = КодВозвратаДиалога.Да Тогда // сохранить изменения ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда //соответственно, не сохранять изменения КонецЕсли; Если Ответ <> КодВозвратаДиалога.Отмена Тогда ФФ = ПолучитьФорму(ИмяНовойФормы); ЭтаФорма.Закрыть(); ФФ.НомерСтраницы = ПараметрыНовойФормы; ФФ.Открыть(); КонецЕсли; //и по отмене ничего не делать КонецПроцедуры Если открываю другую форму (не ту, в которой процедура), то все ОК. Иначе "открывается" Этот же экземпляр формы и тут же закрывается. Т.е. результат не достигается. Есть мысл, что ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>) с <Уникальность> не по умолчанию может помочь, но с ОткрытьФорму (с передачей параметров) как-то не сладил я. Если есть вариант модифицировать вариант открытия из моей процедуры для нужного эффекта, то подскажите, пожалуйста. |
|||
1
Euguln
23.01.14
✎
17:17
|
Придется таки сладить с передачей параметров, ибо <Уникальность> - твое все.
А что с параметрами не так? |
|||
2
KuJIT
23.01.14
✎
17:20
|
УправляемаяФорма (ManagedForm)
Открыть (Open) Синтаксис: Открыть() Описание: Открывает форму и делает ее окно активным. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: В управляемом приложении не следует выполнять программное открытие и закрытие одной и той же формы в одном вызове встроенного языка. А с парамтрами чего-то неробит. Создал параметр, в модуле в подсказке после точки он высвечивается, а при работе пишет что-то в роде "Нет такого параметра" |
|||
3
KuJIT
23.01.14
✎
17:20
|
(1) Какое конкретно значение для <Уникальность нужно устанавливать?>
|
|||
4
Euguln
23.01.14
✎
17:33
|
(3) Например Новый УникальныйИдентификатор
(2) Как создал? В управляемой параметры только на сервере доступны. |
|||
5
KuJIT
23.01.14
✎
17:39
|
http://hostingkartinok.com/show-image.php?id=b0af8141bec398206fdebe0775be4311
&НаКлиенте Процедура ИнкДек(Команда) //дляостанов = 1; ПараметрыДляФормы = Новый Структура("НомерСтраницы",?(Команда.Действие = "ПредСтр",НомерСтраницы - 1, НомерСтраницы + 1)); ПереходНаФорму("ВнешняяОбработка.МедкнижкаПечать.Форма.Форма1", ПараметрыДляФормы); КонецПроцедуры &НаКлиенте Процедура ПереходНаФорму(ИмяНовойФормы, ПараметрыНовойФормы = Неопределено) Ответ = Вопрос("Сохранить изменения?", РежимДиалогаВопрос.ДаНетОтмена); Если Ответ = КодВозвратаДиалога.Да Тогда // сохранить изменения ИначеЕсли Ответ = КодВозвратаДиалога.Нет Тогда //соответственно, не сохранять изменения КонецЕсли; Если Ответ <> КодВозвратаДиалога.Отмена Тогда //ФФ = ПолучитьФорму(ИмяНовойФормы); //ФФ.НомерСтраницы = ПараметрыНовойФормы; //ФФ.Открыть(); //ЭтаФорма.Закрыть(); ОткрытьФорму(ИмяНовойФормы, ПараметрыНовойФормы, ЭтаФорма, Истина); КонецЕсли; //и по отмене ничего не делать КонецПроцедуры |
|||
6
KuJIT
23.01.14
✎
17:42
|
Собственно ошибка
{Форма.Форма1.Форма(13)}: Поле объекта не обнаружено (НомерСтраницы) Макет = Объект1.ПолучитьМакет("Страница"+Параметры.НомерСтраницы); На функцию &НаСервере Функция ПолучитьМакетНаСервере() ТабДок = Новый ТабличныйДокумент; Объект1 = РеквизитФормыВЗначение("Объект"); Макет = Объект1.ПолучитьМакет("Страница"+Параметры.НомерСтраницы); ТабДок.Вывести(Макет); //ТабДок. Возврат ТабДок; КонецФункции Может я к параметру неправильно обращаюсь? Или галочку какую надо? |
|||
7
KuJIT
23.01.14
✎
17:46
|
Хотя, как вариант, нафиг мне форму перезапускать? Табличный документ менять и все. Сразу как-то не подумал. Но для общего развития хотелось бы узнать, в чем косяк зарыт.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |