Тип: Массив. Содержит массив адресов электронной почты в виде объектов типа ЭлементДанныхКонтакта. Свойство ТипДанных содержит значение перечисления ТипАдресаЭлектроннойПочтыДанныхКонтакта или строку. Свойство Значение содержит строку – адрес электронной почты.
Полное описание, параметры и ограничения
ДанныеКонтакта.АдресаЭлектроннойПочты (ContactData.Emails)
ДанныеКонтакта (ContactData)
АдресаЭлектроннойПочты (Emails)
Доступен, начиная с версии 8.3.4.
Использование:
Чтение и запись.
Описание:
Тип: Массив.
Содержит массив адресов электронной почты в виде объектов типа ЭлементДанныхКонтакта. Свойство ТипДанных содержит значение перечисления ТипАдресаЭлектроннойПочтыДанныхКонтакта или строку. Свойство Значение содержит строку – адрес электронной почты.
Доступность:
Мобильный клиент, сервер, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.4.
Методическая информация
Практические примеры
Добавить два телефона и рабочий адрес почты
ЭлементДанныхКонтакта сочетает тип-подпись и значение. Для телефона и почты значение должно быть строкой; сам объект допускает также дату и адрес.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база, серверный контекст. ДанныеКонтакта и связанные типы доступны на сервере: для этих задач не нужен мобильный телефон, разрешение на контакты или настоящая адресная книга.
Вся персона вымышлена: Учебный Ученик Тестович, организация Учебный магазин. Телефоны 000-000-01/02 — демонстрационные строки, адрес student@example.invalid учебный. Ничего не отправляйте и не звоните.
Код создаёт объекты только в памяти. Он не вызывает менеджер контактов устройства, синхронизацию, геокодирование, интернет или запись справочника Партнеры/КонтактныеЛица.
Контакт = Новый ДанныеКонтакта;
Контакт.Имя = "Учебный";
Контакт.Фамилия = "Ученик";
Контакт.Отчество = "Тестович";
Контакт.НомераТелефонов = Новый Массив;
Контакт.АдресаЭлектроннойПочты = Новый Массив;
Основной = Новый ЭлементДанныхКонтакта(ТипНомераТелефонаДанныхКонтакта.Основной, "000-000-01");
Мобильный = Новый ЭлементДанныхКонтакта(ТипНомераТелефонаДанныхКонтакта.Мобильный, "000-000-02");
Почта = Новый ЭлементДанныхКонтакта(ТипАдресаЭлектроннойПочтыДанныхКонтакта.Рабочий, "student@example.invalid");
Контакт.НомераТелефонов.Добавить(Основной);
Контакт.НомераТелефонов.Добавить(Мобильный);
Контакт.АдресаЭлектроннойПочты.Добавить(Почта);
Для Каждого Телефон Из Контакт.НомераТелефонов Цикл
Если ТипЗнч(Телефон.Значение) <> Тип("Строка") Тогда
ВызватьИсключение "В телефонном массиве ожидалась строка";
КонецЕсли;
Сообщить(СтрШаблон("%1: %2", Телефон.ТипДанных, Телефон.Значение));
КонецЦикла;
Сообщить(Контакт.НомераТелефонов.Количество() = 2);
Сообщить(Почта.Значение = "student@example.invalid");
Сообщить(Почта.ТипДанных = ТипАдресаЭлектроннойПочтыДанныхКонтакта.Рабочий);
Мобильный.ТипДанных = ТипНомераТелефонаДанныхКонтакта.РабочийМобильный;
Мобильный.Значение = "000-000-03";
Сообщить(Контакт.НомераТелефонов[1].Значение = "000-000-03");Разбор по шагам
Создаём собственные массивы явно, затем элементы с подходящими системными подписями.
При обходе проверяем фактический тип значения до использования как телефона.
Изменение Мобильный меняет тот же объект в массиве; не создаёт отдельную новую запись и не звонит.
Как проверить результат
Показаны две демонстрационные строки телефонов; четыре сравнения Истина.
У второго элемента после изменения тип РабочийМобильный и значение 000-000-03.
Ожидаемый результат
Контакт получил два телефонных элемента и один рабочий почтовый элемент.
На что обратить внимание
Это собственные учебные объекты, не контакт, уже полученный от операционной системы или сохранённый на устройстве.
Ни строка телефона, ни подпись Основной не доказывают валидность номера или возможность звонка.
При чтении чужого объекта проверяйте тип каждого Значение, не полагайтесь только на название массива.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Удалить один почтовый элемент и очистить массив
Операции массива меняют только набор адресов собственного объекта. Сам контакт и его имя остаются; с устройства ничего не удаляется.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Учебная база, серверный контекст. ДанныеКонтакта и связанные типы доступны на сервере: для этих задач не нужен мобильный телефон, разрешение на контакты или настоящая адресная книга.
Вся персона вымышлена: Учебный Ученик Тестович, организация Учебный магазин. Телефоны 000-000-01/02 — демонстрационные строки, адрес student@example.invalid учебный. Ничего не отправляйте и не звоните.
Код создаёт объекты только в памяти. Он не вызывает менеджер контактов устройства, синхронизацию, геокодирование, интернет или запись справочника Партнеры/КонтактныеЛица.
Контакт = Новый ДанныеКонтакта;
Контакт.Имя = "Учебный";
Контакт.Фамилия = "Ученик";
Контакт.Отчество = "Тестович";
Контакт.АдресаЭлектроннойПочты = Новый Массив;
Контакт.АдресаЭлектроннойПочты.Добавить(Новый ЭлементДанныхКонтакта(ТипАдресаЭлектроннойПочтыДанныхКонтакта.Рабочий, "student@example.invalid"));
Контакт.АдресаЭлектроннойПочты.Добавить(Новый ЭлементДанныхКонтакта(ТипАдресаЭлектроннойПочтыДанныхКонтакта.Домашний, "learner@example.invalid"));
Сообщить(Контакт.АдресаЭлектроннойПочты.Количество() = 2);
Контакт.АдресаЭлектроннойПочты.Удалить(0);
Сообщить(Контакт.АдресаЭлектроннойПочты.Количество() = 1);
Сообщить(Контакт.АдресаЭлектроннойПочты[0].Значение = "learner@example.invalid");
Контакт.АдресаЭлектроннойПочты.Очистить();
Сообщить(Контакт.АдресаЭлектроннойПочты.Количество() = 0);
Сообщить(Контакт.Имя = "Учебный");Разбор по шагам
АдресаЭлектроннойПочты явно задан как Массив с двумя элементами.
Удалить(0) у массива принимает позицию, не элемент: после удаления второй становится нулевым.
Очистить удаляет все элементы этого массива, а не данные контакта в ОС.
Как проверить результат
Пять сообщений Истина: 2 адреса, 1, остался learner, 0, имя прежнее.
МенеджерКонтактов и удаления адресной книги в коде отсутствуют.
Ожидаемый результат
Показано изменение собственного массива адресов без удаления персоны.
На что обратить внимание
Это собственные учебные объекты, не контакт, уже полученный от операционной системы или сохранённый на устройстве.
Не переносите перегрузку Удалить почтовой коллекции на Массив: у них разные допустимые аргументы.
Позиция в массиве не является устойчивым идентификатором адреса.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.