|
Определить мобильный телефон или нет в запросе | ☑ | ||
---|---|---|---|---|
0
TolikoSprosit
06.02.20
✎
12:50
|
Есть данные вида: 912ххххххх Россия; 24xxxxxxx Белоруссия; и тд
Другими словами, есть номер телефона без кода страны и страна. Задача: в запросе понять мобильный он или нет. Мы можем создать любую вспомогательную структуру данных где будем хранить 912 Россия - мобильный, 24 Белоруссия - мобильный например, или что-то другое, все что угодно лишь бы в запросе быстро(!) определить мобильный он или нет. Давай, Миста, предложи элегантное решение, интересно как бы вы сделали. У меня совсем хороших идей нет. |
|||
1
d4rkmesa
06.02.20
✎
12:53
|
(0) Использовать "ПОДОБНО" не предлагать?
|
|||
2
Надо работать
06.02.20
✎
12:53
|
Выбор когда Тел Подобно "912%" Тогда Истина Конец
|
|||
3
vicof
06.02.20
✎
12:54
|
Это не элегантно)
|
|||
4
Жан Пердежон
06.02.20
✎
12:57
|
Процедура ПередЗаписью()
ЭтотОбъект.ЭтоМобильный = ЭтоМобильныйТел(); КонецПроцедуры ***************************** Запрос = Новый Запрос("ВЫБРАТЬ ЭтоМобильный ИЗ ... |
|||
5
Ненавижу 1С
гуру
06.02.20
✎
12:58
|
мобильный может и на 495 начинаться
|
|||
6
TolikoSprosit
06.02.20
✎
12:58
|
Подобно в больших соединения будет медленно, тем более только в России кодов типа "912" много около 100
|
|||
7
catena
06.02.20
✎
12:59
|
А страна у телефона есть? А то у меня вот домашний номер на 24 начинается.
|
|||
8
TolikoSprosit
06.02.20
✎
13:00
|
(5) Там "4959" первые 4 цифры, и да эти случаи тоже надо обрабатывать
|
|||
9
catena
06.02.20
✎
13:00
|
(6)Без подобно только создавать к телефону отдельный реквизит с одним только кодом.
|
|||
10
TolikoSprosit
06.02.20
✎
13:00
|
(7) Да, страны есть
|
|||
11
vicof
06.02.20
✎
13:00
|
(6) Заведи классификатор мобильных номеров
|
|||
12
TolikoSprosit
06.02.20
✎
13:01
|
(9) Нет, реквизит "ОдинТолькоКодДляОпределенияМобильного" хуже чем просто флаг "Мобильный" уж тогда, но и флаг мобильный не нужен
|
|||
13
TolikoSprosit
06.02.20
✎
13:02
|
(11) Какого вида и как соединять?
|
|||
14
TolikoSprosit
06.02.20
✎
13:03
|
(4) Реквизит "Это мобильный" не нужен, слишком большой набор телефонов
|
|||
15
pechkin
06.02.20
✎
13:03
|
если стоит вопрос быстродействия, то флаг нужен
|
|||
16
vicof
06.02.20
✎
13:04
|
(13) Хрен знает, что ты там с чем соединяешь и какой вид тебе нужен.
"Задача: в запросе понять мобильный он или нет." Булево поле в классификаторе. |
|||
17
pechkin
06.02.20
✎
13:04
|
это называется денормализация для увеличения быстродействия
|
|||
18
TolikoSprosit
06.02.20
✎
13:06
|
(15) ну не совсем-скорость скорость, просто приемлемое время. Реквизит вводить пока не будем, большая база.
|
|||
19
TolikoSprosit
06.02.20
✎
13:07
|
(16) В каком классификаторе?
|
|||
20
d4rkmesa
06.02.20
✎
13:08
|
Тупо вычислить подстроку и соединить с таблицей мобильных префиксов из параметров запроса не?
|
|||
21
TolikoSprosit
06.02.20
✎
13:09
|
(20) ну я туда и думаю, но коды же все разной длинны...
|
|||
22
d4rkmesa
06.02.20
✎
13:11
|
(21) Ну, не сильной уж разной, думаю, от 2 до 5.
|
|||
23
vicof
06.02.20
✎
13:11
|
(19) Который ты сделаешь
|
|||
24
d4rkmesa
06.02.20
✎
13:12
|
У мобильных в РФ можно считать что 3 символа. Или нет? Или номера как попало, с пробелами, дефисами, скобками и т.д.?
|
|||
25
TolikoSprosit
06.02.20
✎
13:15
|
(24) Номера в "очищенном" виде, только цифры без пробелов и кодов стран.
Нет, не 3 символа, есть еще "4959" и "8129" |
|||
26
TolikoSprosit
06.02.20
✎
13:19
|
Мне не очень нравится:
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТелефонныеКоды КАК ТелефонныеКоды ПО (ПОДСТРОКА(Телефон.Номер, 0, 2) = ТелефонныеКоды.Код ИЛИ ПОДСТРОКА(Телефон.Номер, 0, 3) = ТелефонныеКоды.Код ИЛИ ПОДСТРОКА(Телефон.Номер, 0, 4) = ТелефонныеКоды.Код) И Телефон.Страна = ТелефонныеКоды.Страна |
|||
27
Жан Пердежон
06.02.20
✎
13:21
|
(26) элегантней и быстрее чем в (4) ничего не придумаешь
|
|||
28
TolikoSprosit
06.02.20
✎
13:23
|
(27) ДА, это моя первая идея. Но нужно что-то другое.
|
|||
29
vicof
06.02.20
✎
13:34
|
(28) Почему?
|
|||
30
TolikoSprosit
06.02.20
✎
13:40
|
(29) Справочник телефонов очень большой. Его сложно будет быстро администрировать.
|
|||
31
vicof
06.02.20
✎
13:43
|
(30) Это не твоя проблема
|
|||
32
TolikoSprosit
06.02.20
✎
13:48
|
(31) Друг, иди отсюда)
|
|||
33
vicof
06.02.20
✎
13:50
|
Ты мне не друг) так что куда хочу, туда и хожу.
|
|||
34
palsergeich
06.02.20
✎
13:50
|
(0) если автоматизировать бардак - получится автоматизированный бардак.
Надо наводить порядок в НСИ, а не постфактум на каждое исключение писать патч. По моему неполохо это сделано в контактной информации в БСП. Отдельно код страны, отдельно код города, отдельно номер в читаемом виде и отдельно номер слитно. Все остальное приведет к постоянной борьбе с тем что введено не так |
|||
35
TolikoSprosit
06.02.20
✎
14:14
|
(34) Это все хорошо и прекрасно и порядок и красота, пока на практике:
Длинна кода города, разная для разных стран и регионов; А 495xxxxxxx - почти всегда не мобильный, а 4959xxxxxx - мобильный; Если у вас порядок в базе и вы безошибочно по любому своему телефону можете сказать мобильный он или нет, то расскажите пожалуйста как у вас все устроено, я бы с радостью почитал. |
|||
36
Жан Пердежон
06.02.20
✎
14:29
|
(30) причем тут администрирование вообще?
|
|||
37
palsergeich
06.02.20
✎
14:44
|
(35) коды мобильных операторов в открытом доступе.
При наличии прямого номера - в лоб задача не решается. Но у том же интернете есть пулы номеров, принадлежащие мобильным провайдерам |
|||
38
palsergeich
06.02.20
✎
14:46
|
||||
39
TolikoSprosit
06.02.20
✎
14:49
|
(37) Давайте лучше про ваш порядок в НСИ)
|
|||
40
palsergeich
06.02.20
✎
14:50
|
(39) что интересно?
|
|||
41
TolikoSprosit
06.02.20
✎
14:52
|
(40) Все то же, как у вас организованы/могли бы быть организованы данные для решения задачи из первого поста)
|
|||
42
Кодер
06.02.20
✎
15:47
|
Если это номера, с которых тебе звонили, то с "прямыми мобильными", то есть вида +7495[7 цифр], чуть проще. Когда я звоню с такого номера, то определяется +7985[7 цифр]. То есть код оператора однозначно другой (и на него тоже можно звонить).
В остальном всё просто. Первые 4 цифры российского телефонного номера определяют оператора, и что-то типа региона. 7901 - билайн мобильные, 7902, 7910, 7916, 7985 - МТС мобильные, 7495 - МГТС (Москва) стационарные etc. Таблицы эти безусловно есть и легко гуглятся. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |