Каталог решений - Приведение телефонных номеров в порядок

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

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

В наличии

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

Категория:

Описание

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

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

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

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

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

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

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

 

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

 

Код запроса:

ВЫБРАТЬ

       КонтактнаяИнформация.Объект,

       КонтактнаяИнформация.Тип,

       КонтактнаяИнформация.Вид,

       КонтактнаяИнформация.Представление

ИЗ

       РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация

ГДЕ

       КонтактнаяИнформация.Тип = &Тип

       И КонтактнаяИнформация.Вид = &Вид

       И Подстрока(Представление, 1, 1) <> «»

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

ИсхСтр = СокрЛП(Рез.Представление);

РезСтр = «»;

Если ИсхСтр <> «» Тогда

       Для Инд = 1 По СтрДлина(ИсхСтр) Цикл

             Симв = Сред(ИсхСтр, Инд, 1);

             Если Найти(«0123456789», Симв) = 0 Тогда

                    Продолжить;

             КонецЕсли;

             РезСтр = РезСтр + Симв;

       КонецЦикла;

      

       Если СтрДлина(РезСтр) = 10 Тогда

             РезСтр = «+7» + РезСтр;

       КонецЕсли;

       Если СтрДлина(РезСтр) = 11 И Лев(РезСтр, 1) = «8» ИЛИ Лев(РезСтр, 1) = «7» Тогда

             РезСтр = «+7» + Сред(РезСтр,2);

       КонецЕсли;

      

       ПредставлениеОбъекта = «» + ТипЗнч(Рез.Объект) + «: » + Рез.Объект;

       Если СтрДлина(РезСтр) <> 12 Тогда

             Сообщить(ПредставлениеОбъекта + » Неадеватный номер: » + ИсхСтр + » Пытались: » + РезСтр);

       ИначеЕсли РезСтр <> ИсхСтр Тогда

             Сообщить(ПредставлениеОбъекта + » Замена: » + ИсхСтр + » На: » + РезСтр);

             МЗ = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();

             МЗ.Объект = Рез.Объект; МЗ.Тип = Рез.Тип; МЗ.Вид = Рез.Вид;

             МЗ.Прочитать();

             МЗ.Объект = Рез.Объект; МЗ.Тип = Рез.Тип; МЗ.Вид = Рез.Вид;

             МЗ.Представление = РезСтр;

             МЗ.Записать();

       КонецЕсли;

      

      

КонецЕсли;

 

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

has been added to your cart:
Оформление заказа