МенеджерКонтактов.НайтиКонтакты

Методы · FindContacts

Осуществляет поиск контактов. Если отбор не задан, возвращает все контакты. Отбор может быть установлен по следующим полям: Имя (FirstName), Фамилия (LastName), Отчество (MiddleName), ПроизношениеИмени (PhoneticFirstName), ПроизношениеФамилии (PhoneticLastName), ПроизношениеОтчества (PhoneticMiddleName), Прозвище (Nickname), Префикс (Prefix), Суффикс (Suffix), Организация (Organization), Отдел (Department), Должность (JobTitle), Заметка (Note), НомераТелефонов (PhoneNumbers), АдресаЭлектроннойПочты (Emails), Адреса (Addresses), АдресаМгновенныхСообщений (InstantMessageAddresses), ВебАдреса (URLs), ДеньРождения (Birthday).

Синтаксис

НайтиКонтакты(<Отбор>)

Примеры платформы

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

МенеджерКонтактов.НайтиКонтакты (ContactManager.FindContacts)

МенеджерКонтактов (ContactManager)

НайтиКонтакты (FindContacts)

Доступен, начиная с версии 8.3.4.

Синтаксис:
НайтиКонтакты(<Отбор>)
Параметры:

<Отбор> (необязательный)
Тип: ОтборКомпоновкиДанных.
Задает условия отбора контактов.
Отбор может быть установлен по следующим полям:
Имя (FirstName),

Фамилия (LastName),

Отчество (MiddleName),

ПроизношениеИмени (PhoneticFirstName),

ПроизношениеФамилии (PhoneticLastName),

ПроизношениеОтчества (PhoneticMiddleName),

Прозвище (Nickname),

Префикс (Prefix),

Суффикс (Suffix),

Организация (Organization),

Отдел (Department),

Должность (JobTitle),

Заметка (Note),

НомераТелефонов (PhoneNumbers),

АдресаЭлектроннойПочты (Emails),

Адреса (Addresses),

АдресаМгновенныхСообщений (InstantMessageAddresses),

ВебАдреса (URLs),

ДеньРождения (Birthday),

УчетнаяЗапись (Account) – для отбора по объекту типа УчетнаяЗаписьКонтактов,

ИдентификаторУчетнойЗаписи (AccountID),

ИсточникУчетнойЗаписи (AccountSource).

Возвращаемое значение:
Тип: Массив.
Массив ЛокальныйКлючКонтакта найденных контактов в соответствии с отбором.
Если отбор не задан, возвращает все контакты.
Описание:

Осуществляет поиск контактов.
Если отбор не задан, возвращает все контакты.
Отбор может быть установлен по следующим полям:
Имя (FirstName),

Фамилия (LastName),

Отчество (MiddleName),

ПроизношениеИмени (PhoneticFirstName),

ПроизношениеФамилии (PhoneticLastName),

ПроизношениеОтчества (PhoneticMiddleName),

Прозвище (Nickname),

Префикс (Prefix),

Суффикс (Suffix),

Организация (Organization),

Отдел (Department),

Должность (JobTitle),

Заметка (Note),

НомераТелефонов (PhoneNumbers),

АдресаЭлектроннойПочты (Emails),

Адреса (Addresses),

АдресаМгновенныхСообщений (InstantMessageAddresses),

ВебАдреса (URLs),

ДеньРождения (Birthday).

Доступность:

Мобильный клиент, мобильное приложение (клиент).

Пример:

Фильтр = новый ОтборКомпоновкиДанных();
элементОтбора =
Фильтр.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
элементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных
("ИдентификаторУчетнойЗаписи");
элементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
элементОтбора.ПравоеЗначение = ИдентификаторУчетнойЗаписи;

Контакты = Менеджер.НайтиКонтакты(Фильтр);

Для Каждого КлючКонтакта Из Контакты Цикл
Контакт = Менеджер.ПолучитьКонтакт(КлючКонтакта);
КонецЦикла;

Использование в версии:

Доступен, начиная с версии 8.3.4.

Описание изменено в версии 8.3.23.

Методическая информация

Практические примеры

Найти один собственный контакт точным отбором

Используем отбор по полному уникальному имени и локальной записи, а не поиск всех личных контактов.

Где и как запускать

Полный клиентский модуль собственной мобильной управляемой формы. Не вставляйте процедуры внутрь другой процедуры.

