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

14.04.14

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

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

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

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

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

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

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

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

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

 

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

 

Код запроса:

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

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

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

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

См. также

Учет домашней квартплаты

Разное Платформа 1С v8.3 Конфигурации 1cv8 Энергетика и ЖКХ Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Позволяет в одном документе собрать записи по всем коммунальным платежам и показаниям бытовых приборов. Вы не пропустите и не забудете свой коммунальный платеж. Будете точно знать ежемесячную сумму коммуналки по всем объектам собственности. Расширение предназначено для самой популярной конфигурации 1С:Бухгалтерия 8, ред. 3. Объекты расширения не имеют заимствования конфигурации. Его легко встроить в другие типовые конфигурации 1С.

1 стартмани

30.01.2024    470    2    kwn2000    2    

5

Конфигурация "Рюкзачок"

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

Составление комплекта вещей в поездку, поход, для работы и т.п. Конфигурация разработана для платформы 1С:Предприятие 8.3 (конкретно учебная версия 8.3.13.1644, потому что более новые утомили меня своими сюрпризами).

1 стартмани

19.01.2024    6116    5    AnatolPopov    31    

36

Конфигурация "Казначей группы (класса/команды/...)"

Разное Взаиморасчеты Платформа 1С v8.3 Общественные и некоммерческие структуры Обучение, бизнес-тренинг, курсы Развлечения, искусство, спорт Домашние учет и финансы Управленческий учет Абонемент ($m)

Нано- (даже не микро- !) конфигурация для тех, кто выступает в роли казначея класса/группы/команды, и в чьи задачи входит сбор денег с участников за участие в каких-то мероприятиях, а потом передача собранных денег организаторам этих мероприятий.

1 стартмани

03.11.2023    669    3    q_i    0    

11

Математический тренажер через телеграмм (feat 1С)

Математика и алгоритмы Разное Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расширение (+ обработка) представляют собою математический тренажер. Ваш ребенок сможет проверить свои знание на математические вычисление до 100.

2 стартмани

29.09.2023    1890    maksa2005    8    

22

Генератор математических примеров

Математика и алгоритмы Разное Абонемент ($m)

Маленькая программа для генерации примеров. C#

1 стартмани

28.09.2023    1284    1    FIERYLIONS    18    

7

Конструктор: ЧислоПрописью и СтрокаСЧислом

Разное Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Абонемент ($m)

Возможно я просто ленивый, а может потому что понадобилось... в общем сделал конструктор параметров. Может 1С когда-нибудь сделает что-нибудь такое в конфигуратор?

1 стартмани

15.09.2023    3054    11    vandalsvq    8    

48

Viewer 1.0 (библиотека картинок, wingding, webdings, символы по кодам)

Разное Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Иногда нужно посмотреть все картинки из библиотеки картинок или шрифты Webdings/Wingdings, вот собственно эта обработка для этого...

1 стартмани

04.09.2023    765    2    Незнайка    0    

11

Мобильное приложение "Семейное"

Разное Платформа 1С v8.3 Домашние учет и финансы Россия Управленческий учет Абонемент ($m)

Это программа, предназначенная для учета, анализа и управления личными и семейными делами.

1 стартмани

02.07.2023    1066    1    SVGProger    0    

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

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