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