Как программно изменить E-Mail сотрудника в ЗУП 3.1?
Всем доброго времени! Подскажите как правильно изменить или установить E-Mail сотрудника в ЗУП 3.1 программно? Знаю что просто присвоить строку нельзя, нужно вроде как через метод УправлениеКонтактнойИнформацией.ОписаниеНовойКонтактнойИнформации() заполнить данные, но вот как правильно потом записать эти данные в табличную часть контактной информации? Какие методы правильно использовать? Вроде как в полях Значение и ЗначенияПолей должны быть данные то ли в формате JSON, то ли XML, но как из преобразовать правильно к этому формату?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Попробуйте найти использование процедуры УправлениеКонтактнойИнформациейСлужебный.УстановитьКонтактнуюИнформациюОбъектаДляСсылки(СсылкаИлиОбъект, КонтактнаяИнформация, ОбъектМетаданных, Замещать);
и посмотреть в отладке, что там в контактной информации при записи ФЛ.
и посмотреть в отладке, что там в контактной информации при записи ФЛ.
ФизЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.Наименование);
ТЗ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ФизЛицо, , ТекущаяДата(), Ложь);
НайденнаяСтрока = ТЗ.Найти(Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Рабочая почта"), "Вид");
Если НайденнаяСтрока = Неопределено Тогда
Иначе
НайденнаяСтрокаПочта = НайденнаяСтрока.Представление;
КонецЕсли;
ВидКИ = Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Рабочая почта");
ТипКИ = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
ПредставлениеПочта = Почта;
Если НайденнаяСтрокаПочта <> ПредставлениеПочта Тогда
Попытка
ОбъектXDTOКИ = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияXDTOПоПредставлению(ПредставлениеПочта, ТипКИ);
ЗначенияПолей = УправлениеКонтактнойИнформациейЛокализация.КонтактнаяИнформацияXDTOВXML(ОбъектXDTOКИ); //необходима, чтобы не затиралась КИ при перезаписи
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(ФизЛицо, ЗначенияПолей, ВидКИ, ТекущаяДата(), Истина);
ЗарегистрироватьИзменения(ФизЛицо)
Исключение
КонецПопытки;
КонецЕсли;
Показать
(4) Прошу прощения, выдернул из обработки импорта данных из AD.
Да, дальше идет регистрация.
Сама процедура ЗарегистрироватьИзменения в вашем случае не нужна.
Да, дальше идет регистрация.
Сама процедура ЗарегистрироватьИзменения в вашем случае не нужна.
Процедура ЗарегистрироватьИзменения(ФизЛицоСсылка)
СсылкаНаУзел = ПланыОбмена.МиграцияПриложений.НайтиПоКоду("ДО");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Ссылка КАК Ссылка
|ИЗ
| Справочник.Сотрудники КАК Сотрудники
|ГДЕ
| Сотрудники.ФизическоеЛицо = &ФизическоеЛицо";
Запрос.УстановитьПараметр("ФизическоеЛицо", ФизЛицоСсылка);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ПланыОбмена.ЗарегистрироватьИзменения(СсылкаНаУзел, Выборка.Ссылка);
КонецЦикла;
КонецПроцедуры
Показать
ЕмайлХМЛ = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(СтрокаТаблицы.АдресЭП,СтрокаТаблицы.АдресЭП,Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
ЕмайлJSON = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВJSON(ЕмайлХМЛ);
УправлениеКонтактнойИнформацией.ДобавитьКонтактнуюИнформацию(СтрокаТаблицы.ссылка, ЕмайлJSON, Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица, ТекущаяДата(), Истина);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот