Имя: Пароль:
1C
1С v8
Убрать список выбора у элемента формы, программно
0 yuch
 
23.10.12
18:11
Управляемое приложение. У элемента формы в автоподборе указан алгоритм который предлагает список вариантов основанный на введенном тексте. Но когда вводимый текст не соответствует каким либо вариантам, у элемента зависает последний список выбора. Собственно можно его убрать программно?
1 GLazNik
 
23.10.12
18:12
(0) СписокВыбора.Очистить() не?
2 yuch
 
23.10.12
18:15
(1) Если про Элемент.СписокВыбора.Очистить() то не.
3 vmv
 
23.10.12
18:16
ДанныеВыбора = Новый СписокЗначений;

в каком обработчике это сделать догадайся по терму ДанныеВыбора

именно они выпадают лезут когда идет набор текста в поле ввода
4 yuch
 
23.10.12
18:19
(3) Именно. Я обрабатываю событие АвтоПодбор. И там для параметра ДанныеВыбора указываю какой список выводить пользователю.
Потом пользователь вводит еще несколько символов, в результате чего варианты для выбора отсутствуют, а список выбора все равно висит.
Надеюсь объяснил понятно.
5 vmv
 
23.10.12
18:22
я так делаю, тьотки давольны

&НаКлиенте
Функция ПериодичностьПолучитьДанныеВыбора()
   
   ДанныеВыбора = Новый СписокЗначений;
   
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Месяц"));
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Квартал"));
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Полугодие"));
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.Год"));
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"), "Период");
   
   Возврат ДанныеВыбора;
   
КонецФункции

// ----- Обработчики реквизитов формы "РфПериодичность", методы событий

&НаКлиенте
Процедура РфПериодичностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   
       Если ЯБухой Тогда
ДанныеВыбора = Новый СписокЗначений;
   
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"),
"А вот хрена тебе, сучка крашеная");
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"),
"А вот хрена тебе, сучка крашеная");
   ДанныеВыбора.Добавить(ПредопределенноеЗначение("Перечисление.Периодичность.ПустаяСсылка"),
"А вот хрена тебе, сучка крашеная");

       Иначе
   ДанныеВыбора = ПериодичностьПолучитьДанныеВыбора();
     КонецЕсли;
КонецПроцедуры
6 yuch
 
23.10.12
18:24
(5) Мне бы не показать, мне бы убрать.
7 vmv
 
23.10.12
18:27
в (5) это это предложение

ОкончаниеВводаТекста(<Текст>, <ДанныеВыбора>, <СтандартнаяОбработка>)

тебе ни о чем не намекает?

это и есть место где нужно снова переопределить данныевыбора, прохавав введенный текст, ну там проверить на наличие такого текста в текущих значениях элементов списка, переформировать его и так далее
8 yuch
 
23.10.12
18:38
(7) ОкончаниеВводаТекста наступает когда пользователь нажал enter и закончил редактирование. В моем же случае пользователь продолжает вводить текст, вот только список выбора уже не нужен.
Мне его убрать нужно.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн