воскресенье, 25 февраля 2018 г.

Работа с контактной информацией сотрудника

Данное дествие необратимо, оно приведет к переносу (копированию) информации:
- мобильный телефон
- электронная почта
- домашний телефон
- рабочий телефон
- адрес прописки
- адрес проживания 
из дополнительных данных сотрудника в личные данные сотрудника (контактная  информация).

Введенная ранее вручную контактная информация в "Личных данных" будет перезаписана без возможности восстановления.

Внимание! Информация в дополнительных данных является первичной по отношению к личным данным.



&НаСервере
Процедура КомандаНачатьПереносДанныхНаСервере()
 //начать пребор сотрудников 
 Выборка = Справочники.Сотрудники.Выбрать(); 
 Счетчик = 1;
 Пока Выборка.Следующий() = 1 Цикл
  //получить доп. данные сотрудника: мобильный телефон, электронная почта, домашний телефон, рабочий телефон
  ТекущийСотрудник = Выборка.Наименование;
  КодТекущийСотрудник = Выборка.Код;
  МобильныйТелефон = Выборка.phonemobile;
  ЭлектроннаяПочта = Выборка.email;
  ДомашнийТелефон = Выборка.phonehome;
  РабочийТелефон = Выборка.phonework;
  АдресПрописки = Выборка.address;
  АдресПроживания = Выборка.addresshome;
  //записать личные данные сотрудника
  РезультатПоиска = Справочники.Сотрудники.НайтиПоНаименованию(ТекущийСотрудник);
  ФЛ=РезультатПоиска.ФизическоеЛицо.ПолучитьОбъект();
  ФЛ.КонтактнаяИнформация.Очистить();
  УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ФЛ,МобильныйТелефон,Справочники.ВидыКонтактнойИнформации.ТелефонМобильныйФизическиеЛица,Перечисления.ТипыКонтактнойИнформации.Телефон);
  УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ФЛ,ЭлектроннаяПочта,Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица,Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);
  УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ФЛ,ДомашнийТелефон,Справочники.ВидыКонтактнойИнформации.ТелефонДомашнийФизическиеЛица,Перечисления.ТипыКонтактнойИнформации.Телефон);
  УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ФЛ,РабочийТелефон,Справочники.ВидыКонтактнойИнформации.ТелефонРабочийФизическиеЛица,Перечисления.ТипыКонтактнойИнформации.Телефон);
  УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ФЛ,АдресПрописки,Справочники.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица,Перечисления.ТипыКонтактнойИнформации.Адрес);
  УправлениеКонтактнойИнформацией.ЗаписатьКонтактнуюИнформацию(ФЛ,АдресПроживания,Справочники.ВидыКонтактнойИнформации.АдресМестаПроживанияФизическиеЛица,Перечисления.ТипыКонтактнойИнформации.Адрес);
  ФЛ.Записать(); 
  Сообщение = "Сотрудник "+Счетчик+" "+ Выборка.Наименование+" Моб. телефон: "
  +МобильныйТелефон+" Эл. почта: "+ЭлектроннаяПочта
  +" Дом. телефон: "+ДомашнийТелефон+" Раб. телефон: "+РабочийТелефон
  +" Адрес прописки: "+АдресПрописки+" Адрес проживания: "+АдресПроживания;
  Сообщить (Сообщение);
  ПорталПротейНаСервере.Логгер ("Перенос в личные данные:", Сообщение, );
  Счетчик = Счетчик +1;
 КонецЦикла; 
КонецПроцедуры

&НаКлиенте
Процедура КомандаНачатьПереносДанных(Команда)
 КомандаНачатьПереносДанныхНаСервере();
КонецПроцедуры

Комментариев нет: