Имя: Пароль:
1C
1С v8
Поиск физлица по номеру телефона в Рознице
0 volchara
 
18.05.17
19:54
Подскадите пож. как можно найти физлицо по номеру телефона в конфигурации розница. регистра Контактная Информация нет, так почему-то не ищет

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ФизическиеЛица.Ссылка
        |ИЗ
        |    Справочник.ФизическиеЛица КАК ФизическиеЛица
        |ГДЕ
        |    ФизическиеЛица.КонтактнаяИнформация.НомерТелефонаБезКодов ПОДОБНО &Телефон";
    
    Запрос.УстановитьПараметр("Телефон", Телефон);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
1 Мимохожий Однако
 
18.05.17
20:01
(0) Сначала выясни, где лежит этот номер.
2 volchara
 
18.05.17
20:07
Я так понимаю в табчасти КонтактнаяИнформация справочника ФизическиеЛица
3 Мимохожий Однако
 
18.05.17
20:12
Так что не получается? Делай запрос не к справочнику,  а к его табличной части Контактная информация
4 Мимохожий Однако
 
18.05.17
20:14
ВЫБРАТЬ
    ФизическиеЛицаКонтактнаяИнформация.Ссылка КАК Ссылка
ИЗ
    Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
ГДЕ
    ФизическиеЛицаКонтактнаяИнформация.НомерТелефонаБезКодов = &НомерТелефонаБезКодов
5 volchara
 
18.05.17
20:23
(4) Так тоже не ищет((
6 Мимохожий Однако
 
18.05.17
20:37
(5) Сначала сделай запрос без условий. Возможно, формат телефона кривит
7 volchara
 
18.05.17
21:15
(6) Походу телефон не там хранится, пустая таблица номеров, но и не в регистре, нет ничего подобного
8 Мимохожий Однако
 
18.05.17
22:19
Покажи картинку, где ты видишь реальный номер. Может быть, он в дополнительных реквизитах затесался. Или в контактах
9 RomaH
 
naïve
19.05.17
07:09
номер телефона без кодов - случайно не число?
10 Маркусс
 
19.05.17
07:26
Конструктором в консоли отчетов (в режиме 1С предприятия) создай выборку всей контактной инфы. Затем накладывай условия.
11 Важный Василий
 
19.05.17
08:12
Телефон = СокрЛП(ТелефонКлиента);
    Телефон = СтрЗаменить(Телефон, "-","");
    Телефон = СтрЗаменить(Телефон, " ","");
    Телефон = СтрЗаменить(Телефон, "(","");
    Телефон = СтрЗаменить(Телефон, ")","");
    Телефон = СтрЗаменить(Телефон, Символы.ПС,"");
    Телефон = "%" + Прав(Телефон,10) + "%";
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ФизическиеЛицаКИ.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКИ
        |ГДЕ
        |    ФизическиеЛицаКИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
        |    И ФизическиеЛицаКИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонФизическогоЛица)
        |    И ФизическиеЛицаКИ.Представление ПОДОБНО &Представление";
    
    Запрос.УстановитьПараметр("Представление", Телефон);

У себя так организовал поиск телефонов. Предварительно обучили забивать телефон без пробелов и символов, а по базе прошлись обработкой по приведению номеров "в порядок"
12 igorPetrov
 
19.05.17
08:13
(0) Всё ищет. Если используешь "Подобно" - не забывай про "%" и все нормально будет
13 h-sp
 
19.05.17
09:50
может

   |    И ФизическиеЛицаКИ.Представление = &Представление";

??

зачем эти пляски с ПОДОБНО ?
14 Важный Василий
 
19.05.17
09:58
(12)
Телефон = "%" + Прав(Телефон,10) + "%";
Не забываю.

(13)

Если телефон забит в формате +7********* или 8******** то приходится использовать ПОДОБНО
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший