Имя: Пароль:
1C
1С v8
Поиск партнера по части номера телефона
, ,
0 prad2002
 
25.05.20
10:15
Доброго времени суток!
Некорректно работает поиск по части номера телефона партнера, УТ11. Индекс очищал-обновлял - не помогает. При этом по части e-mail ищет без проблем. По полному номеру телефона тоже ищет. Только проблема в том, что тел может быть записан по-разному (с +375 или без и т.д.)
Здесь скрин по е-майл ищет без проблем https://prnt.sc/sn7u8c

Здесь скрин по полному номеру тоже ищет https://prnt.sc/sn7vhk

Здесь скрин если выпилить последнюю цифру в номере (или первую, неважно) - уже ничего не находит https://prnt.sc/sn7w03
1 Волшебник
 
модератор
25.05.20
10:17
проиндексируй поле и ищи через LIKE "цифры%"
впереди процента быть не должно
2 prad2002
 
25.05.20
10:30
(1) так то если запросом самому писать поиск, хотелось бы полнотекстовым обойтись
3 Волшебник
 
модератор
25.05.20
10:32
(2) Полнотекстовый поиск ищет по словам, а не по части слов.
4 prad2002
 
25.05.20
10:33
Еще вот так Васю моего находит https://prnt.sc/sn880l
А вот так уже нет https://prnt.sc/sn88l1
5 prad2002
 
25.05.20
10:34
(3) почему тогда по части мыла находит (см. скрин в топике), а по части телефона нет? оба раза строка поиска тип "строка"
6 Волшебник
 
модератор
25.05.20
10:35
(5) Возможно он нашёл по слову до собаки.
7 prad2002
 
25.05.20
13:25
Вообщем, допилил небольшой кусок в общий модуль в процедуру поиска партнера, может кому пригодится


    #Область поиск
    // поиск по контактной информации
    СписокПартнеров.Очистить();
    ЗапросПоиска = Новый Запрос;
    ЗапросПоиска.Текст = "ВЫБРАТЬ
                         |    ПартнерыКонтактнаяИнформация.Ссылка КАК Ссылка,
                         |    ПартнерыКонтактнаяИнформация.Представление КАК Представление
                         |ИЗ
                         |    Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
                         |ГДЕ
                         |    ПартнерыКонтактнаяИнформация.Представление ПОДОБНО &Представление
                         |
                         |СГРУППИРОВАТЬ ПО
                         |    ПартнерыКонтактнаяИнформация.Ссылка,
                         |    ПартнерыКонтактнаяИнформация.Представление";
    ЗапросПоиска.Параметры.Вставить("Представление","%"+СтрокаПоиска+"%");    
    ВыборкаПоиска = ЗапросПоиска.Выполнить().Выбрать();
    Пока ВыборкаПоиска.Следующий() Цикл
        ОснованиеПоиска = "Найдено в реквизите партнера " + ВыборкаПоиска.Ссылка + " - Представление: "+ ВыборкаПоиска.Представление;
        Если НЕ ДобавитьПартнераВСписокНайденныхПолнотекстовымПоиском(СписокПартнеров,ВыборкаПоиска.Ссылка,ОснованиеПоиска, ВыборкаПоиска.Ссылка) Тогда
            Возврат НСтр("ru = 'Слишком много результатов, уточните запрос.'");
        КонецЕсли;
    КонецЦикла;
    #КонецОбласти
8 Злопчинский
 
25.05.20
14:25
ну, если +375 - это однозначно к фузиновцам! они тебе за 3 дня суперсистему соберут, охереешь от счастья!
9 fisher
 
25.05.20
14:28
ПП ищет по частям. А иногда не ищет. Вообще бывает странно работает, если ему чего-то "не так".
Я бы не полагался на ПП в критичных алгоритмах. Я за LIKE.
10 Волшебник
 
модератор
25.05.20
14:35
Я же просил не ставить процент в начале
11 experimentator76
 
25.05.20
16:33
а еще говорят что в 1С вход легкий...
12 Волшебник
 
модератор
25.05.20
16:34
(11) Сообщить("Привет, мир!");
13 experimentator76
 
25.05.20
16:45
(12) неактуально на текущий момент :)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн