Как программно изменить E-Mail сотрудника в ЗУП 3.1?

1. frkbvfnjh 728 23.03.23 12:49 Сейчас в теме
Всем доброго времени! Подскажите как правильно изменить или установить E-Mail сотрудника в ЗУП 3.1 программно? Знаю что просто присвоить строку нельзя, нужно вроде как через метод УправлениеКонтактнойИнформацией.ОписаниеНовойКонтактнойИнформации() заполнить данные, но вот как правильно потом записать эти данные в табличную часть контактной информации? Какие методы правильно использовать? Вроде как в полях Значение и ЗначенияПолей должны быть данные то ли в формате JSON, то ли XML, но как из преобразовать правильно к этому формату?
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Zevzm 23.03.23 13:54 Сейчас в теме
(1)Попробуйте найти использование процедуры УправлениеКонтактнойИнформациейСлужебный.УстановитьКонтактнуюИнформациюОбъектаДляСсылки(СсылкаИлиОбъект, КонтактнаяИнформация, ОбъектМетаданных, Замещать);
и посмотреть в отладке, что там в контактной информации при записи ФЛ.
3. talib 24.03.23 04:58 Сейчас в теме
ФизЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.Наименование);
ТЗ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ФизЛицо, , ТекущаяДата(), Ложь);
НайденнаяСтрока = ТЗ.Найти(Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Рабочая почта"), "Вид");
Если НайденнаяСтрока = Неопределено Тогда
	Иначе
	НайденнаяСтрокаПочта = НайденнаяСтрока.Представление;
КонецЕсли;

ВидКИ = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Рабочая почта");	
ТипКИ = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
ПредставлениеПочта        = Почта;
Если НайденнаяСтрокаПочта <> ПредставлениеПочта Тогда
	Попытка
		ОбъектXDTOКИ = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияXDTOПоПредставлению(ПредставлениеПочта, ТипКИ);
		ЗначенияПолей = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ); //необходима, чтобы не затиралась КИ при перезаписи				
		УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ФизЛицо, ЗначенияПолей, ВидКИ, ТекущаяДата(), Истина);
					ЗарегистрироватьИзменения(ФизЛицо)
	Исключение 
	КонецПопытки;
КонецЕсли;
Показать
4. frkbvfnjh 728 24.03.23 08:33 Сейчас в теме
(3) Ого, круто, спасибо! А метод ЗарегистрироватьИзменения(ФизЛицо), я так понимаю, вызывается что бы на объект на регистрацию поставить, если обмен настроен?
5. talib 24.03.23 12:51 Сейчас в теме
(4) Прошу прощения, выдернул из обработки импорта данных из AD.
Да, дальше идет регистрация.
Сама процедура ЗарегистрироватьИзменения в вашем случае не нужна.

Процедура ЗарегистрироватьИзменения(ФизЛицоСсылка)
	
	СсылкаНаУзел = ПланыОбмена.МиграцияПриложений.НайтиПоКоду("ДО"); 
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Сотрудники.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.Сотрудники КАК Сотрудники
		|ГДЕ
		|	Сотрудники.ФизическоеЛицо = &ФизическоеЛицо";
	
	Запрос.УстановитьПараметр("ФизическоеЛицо", ФизЛицоСсылка);
	
	РезультатЗапроса = Запрос.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		ПланыОбмена.ЗарегистрироватьИзменения(СсылкаНаУзел, Выборка.Ссылка); 		
	КонецЦикла;
	
КонецПроцедуры
Показать
6. Балабас 167 24.03.23 17:44 Сейчас в теме
	
ЕмайлХМЛ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(СтрокаТаблицы.АдресЭП,СтрокаТаблицы.АдресЭП,Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
ЕмайлJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ЕмайлХМЛ);
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(СтрокаТаблицы.ссылка, ЕмайлJSON, Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица, ТекущаяДата(), Истина);
Оставьте свое сообщение
Вакансии
Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Программист 1С (ERP, УХ, КА 2, УТ 11), удаленно
Москва
зарплата от 160 000 руб.
Полный день

Аналитик 1С
Москва
зарплата от 200 000 руб.
Полный день

Консультант 1С / Специалист поддержки 1C
Екатеринбург
зарплата от 70 000 руб.
Полный день

Технический архитектор 1С
Екатеринбург
зарплата от 200 000 руб.
Полный день