Имя: Пароль:
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 и закончил редактирование. В моем же случае пользователь продолжает вводить текст, вот только список выбора уже не нужен.
Мне его убрать нужно.