Имя: Пароль:
1C
1C 7.7
v7: Получить значение из списка для выбора в справочнике
0 goldenhawk
 
01.08.17
11:56
В документе открываю форму справочника:
Параметр.ДобавитьЗначение(ТекСтрана    , "Страна");
Параметр.ДобавитьЗначение(глВзятьКонтекст(Контекст)    , "Контекст");
ОткрытьФормуМодально("Справочник.Абоненты.ДляВыбора", Параметр);

При открытии устанавливаю отбор:
Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
УстановитьОтбор("Страна",Парам.Получить("Страна"));
КонецЕсли;

Как обработать выбранное значение, которое выбираю из справочника ? Думал использовать эту процедуру, но она не вызывается

Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога, ФлагСтандОбр)
      Спр=СоздатьОбъект("Справочник.Абоненты");
      внКонтекст    = Форма.Параметр.Получить("Контекст");
      внКонтекст.Адрес=Спр.ТекущийЭлемент().Адрес;
      Форма.Параметр.Установить("СтатусВозврата",1);
      Форма.Закрыть();    
КонецПроцедуры
1 АЛьФ
 
01.08.17
12:15
Процедура ПриВыбореСтроки()
КонецПроцедуры
Синтаксис:
ПриВыбореСтроки()
Назначение:
Предопределенная процедура при выборе строки списка.
Замечание:
Режим обработки выбора строки (двойной щелчок мыши или клавиша Enter) предопределенной процедурой ПриВыбореСтроки включается в форме списка справочника, журнала, счетов, журнала операций, журнала проводок при помощи метода Форма.ОбработкаВыбораСтроки(1). Данная процедура может располагаться только в программном модуле формы.
2 goldenhawk
 
01.08.17
12:26
Ок , процедуру поменяю на ПриВыбореСтроки.

Почему когда я щелкаю на строку, открывается Форма Элемента для Абонента, а не происходит никакого выбора ? (В справочнике Абоненты стоит Редактировать в диалоге)
3 Builder
 
01.08.17
12:30
Ты открываешь справочник не в режиме выбора, а просто так.
Что бы из такого режима выбрать, надо немного извратиться.
4 Масянька
 
01.08.17
12:37
Процедура ПриОткрытии()
    
    Парам = Форма.Параметр;

    Если ТипЗначенияСтр(Парам) = "СписокЗначений" Тогда

        АктивизироватьОбъект(Парам.Получить("ТекЭлемент"));
        Форма.ОбработкаВыбораСтроки(1);
        
    КонецЕсли;
- это Builder назвал "извратиться" :)
5 Builder
 
01.08.17
12:48
(4) Да лениво было искать, как то делал таким способом. Но он нужен был для одного момента  -  что бы перед выбором можно было ввести новый элемент или просмотреть существующие. Стандартная обработка выбора такого не позволят.
Так что если автору надо просто выбрать, то

Спр.Выбрать(<Подсказка>,<ФормаСписка>)
Самое то.
Если надо передать что то в эту форму, то проще через глобальную переменную.
6 goldenhawk
 
01.08.17
13:07
Да так работает спасибо

Еще небольшой вопрос как получить ссылку на выбранный элемент справочника, чтобы записать его в внКонтекст?

внКонтекст.Адрес=Спр.ТекущийЭлемент().Адрес;
7 Builder
 
01.08.17
13:25
(6) Простите, кто на ком стоял? (с)

Что куда надо записать?
внКонтекст=Спр.ТекущийЭлемент();
8 goldenhawk
 
01.08.17
13:36
У меня в документе Реквизит Адрес , я выбираю из справочника абонета и беру у него адрес , и теперь нужно заполнить поле адрес в документе.
если так написать внКонтекст.Адрес="г.Москва"; , то зап-ся в документ.
Как получить текущую строку из справочника ,которую я выбрал ?
9 Масянька
 
01.08.17
13:52
(7) Попрошу не выражаться! (С) :))))))))))))
10 goldenhawk
 
01.08.17
13:56
Когда я выбираю строку, как получить ссылку на текущий элемент справочника ?
11 Sserj
 
01.08.17
14:05
(10)
В документе:

Параметр.ДобавитьЗначение(ТекСтрана    , "Страна");
Параметр.ДобавитьЗначение(глВзятьКонтекст(Контекст)    , "Контекст");
ОткрытьФормуМодально("Справочник.Абоненты.ДляВыбора", Параметр);
Соощить(Параметр);

В справочнике:

Процедура ПриВыбореСтроки()
   Форма.Параметр = ТекущийЭлемент();
   Форма.Закрыть(0);
КонецПроцедуры
12 goldenhawk
 
01.08.17
14:11
Всем Спасибо за помощь!
уже разобрался
13 toypaul
 
гуру
01.08.17
14:32
(0) у тебя 8ка головного мозга :)
14 toypaul
 
гуру
01.08.17
14:33
у справочника есть метода Выбрать, который форму списка откроет модально и по окончании вернет выбранный элемент. а ты тут нагородил огород.
15 Масянька
 
01.08.17
14:51
(13) Последствия Колчаковских фронтов :)))))))))))
16 АЛьФ
 
01.08.17
15:51
2(14) У него в форму выбора передается параметр для включения отбора.