Подготовка

  1. Только мобильный клиент/мобильное приложение 1С на собственном тестовом устройстве и отдельная пустая конфигурация УчебнаяКонфигурацияСинтаксиса. Настольный клиент не заменяет этот API.

  2. Вручную разрешите доступ к контактам только своему учебному приложению. Поддержка метода не доказывает разрешение ОС.

  3. Изменения адресной книги выполняйте только в отдельном локальном учебном профиле без синхронизации и реальных контактов. Не используйте корпоративные/личные учётные записи.

  4. Создайте отдельную управляемую форму для каждого урока. Полный код вставляется на уровне модуля; команды и указанные строковые реквизиты создаются вручную.

  5. Рецепты изменения/удаления при ручном запуске реально меняют адресную книгу ОС. Здесь они не исполнялись, runtime-проверка 1С не заявляется.

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    ИмяКонтакта = СокрЛП(УчебноеИмяКонтакта);
    Если Лев(ИмяКонтакта, 20) <> "guide-owned-contact-" Тогда
        ВызватьИсключение "Укажите точное полное имя собственного учебного контакта";
    КонецЕсли;
    Менеджер = Новый МенеджерКонтактов;
    ЛокальнаяЗапись = Менеджер.ПолучитьЛокальнуюУчетнуюЗаписьКонтактов();
    Отбор = Новый ОтборКомпоновкиДанных;
    ПоИмени = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ПоИмени.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Имя");
    ПоИмени.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ПоИмени.ПравоеЗначение = ИмяКонтакта;
    ПоИмени.Использование = Истина;
    ПоЗаписи = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ПоЗаписи.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("УчетнаяЗапись");
    ПоЗаписи.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ПоЗаписи.ПравоеЗначение = ЛокальнаяЗапись;
    ПоЗаписи.Использование = Истина;
    Ключи = Менеджер.НайтиКонтакты(Отбор);
    Если Ключи.Количество() = 0 Тогда
        Сообщить("Собственный контакт не найден; ничего не создано");
        Возврат;
    КонецЕсли;
    Если Ключи.Количество() <> 1 Тогда
        ВызватьИсключение "Неоднозначный результат; чтение первого контакта запрещено";
    КонецЕсли;
    Ключ = Ключи.Получить(0);
    Карточка = Менеджер.ПолучитьКонтакт(Ключ);
    Сообщить(ТипЗнч(Ключ) = Тип("ЛокальныйКлючКонтакта"));
    Сообщить(Карточка.ДанныеКонтакта.Имя = ИмяКонтакта);
    Сообщить(Карточка.УчетнаяЗапись.Идентификатор = ЛокальнаяЗапись.Идентификатор);
    Сообщить(Карточка.УчетнаяЗапись.ИсточникУчетнойЗаписи = ЛокальнаяЗапись.ИсточникУчетнойЗаписи);
    Сообщить("Изменение доступно: " + Строка(Менеджер.ПоддерживаетсяИзменениеКонтакта(Ключ)));
КонецПроцедуры

Разбор по шагам

  1. Создайте строковый реквизит УчебноеИмяКонтакта и поле ввода. Скопируйте точное собственное имя из урока добавления ниже, включая UUID.

  2. Отбор содержит два используемых элемента Равно: Имя и УчетнаяЗапись. Это поля менеджера контактов из установленной справки, не поля SQL.

  3. Соседние элементы верхнего уровня задают совместные условия. Без отборов НайтиКонтакты вернул бы все контакты; такой вызов здесь отсутствует.

  4. Ноль — нормальное отсутствие. Больше одного — явный отказ от выбора первого. При одном результате читаем только его карточку.

  5. Результат НайтиКонтакты — массив локальных ключей. Сами телефоны/адреса найденного человека не выводятся и не изменяются.

Как проверить результат

  1. При существующем собственном локальном контакте четыре сравнения Истина.

  2. Пустой результат не создаёт контакта. Повторные совпадения не приводят к чтению/изменению первого.

Ожидаемый результат

Показаны точный отбор, локальный ключ и чтение одного собственного учебного контакта.

На что обратить внимание

  1. Префикс имени не доказывает собственность. Этот урок только читает; найденные ключи не используются для удаления.

  2. Названия полей отбора зависят от языка API; здесь русские имена установленной русской справки.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.