Имя: Пароль:
1C
 
Поиск данных в управляемой форме списка 1С 8.2
0 SuperMario
 
01.10.10
16:12
Всем доброе время суток!
Необходимо отключить стандартный поиск в управляемой форме списка 8.2 (поиск по вхождению подстроки в строку) и установить поиск по первым символам (как в обычном приложении). Возможно ли это реализовать и каким средствами?
1 SuperMario
 
03.10.10
09:24
up
2 iamnub
 
03.10.10
15:53
Вопрос не праздный.
3 Klinov
 
03.10.10
17:31
Могу попробовать подсказать (работать наверно будет, но придется допиливать).

1. Убрать с командной панели стнадартный значок с лупой.
2. На командную панель навесить поле поиска (строка) и рядом кнопки для поиска(вперед, назад).

3. Код может выглядеть примерно так:

&НаКлиенте
Процедура НайтиПоВхождению(Команда)
   
   Порядок = Строка(Список.Порядок);    
   Текстрока = Элементы.Список.ТекущаяСтрока;
   
   Элементы.Список.ТекущаяСтрока = НайтиСледующийЭлемент(Текстрока,СтрокаПоиска,Порядок);
КонецПроцедуры

&НаСервереБезКонтекста
Функция НайтиСледующийЭлемент(СсылкаНаТекЭлемент,СтрокаПоиска,Порядок)
   Если Порядок = "Наименование" Тогда
       
       Запрос = Новый Запрос;
       Запрос.Текст ="ВЫБРАТЬ
       |    ОбъектыЗатрат.Ссылка
       |ИЗ
       |    Справочник.ОбъектыЗатрат КАК ОбъектыЗатрат
       |
       |УПОРЯДОЧИТЬ ПО
       |    ОбъектыЗатрат.Наименование";
       ТЗ = Запрос.Выполнить().Выгрузить();
       НачатьПоиск = Ложь;
       Для Каждого стрТЗ из ТЗ Цикл
           Если стрТЗ.Ссылка = СсылкаНаТекЭлемент Тогда
               НачатьПоиск = Истина;
           КонецЕсли;
           
           Если Не НачатьПоиск Тогда
               Продолжить;
           КонецЕсли;
           
           НаименованиеЭлементаСправочника = стрТЗ.Ссылка.Наименование;
           УрезанноеДляПоискаНаименование = Лев(НаименованиеЭлементаСправочника,СтрДлина(СтрокаПоиска));
           Если  ВРЕГ(УрезанноеДляПоискаНаименование) = ВРЕГ(СтрокаПоиска) Тогда
               Возврат стрТЗ.ссылка;
           КонецЕсли;
       КонецЦикла;        
   КонецЕсли;
КонецФункции
4 iamnub
 
03.10.10
18:43
Сурово. Что ж это 1С-ники то так облажались .?
5 SuperMario
 
04.10.10
08:34
(3) не ice :(
Убрать из состава команд - это еще не все. Как только в списке начать набор символов, то поиск сам взлетает и просится помочь. И отловить никак его (во всяком случае я пока события не нашел).

(4) по ходу так. Сейчас через франч отправил вопрос в 1С.
6 Umka2008
 
08.10.10
18:14
Ага, и что ответили? Что нельзя искать в 8.2 как 77 теперь?
7 Umka2008
 
08.10.10
18:19
ИМХО а так даже лучше, выводятся все похожие товары это раз, во вторых очень быстро
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс