HelpF.pro

Работа с контактной информацией в типовых конфигурациях

Код 1C v 8.х
 // Исправляем значения Контактной Информации контрагента в Регистре сведений
Функция ОчиститьEmail(
    Контрагент, 
    ТипКонтактнойИнформации,
    ВидКонтактнойИнформации,
    Представление 
    )

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

    // #2 Отбираем (по измерениям)
    НаборЗаписей.Отбор.Объект.Установить(Контрагент);
    НаборЗаписей.Отбор.Тип.Установить(ТипКонтактнойИнформации);
    НаборЗаписей.Отбор.Вид.Установить(ВидКонтактнойИнформации);    

    // #3 Читаем набор записей
    НаборЗаписей.Прочитать();

    // #4 редактируем в цикле каждую запись из набора
    Для каждого СтрНабЗап Из НаборЗаписей Цикл

        СтрНабЗап.Представление    = ""; 

        сообщить("" + Контрагент + " | " 
        + ТипКонтактнойИнформации + " | " 
        + ВидКонтактнойИнформации + " | " 
        + Представление + " -> " + СтрНабЗап.Представление + " [Ok!]");

    КонецЦикла;

    // #5 Сохраняем набор записей
    НаборЗаписей.Записать();    

КонецФункции

// Получить таблицу значений
// Записи из Регистра Сведений КонтактнаяИнформация с некорректными Email
функция ПолучитьТЗ()        

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1000000
    |    КонтактнаяИнформация.Объект,
    |    КонтактнаяИнформация.Тип,
    |    КонтактнаяИнформация.Вид,
    |    КонтактнаяИнформация.Представление,
    |    (ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(1000))) как стрПредставление
    |ИЗ
    |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    |    КонтактнаяИнформация.Тип = &Тип
    |    //И КонтактнаяИнформация.Вид = &Вид    
    |    И (ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(1000))) <> &ПустоеЗначение        
    |    И НЕ КонтактнаяИнформация.Представление ПОДОБНО &ШаблонEmail";

    //Параметры запроса:    

    // Типы контактной информации
    Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);

    // пустая строка
    Запрос.УстановитьПараметр("ПустоеЗначение","");// Строка

    // критерий отбора для примера простой - строка содержит символ "@" - значит это почта
    Запрос.УстановитьПараметр("ШаблонEmail","%@%");// Строка
    Результат = Запрос.Выполнить();    

    //Выборка = Результат.Выбрать();

    // результат запроса выгрузить в
    // таблицу значений 
    ПлохиеEmailТЗ   = Результат.Выгрузить();

    Возврат ПлохиеEmailТЗ;
КонецФункции   

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/1523.html