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