Имя: Пароль:
1C
1С v8
Управляемая форма. Выбор из нестандартной формы справочника.
,
0 Vika_Vika
 
06.07.12
10:40
Такая проблема:
На форме - окно ввода реквизита типа Справочник.Контрагенты. Пробую сделать, чтоб справочник открывался сразу в нужной папке. Это получается. Но как передать выбранное значение обратно? Пока что окно ввода остается пустым. Помогите, плиз!
1 pumbaEO
 
06.07.12
10:43
ОповеститьОВыборе
2 0_Serg_0
 
06.07.12
10:47
фотку?!О_о
3 Vika_Vika
 
06.07.12
11:52
А можно чуток поподробнее? В какой обработке события это писать?
4 Vika_Vika
 
06.07.12
19:02
Таки никто не может пояснить?
5 ChAlex
 
06.07.12
21:23
в открывающейся форме выбора. а еще нужно что бы открывалась форма с установленным признаком "РежимВыбора" для списка.
6 el-gamberro
 
06.07.12
21:27
Обработка выбора или подбора. Вызывается при выборе значения в подчиненной форме
ОбработкаВыбора, ChoiceProcessing
7 el-gamberro
 
06.07.12
21:28
(1,5) шо за бред?
8 milan
 
06.07.12
22:20
Я за (5)
9 vladnet
 
06.07.12
22:26
Элементы.Список.РежимВыбора = Истина

проверь
10 el-gamberro
 
06.07.12
22:32
(9) Не сработает. Форму нужно открывать с ключ РежимВыбора заранее, потом у списка формы поменять режим нельзя
11 milan
 
06.07.12
22:39
В настойках реквизита можно указать параметры выбора
12 Vika_Vika
 
09.07.12
11:00
Как я понимаю, дело в том, что у меня не получается указать владельца формы выбора.
Хотя даю вот такую команду
ФормаВыбора = Справочники.Контрагенты.ПолучитьФормуВыбора("ФормаВыбораМенеджера",ЭтаФорма);

И если сразу проверить значение ФормаВыбора.ВладелецФормы, оно равно - неопределено.

Соответственно потом программа не заходит в процедуру ОбработкаВыбора. Это вроде как понятно.
Но почему не цепляется владелец? Может, какое свойство должно быть у формы выбора?
Кто-нибудь, скажите умное слово!
13 Vika_Vika
 
09.07.12
12:02
Что, совсем никто не в курсе, почему так может быть?
14 Агент Инфостарта
 
09.07.12
12:11
(0) Вам это надо? Конспективно: установить владельцем формы вызывающий элемент, а не форму.

&НаКлиенте
Процедура ВашСправочникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   
   ФормаСписка = ПолучитьФорму("Справочник.ВашСправочник.Форма.ВашаФормаВыбора", , Элемент);
       ............
       ............
       ............
   ФормаСписка.Открыть();
   
КонецПроцедуры
15 Vika_Vika
 
09.07.12
12:19
А почему владелец третьим параметром, а не вторым?
16 Агент Инфостарта
 
09.07.12
12:21
(15) Потому что, УФ. У вас же явно не указан вид приложения. У меня по дефолту управляемое.
17 ChAlex
 
09.07.12
19:55
(14) - ну можно и форму, только обрабатывать выбор тогда в обработчике формы
18 Агент Инфостарта
 
10.07.12
01:34
(17) Нифига подобного. За обычные формы не скажу, но на УФ приведённый код достаточен для выбора из своей формы. Это выдрано из рабочего проекта.
19 Агент Инфостарта
 
10.07.12
01:42
(17) Для зачем лишние телодвижения?
20 sanja26
 
10.07.12
01:47
может стоит использовать заполнять из данных заполнения?
21 ChAlex
 
10.07.12
19:19
(18) - Речь же не про достаточность, а про поведение. В открываемую форму передается контекст, который и оповещается о выборе, и в рамках которого должна проводится обработка выбора - вот и все. У формы как и у реквизита формы есть событие "ОбработкаВыбора".
(19) - ну а на счет лишних телодвижений - ну тут бабка надвое гадала. Иногда как раз проще написать один обработчик выбора, чем для каждого объекта писать свой. Все познается в сравнении и определяется необходимость и желанием
22 ChAlex
 
10.07.12
19:27
И в документации и в видеоматериалах полно примеров как позиционировать на нужную строку в форме. Смотрите справку по ОткрытьФорму (кстати и используйте эту команду для открытия формы выбора и в команде устанавливайте нужные параметры) и используйте свойсто ПараметрТекущаяСтрока для расширения формы списка - для установки на требуемую позицию.
23 Vika_Vika
 
12.07.12
21:08
Получилось. Всем спасибо.
И отдельно особое спасибо ChAlex