Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 мая 2024, 00:30

Программная загрузка почтовых адресов

Автор Анжела, 31 окт 2018, 10:41

0 Пользователей и 1 гость просматривают эту тему.

Анжела

Здравствуйте.
1С:Предприятие 8.3 (8.3.12.1595)
Зарплата и управление персоналом, редакция 3.1 (3.1.8.113)
Программно хочу заполнить вкладку личные данные в карточки сотрудника а именно электронный адрес.
Код
Функция Поиск(ИмяФамилия, майл)
//
НайденныйСотрудник = Справочники.ФизическиеЛица.НайтиПоНаименованию(ИмяФамилия);
Если Не ПустаяСтрока(НайденныйСотрудник) тогда
//
Сообщить(ИмяФамилия);
Сотрудники123 = Справочники.ФизическиеЛица.НайтиПоНаименованию(НайденныйСотрудник).ПолучитьОбъект();
КонтактнаяИнформация = Сотрудники123.КонтактнаяИнформация.Добавить();
КонтактнаяИнформация.Вид = Справочники.ВидыКонтактнойИнформации.EmailПользователя;
КонтактнаяИнформация.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
КонтактнаяИнформация.АдресЭП = майл;
Сотрудники123.Записать();
//
КонецЕсли;
//
КонецФункции

В карточке сотрудника в физическом лице пусто. Но если обратится запросом то вижу что адреса присвоились. Почему в интерфейсе невижу, или что то делаю не так?

ВЫБРАТЬ
ФизическиеЛицаКонтактнаяИнформация.АдресЭП КАК АдресЭП,
ФизическиеЛицаКонтактнаяИнформация.Ссылка КАК Ссылка
ИЗ
Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация

АлександрВладимирович

Если заполнить электронный адрес штатным образом, то в ТЧ КонтактнаяИнформация заполняются еще реквизиты Представление, ЗначенияПолей, ДоменноеИмяСервера.
Видимо какие-то из них или все являются обязательными и их тоже надо заполнить программно.

Анжела

Все что можно уже включил
      Сообщить(ИмяФамилия);
Сотрудники123 = Справочники.ФизическиеЛица.НайтиПоНаименованию(НайденныйСотрудник).ПолучитьОбъект();
КонтактнаяИнформация = Сотрудники123.КонтактнаяИнформация.Добавить();
КонтактнаяИнформация.Вид = Справочники.ВидыКонтактнойИнформации.EmailПользователя;
КонтактнаяИнформация.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
КонтактнаяИнформация.Представление = Майл;
КонтактнаяИнформация.ЗначенияПолей = Майл;
КонтактнаяИнформация.ДоменноеИмяСервера = "@mail";
КонтактнаяИнформация.АдресЭП = майл;
Сотрудники123.Записать();

Добавлено: 01 ноя 2018, 02:42


Может Я не там смотрю, вот хочу чтобы тут был заполнен электронный адрес. Но Я его там не вижу

АлександрВладимирович

Вместо
КонтактнаяИнформация.Вид = Справочники.ВидыКонтактнойИнформации.EmailПользователя;

надо
КонтактнаяИнформация.Вид = Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица;

Анжела

Спасибо все получилось, не думал что такое может быть)
А теперь немного другой вопрос, как удалить лишние теперь реквизиты?
Добавлено: 02 ноя 2018, 03:45



АлександрВладимирович

У меня не воспроизводится, но если такой эффект дают лишние строки в ТЧ Контактная информация с неправильным видом, то примерно так:

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

Анжела

Сотрудники123 = Справочники.ФизическиеЛица.НайтиПоНаименованию(НайденныйСотрудник).ПолучитьОбъект();
   ПараметрыОтбора = Новый Структура;

   ПараметрыОтбора.Вставить("Вид", Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица);
   НайденныеСтроки = Сотрудники123.КонтактнаяИнформация.НайтиСтроки(ПараметрыОтбора);
   Для каждого СтрокаТЧ Из НайденныеСтроки Цикл
      Сотрудники123.КонтактнаяИнформация.Удалить(СтрокаТЧ);
   КонецЦикла;
   Сотрудники123.Записать();

Чуть чуть исправил, выделил цветом

А можете пожалуйста обьяснить, принцип работы почему так
ПараметрыОтбора = Новый Структура;
   ПараметрыОтбора.Вставить("Вид", Справочники.ВидыКонтактнойИнформации.EMailФизическиеЛица);
   НайденныеСтроки = Сотрудники123.КонтактнаяИнформация.НайтиСтроки(ПараметрыОтбора);

АлександрВладимирович

Принцип работы объяснить затрудняюсь. Так захотели разработчики платформы.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск