|
Открытие форм - передача значений | ☑ | ||
---|---|---|---|---|
0
Verita
17.02.13
✎
19:27
|
Добрый день!
Ситуация следующая - есть элемент справочника, в реквизитах которого есть поля, которые я не хочу заполнять в форме элемента - необходимо их заполнить на отдельной форме, вызываемой по нажатию кнопки. Проблема в том, что эта самая вторая форма имеет вид "произвольная форма", следовательно не привязана к самому объекту. Открыть с параметрами, а затем их выбрать - не получается код вот: В исходной форме &НаКлиенте Процедура ОткрытьНастройкиСервера(Команда) ПараметрыФормы = новый Структура; ПараметрыФормы.Вставить("СерверSMTP", Объект.СерверSMTP); ПараметрыФормы.Вставить("ПортSMTP",Объект.ПортSMTP); ПараметрыФормы.Вставить("СерверPOP3", Объект.СерверPOP3); ПараметрыФормы.Вставить( "ПортPOP3", Объект.ПортPOP3); Форма = ОткрытьФормуМодально("Справочник.Пользователи.Форма.ФормаНастроек", ПараметрыФормы, ЭтаФорма); КонецПроцедуры В новой форме, где должны задаваться настройки: Процедура ПриОткрытии(Отказ) Элементы.СерверSMTP = Параметры.СерверSMTP; Элементы.ПортSMTP = Параметры.ПортSMTP; Элементы.СерверPOP3 = Параметры.СерверPOP3; Элементы.ПортPOP3 = Параметры.ПортPOP3; КонецПроцедуры Пробовала по-разному - пишет "Поле объекта не обнаружено (СерверSMTP)" |
|||
1
MrStomak
17.02.13
✎
19:31
|
параметры должны быть описаны в соответствующем разделе в форме под теми же именами.
|
|||
2
Verita
17.02.13
✎
19:46
|
(1)Описаны. В реквизитах и параметрах формы под идентичными именами.
|
|||
3
crotnn
17.02.13
✎
19:52
|
Читать параметры надо при создании на сервере, это раз.
Что такое "Элементы"? Присваивать значения обычно надо реквизитам формы, это два. Ну и традиционно, где фотка? Это три) |
|||
4
sanja26
17.02.13
✎
20:01
|
параметры эти сработают только при создании на сервере.
|
|||
5
Verita
17.02.13
✎
20:13
|
Оно работает!
Спасибо огромное! Может,еще подскажете, каким инструментом их запилить обратно? В смысле - передать объекту на хранение |
|||
6
crotnn
17.02.13
✎
20:22
|
(5) Либо через параметр закрытия, либо через оповещение. Смотря в каком режиме и для чего открыта форма
|
|||
7
Verita
17.02.13
✎
20:31
|
Думаю, оповещение тут лишнее. Форма открыта модально для ввода реквизитов объекта.
Насколько я понимаю, для передачи через параметр надо сделать примерно, но не совсем так &НаКлиенте Процедура ПриЗакрытии() ВладелецФормы.СерверSMTP = СерверSMTP; ВладелецФормы.ПортSMTP = ПортSMTP; ВладелецФормы.СерверPOP3 = СерверPOP3; ВладелецФормы.ПортPOP3 = ПортPOP3; КонецПроцедуры Как правильно? |
|||
8
crotnn
17.02.13
✎
21:10
|
Тогда Закрыть(<ПараметрЗакрытия>)
|
|||
9
Verita
17.02.13
✎
21:40
|
Можно еще раз для тех, кто в танке?
Делаю так &НаКлиенте Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ПараметрЗакрытия = новый Структура; ПараметрЗакрытия.Вставить("СерверSMTP",СерверSMTP); ПараметрЗакрытия.Вставить("ПортSMTP", ПортSMTP); ПараметрЗакрытия.Вставить("СерверPOP3", СерверPOP3); ПараметрЗакрытия.Вставить( "ПортPOP3", ПортPOP3); ЭтаФорма.Закрыть(ПараметрЗакрытия); КонецПроцедуры Вылетает Dump из-за ЭтаФорма.Закрыть(ПараметрЗакрытия); |
|||
10
alexei366
17.02.13
✎
23:51
|
Попробуй ещё Отказ = истина, наверно мозги ему крутит, при попытке закрыть форму которой уже нет
|
|||
11
Verita
18.02.13
✎
11:16
|
Решила простым нажатием на левую кнопку:
&НаКлиенте Процедура СохранитьНастройки(Команда) СохранитьНастройкиСерверов(); КонецПроцедуры &НаКлиенте Процедура СохранитьНастройкиСерверов(); ПараметрЗакрытия = новый Структура; ПараметрЗакрытия.Вставить("СерверSMTP",СерверSMTP); ПараметрЗакрытия.Вставить("ПортSMTP", ПортSMTP); ПараметрЗакрытия.Вставить("СерверPOP3", СерверPOP3); ПараметрЗакрытия.Вставить( "ПортPOP3", ПортPOP3); ЭтаФорма.Закрыть(ПараметрЗакрытия); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |