1С:Документооборот - корректировка контактной информации пользователя

1. GusevSI 26.02.25 08:56 Сейчас в теме
Добрый день!

Требуется в контактной информации пользователя очистить e-mail. Пробую вот так, но e-mail пользователя не зачищается:

КонтактнаяИнформацияОбъекта = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Пользователь.Ссылка,,, Ложь);                
                
            Для Каждого Контакт Из КонтактнаяИнформацияОбъекта Цикл
                
                ИндексСтроки = КонтактнаяИнформацияОбъекта.Индекс(Контакт);
                
                Если СокрЛП(Контакт.Вид) = "Email" Тогда    
                     // удалим запись с e-mail для очистки электронного адреса пользователя
                     КонтактнаяИнформацияОбъекта.Удалить(ИндексСтроки);
                КонецЕсли;  
            КонецЦикла;
            
            // запишем измененную (без e-mail) контактную информацию пользователя 
УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(Пользователь.Ссылка, КонтактнаяИнформацияОбъекта, Истина);
Показать


Подскажите, как удалить e-mail из контактной информации.
По теме из базы знаний
Найденные решения
4. ImHunter 336 26.02.25 16:10 Сейчас в теме
(1) Похоже, что перед УстановитьКонтактнуюИнформациюОбъекта(...), КИ нужно зачистить.
6. ImHunter 336 27.02.25 08:36 Сейчас в теме
(5) После очистки - записать нужно.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. GusevSI 26.02.25 10:08 Сейчас в теме
(2) Спасибо, но я ищу удочку, а не рыбу ))
4. ImHunter 336 26.02.25 16:10 Сейчас в теме
(1) Похоже, что перед УстановитьКонтактнуюИнформациюОбъекта(...), КИ нужно зачистить.
5. GusevSI 27.02.25 07:36 Сейчас в теме
(4) Добавил зачистку перед Установить...:

            ИзменяемыйОбъект = Пользователь.Ссылка.ПолучитьОбъект();
            ИзменяемыйОбъект.КонтактнаяИнформация.Очистить();

Почта пока всё равно остается.

КонтактнаяИнформацияОбъекта = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Пользователь.Ссылка,,, Ложь);                
                
            Для Каждого Контакт Из КонтактнаяИнформацияОбъекта Цикл
                
                ИндексСтроки = КонтактнаяИнформацияОбъекта.Индекс(Контакт);
                
                Если СокрЛП(Контакт.Вид) = "Email" Тогда    
                     // удалим запись с e-mail для очистки электронного адреса пользователя
                     КонтактнаяИнформацияОбъекта.Удалить(ИндексСтроки);
                КонецЕсли;  
            КонецЦикла;
            
            // зачистим контактную информацию пользователя
            ИзменяемыйОбъект = Пользователь.Ссылка.ПолучитьОбъект();
            ИзменяемыйОбъект.КонтактнаяИнформация.Очистить();
            

            // запишем измененную (без e-mail) контактную информацию пользователя 
УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(Пользователь.Ссылка, КонтактнаяИнформацияОбъекта, Истина);
Показать
6. ImHunter 336 27.02.25 08:36 Сейчас в теме
(5) После очистки - записать нужно.
8. GusevSI 27.02.25 08:54 Сейчас в теме
(6) Спасибо! Добавил после очистки

         ИзменяемыйОбъект.Записать(); 


и всё отработало :)

КонтактнаяИнформацияОбъекта = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Пользователь.Ссылка,,, Ложь);                
                
            Для Каждого Контакт Из КонтактнаяИнформацияОбъекта Цикл
                
                ИндексСтроки = КонтактнаяИнформацияОбъекта.Индекс(Контакт);
                
                Если СокрЛП(Контакт.Вид) = "Email" Тогда    
                     // удалим запись с e-mail для очистки электронного адреса пользователя
                     КонтактнаяИнформацияОбъекта.Удалить(ИндексСтроки);
                КонецЕсли;  
            КонецЦикла;
            
            // зачистим контактную информацию пользователя
            ИзменяемыйОбъект = Пользователь.Ссылка.ПолучитьОбъект();
            ИзменяемыйОбъект.КонтактнаяИнформация.Очистить();
            ИзменяемыйОбъект.Записать(); 

            // запишем измененную (без e-mail) контактную информацию пользователя 
УправлениеКонтактнойИнформацией.УстановитьКонтактнуюИнформациюОбъекта(Пользователь.Ссылка, КонтактнаяИнформацияОбъекта, Истина);
Показать
7. M_Salakh 27.02.25 08:46 Сейчас в теме
У тебя в "Контакт.Вид" тип данных не строка, а скорей всего ссылка на справочник "Виды КИ". Если сравниваешь со строкой, то попробуй преобразовать сравниваемый вид в строку.
СокрЛП(Строка(Контакт.Вид)) = "Email"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот