![]() |
![]() |
|
ОткрытьФормуМодально не возвращает значения | ☑ | ||
---|---|---|---|---|
0
lanc2233
09.03.13
✎
18:28
|
СтЮрЛицо = Новый Структура;
СтЮрЛицо.Вставить("Контрагент",Объект.Ссылка); Ф = ОткрытьФормуМодально("Справочник.ЮрлицаКонтрагентов.ФормаОбъекта",Новый Структура("ЗначенияЗаполнения",СтЮрЛицо)); Объект.Юрлицо = Ф.Объект.Ссылка; В таком случае переменная Ф = Неопределено. Почему? Если открывать немодально то переменная заполнена, но код идет дальше не дожидаясь пока пользователь что-то сделает с формой. Суть задачи : по кнопке открывать форму нового элемента справочника, с заполненным значением реквизита. Пользователь может отказаться записывать элемент. (тоесть вариант сначала записать а потом открыть форму не подходит). Как можно реализовать? |
|||
1
kiruha
09.03.13
✎
18:44
|
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П); Форма.Открыть(); |
|||
2
kiruha
09.03.13
✎
18:45
|
Форма.ОткрытьМодально()
|
|||
3
lanc2233
09.03.13
✎
18:50
|
(1) Ключа еще нет. Создается новый элемент.
|
|||
4
Пеппи
09.03.13
✎
18:55
|
(3) А причем здесь открыть модально то. обычная форма создается с заполненными реквизитами. Пользователь может записать или не записывать и закрыть форму.
|
|||
5
lanc2233
09.03.13
✎
18:59
|
(4) Объект.Юрлицо = Ф.Объект.Ссылка;
мне нужно получить ссылку на созданный элемент. Если немодально то код идет дальше не дожидаясь пока пользователь что-то сделает с формой. В итоге получаю пустую ссылку. |
|||
6
Пеппи
09.03.13
✎
19:05
|
(5) зачем тебе ссылка на элемент который даже еще не записан в базу?
|
|||
7
lanc2233
09.03.13
✎
19:09
|
(6) в том-то и дело, что он мне нужен после того как записан в базу.
Тоесть для пользователя открывается форма создания нового элемента. Он заполняет реквизиты и записывает, мне нужна ссылка на то что он создал. Но он может отказаться его создавать, тогда мне пустую ссылку. |
|||
8
t731
09.03.13
✎
23:37
|
Может в последней строчке вместо Ф.Объект.Ссылка написать просто Ф
СтЮрЛицо = Новый Структура; СтЮрЛицо.Вставить("Контрагент",Объект.Ссылка); Ф = ОткрытьФормуМодально("Справочник.ЮрлицаКонтрагентов.ФормаОбъекта",Новый Структура("ЗначенияЗаполнения",СтЮрЛицо)); Объект.Юрлицо = Ф; Ведь "Объект" - это реквизит формы, а тебе вернется уже результат выбора. Только сначала нужно проверить на ЗначениеЗаполнено(Ф) |
|||
9
Конфигуратор1с
09.03.13
✎
23:48
|
А почему бы не сделать так
Форма = ПолучитьФорму("Справочник.ЮрлицаКонтрагентов.ФормаОбъекта"); Ф= Форма.ОткрытьМодально(); Если Форма.Объект.ССылка.пустая() тогда Сообщить("Юзверятко, ну ты че?"); КонецЕсли; |
|||
10
sanja26
10.03.13
✎
00:12
|
Ф = ОткрытьФормуМодально("Справочник.ЮрлицаКонтрагентов.ФормаОбъекта",Новый Структура("ЗначенияЗаполнения",СтЮрЛицо), ЭтаФорма);
|
|||
11
sanja26
10.03.13
✎
00:14
|
(10) Ф это и будет ФизЛицо.ссылка
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |