Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Поиск по строке
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
1cnovice
Приветствую!
Создал тут поиск по строке аля поиск как в гугле. Но есть проблема: Когда начинаешь вводить символы, выдает похожие результаты - все правильно. Но курсор ввода при этом слетает с поля ввода, приходится мышью его устанавливать, что есть не удобно. Есть какие-то идеи для решения? Или система на такое не способна?

Petre
А куда слетает?
logist
Это точно обычный интерфейс?
Ardi
СтандартнаяОбработка = Ложь;
1cnovice
Цитата(logist @ 25.02.14, 13:02) необходимо зарегистрироваться для просмотра ссылки
Это точно обычный интерфейс?


Обычный (УТП для Украины 1.2.18.1)

Цитата(Ardi @ 25.02.14, 14:01) необходимо зарегистрироваться для просмотра ссылки
СтандартнаяОбработка = Ложь;


есть такая строчка, не помогло.

Наопмню все это дело пишется в
Процедуре Обработки события "Авто подбор текста" для данного поля


Для каждого тел Из Контакты Цикл 
            
            ЭлементыФормы.Телефон.СписокВыбора.Добавить(тел.Представление);        
        КонецЦикла;
         Телефон=ВыбратьИзСписка(ЭлементыФормы.Телефон.СписокВыбора,ЭлементыФормы.Телефон);



Вот фрагмент кода, если надо
Ardi
Попробуйте другие процедуры. Может поможет.
Petre
Телефон=ВыбратьИзСписка(ЭлементыФормы.Телефон.СписокВыбора,ЭлементыФормы.Телефон);

Это уже переход в другой режим.
1cnovice
Что никак нельзя формировать список выбора и в то же время оставлять мигающим курсор в поле ввода? (
Petre
Не знаю таких способов на 8.2. На 8.3 уже есть.
1cnovice
Спасибо, буду как-то дальше выкручиваться. Подумал над вариантом создания 2х полей, одно сделать скрытым спецом под список выбора, а второе - для ввода.
Ardi
Цитата(1cnovice @ 25.02.14, 15:37) необходимо зарегистрироваться для просмотра ссылки
Что никак нельзя формировать список выбора и в то же время оставлять мигающим курсор в поле ввода? (

Создать отдельную форму.
Сверху поле ввода. Снизу список значений.
1cnovice
Рабочий вариант. Если кому - то интересно:
Перем мПолеПодбора, мЭлементПодбора;

Процедура ПолеВводаАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    СписокВыбора = ЭлементыФормы.Найти("ПолеПодбора");
    Если СписокВыбора = Неопределено Тогда
        СписокВыбора = ЭлементыФормы.Добавить(Тип("ПолеСписка"),"ПолеПодбора");
        СписокВыбора.Верх = Элемент.Верх+Элемент.Высота;
        СписокВыбора.Лево = Элемент.Лево;
        СписокВыбора.Ширина = Элемент.Ширина;
        СписокВыбора.УстановитьДействие("Выбор",Новый Действие("ВыборВПоле"));
        СписокВыбора.ПорядокОбхода = Элемент.ПорядокОбхода+1;
    КонецЕсли;
    
    мЭлементПодбора = Элемент;
    мПолеПодбора = СписокВыбора;
    
    СписокОтбора = ОтобратьЗначения(Текст);     //Здесь возвращаем запросом найденные результаты в виде списка значений
    Если СписокОтбора.Количество()<2 Тогда
        ЭлементыФормы.Удалить(СписокВыбора);
        мПолеПодбора = Неопределено;
    Иначе
        СписокВыбора.Значение = СписокОтбора;
        СписокВыбора.Высота = 20*СписокОтбора.Количество();
    КонецЕсли;
    
    Если СписокОтбора.Количество()=1 Тогда
        ТекстАвтоПодбора = СписокОтбора[0].Значение;
    КонецЕсли;
    
КонецПроцедуры

//////////////////////
Процедура ВыборВПоле(Элемент, ЭлементСписка)
    мЭлементПодбора.Значение = ЭлементСписка.Значение;
    ЭлементыФормы.Удалить(Элемент);
КонецПроцедуры


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.