Можно банально искать номер запросом из «Консоли запросов» /пример для Альфы5″/:
ВЫБРАТЬ
КонтактнаяИнформация.Объект КАК Контрагент,
КонтактнаяИнформация.Поле5 КАК Телефон
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
КонтактнаяИнформация.Поле5 = &Телефон
И КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
И КонтактнаяИнформация.Поле5 <> ""
/для бухгалтерии и ЗУП строку «Поле5» заменить на «Представление»/
Проблема в том, что нужно точно угадать в каком формате записан номер: +7(***)***-**-** или ***-**-**
или 8(***)***-**-** или +7(****)**-**-** или 8( )******.**.** и т.д.
Можно ввести жесткий формат для записи номеров телефонов, а как быть с уже записанными 10тыс. номерами?
Самый точный поиск: выбрать все номера с владельцами, перевести номера в только цифровой формат и искать по этой супер таблице текущий номер/кусок номера/. Но это будет очень не быстро. Если допустить незначительную погрешность /когда номер в базе записан в нетрадиционном формате, например: *.**.**.* и т.д./
то можно искать номер на входящие в него цифровые блоки. например: блок1=»***» , блок2=»**» , блок3=»**» и т.д.
В этом случае скорость поиска значительно увеличится. Для поиска, у введенного номера будут удалены «+7» и первая «8» если номер начинается на «88». Выделяются цифровые символы и они разбиваются на блоки поиска. Должно остаться не менее 6 цифровых символов номера. Т.е. 6 последних цифр будет достаточно для поиска.
В модуле объекта /для Альфы5/ есть закомментированный пример вытягивания номера из внешнего источника /объект конфигурации «Внешний источник»/. Найденые косяки в личку.