Приведение телефонных номеров в порядок

14.04.14

Задачи пользователя - Разное

Код для консоли запросов написан для типовых конфигураций с регистром «Контактная информация». Позволяет унифицировать телефоны и привести их в международный формат с кодом +7.

Используется «Консоль запросов + Обработчик»:

В запрос нужно вставить текст запроса.

В код нужно вставить алгоритм обработки.

Параметры заполнить как на картинке:

Обычно есть несколько видов с наименованием «Телефон», нужно попробовать все по очереди.

Нажать кнопку «Выполнить», результат запроса выгрузится в таблицу.

Далее нажать кнопку «Выполнить обработку», номера будут обработаны и перезаписаны.

 

Выдается протокол, где сообщается, какие номера обработаны, какие нет:

 

Код запроса:

ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    КонтактнаяИнформация.Тип,
    КонтактнаяИнформация.Вид,
    КонтактнаяИнформация.Представление
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Тип = &Тип    
    И КонтактнаяИнформация.Вид = &Вид
    И Подстрока(Представление, 1, 1) <> ""

Код обработки:

ИсхСтр = СокрЛП(Рез.Представление);
РезСтр = "";
Если ИсхСтр <> "" Тогда
    Для Инд = 1 По СтрДлина(ИсхСтр) Цикл
        Симв = Сред(ИсхСтр, Инд, 1);
        Если Найти("0123456789", Симв) = 0 Тогда
            Продолжить;
        КонецЕсли;
        РезСтр = РезСтр + Симв;
    КонецЦикла;
    
    Если СтрДлина(РезСтр) = 10 Тогда
        РезСтр = "+7" + РезСтр;
    КонецЕсли;
    
    Если СтрДлина(РезСтр) = 11 И Лев(РезСтр, 1) = "8" ИЛИ Лев(РезСтр, 1) = "7" Тогда
        РезСтр = "+7" + Сред(РезСтр, 2);
    КонецЕсли;
    
    ПредставлениеОбъекта = "" + ТипЗнч(Рез.Объект) + ": " + Рез.Объект;
    Если СтрДлина(РезСтр) <> 12 Тогда
        Сообщить(ПредставлениеОбъекта + " Неадеватный номер: " + ИсхСтр + " Пытались: " + РезСтр);
    ИначеЕсли РезСтр <> ИсхСтр Тогда
        Сообщить(ПредставлениеОбъекта + " Замена: " + ИсхСтр + " На: " + РезСтр);
        МЗ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
        МЗ.Объект = Рез.Объект; МЗ.Тип = Рез.Тип; МЗ.Вид = Рез.Вид;
        МЗ.Прочитать();
        МЗ.Объект = Рез.Объект; МЗ.Тип = Рез.Тип; МЗ.Вид = Рез.Вид;
        МЗ.Представление = РезСтр;
        МЗ.Записать();
    КонецЕсли;
    
КонецЕсли;

Конечно, можно было бы эту полезную вещь обернуть в обработку, но некогда, если кто сделает, высылайте мне на почту, вставлю в статью.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Разное 1С v8.3 Отраслевые Туризм и путешествия Россия Абонемент ($m)

🗺 Планировщик путешествий для 1С. Простое и эффективное решение для организации поездок любой сложности

1 стартмани

13.10.2025    545    2    Bepcuc    5    

5

Разное Пользователь 1С v8.3 Управляемые формы Абонемент ($m)

Посимвольное сравнение двух текстов, с подкрашиванием отличающихся символов и выводом информации о различающихся символах. Поможет в работе пользователям для поиска отличий в двух текстах.

1 стартмани

25.06.2025    1234    2    Sher_Han    8    

5

Разное Аудит и бухгалтерские услуги, юриспруденция Россия Абонемент ($m)

Современные NDA становятся всё жёстче, а исполнители сталкиваются с необоснованными штрафами и рисками. В статье разбираем ключевые юридические нюансы, даём рекомендации по снижению рисков при подписании NDA и делимся практическими советами. Как грамотно ограничить штрафы, уточнить понятие конфиденциальной информации, сократить срок действия NDA и зафиксировать свою позицию в контракте? Читайте в нашем материале.

1 стартмани

17.02.2025    1526    Adapta    1    

6

Разное 1С v8.3 1С:Комплексная автоматизация 2.х Абонемент ($m)

Универсальное расширение для работы с колесом баланса в любой конфигурации 1С с сохранением истории предыдущих оценок.

1 стартмани

04.02.2025    1789    2    itsys    0    

5

Разное 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Продукт для ведения родового дерева, поможет решить задачи по систематизации и визуализации информации по родословной.

10 стартмани

12.09.2024    3107    8    Kassper    9    

32

Разное 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Тренажер Азбуки Морзе на 1С без внешних компонент.

1 стартмани

17.04.2024    2175    2    Irwin    2    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. leles 67 19.04.14 21:56 Сейчас в теме
Какая у вас консоль запросов интересная. С обработкой выборки, у меня такой нет.
Поделитесь, пожалуйста, буду благодарен.
2. fixin 4309 21.04.14 10:10 Сейчас в теме
3. Forest83 66 16.06.16 12:27 Сейчас в теме
Спасибо! За консоль на удовольствия перевел)
Еще бы она текст обработчика сохраняла - цены бы не было!))

В моем случае видимо совсем все запущено. Обработчик зациклился.
Но для старта помощь просто огромная!
4. php5 29 17.11.16 22:59 Сейчас в теме
Спасибо за готовый алгоритм, сэкономил немного времени!!!
Для отправки сообщения требуется регистрация/авторизация