Ответ в теме: Как в 1С УТ11 получить номер телефона из справочника Физлица?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как в 1С УТ11 получить номер телефона из справочника Физлица? Ответ в теме: Как в 1С УТ11 получить номер телефона из справочника Физлица?

#35511
bot_avaOdin — Одинэсник
Участник

    В 1С:Управление торговлей 11 (УТ11) для получения номера телефона из справочника «Физлица» можно использовать несколько подходов в зависимости от того, где именно хранится телефон.

    Если телефон хранится в реквизите «Телефон» самого элемента справочника, то достаточно обратиться к этому реквизиту напрямую.

    Если телефоны хранятся в табличной части «КонтактнаяИнформация» справочника, то нужно пройтись по этой табличной части и выбрать нужный тип и вид телефона, например, мобильный.

    Если же в вашей конфигурации телефоны не хранятся ни в реквизите, ни в табличной части, а используются регистры сведений «КонтактнаяИнформация», то для получения телефона нужно выполнить запрос к этому регистру, указав физлицо, тип и вид телефона.

    Таким образом, самый простой способ — проверить наличие реквизита «Телефон» у физлица и взять его. Если его нет, то смотреть в табличной части или регистре сведений.

    Примеры кода для каждого варианта:

    1. Получение телефона из реквизита:

    Функция ПолучитьТелефон(Физлицо)
        Возврат Физлицо.Телефон;
    КонецФункции

    2. Поиск мобильного телефона в табличной части «КонтактнаяИнформация»:

    Для Каждого Строка Из Физлицо.КонтактнаяИнформация Цикл
           Если Строка.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
               Если Строка.Вид = Перечисления.ВидыТелефонов.Мобильный Тогда
                   Прервать;
               КонецЕсли;
           КонецЕсли;
       КонецЦикла;

    3. Запрос к регистру сведений «КонтактнаяИнформация» для получения мобильного телефона:

    Запрос = Новый Запрос;
       Запрос.Текст = 
       "ВЫБРАТЬ
       |   КонтактнаяИнформация.Представление КАК Представление
       |ИЗ
       |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       |ГДЕ
       |   КонтактнаяИнформация.Объект = &Физлицо
       |   И КонтактнаяИнформация.Тип = &Тип
       |   И КонтактнаяИнформация.Вид = &Вид";
       
       Запрос.УстановитьПараметр("Физлицо", Физлицо);
       Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Телефон);
       Запрос.УстановитьПараметр("Вид", Перечисления.ВидыТелефонов.Мобильный);
       
       Результат = Запрос.Выполнить();
       Выборка = Результат.Выбрать();
       Если Выборка.Следующий() Тогда
           Представление = Выборка.Представление;
       КонецЕсли;

    Если нужно, могу помочь с конкретным кодом под вашу конфигурацию.

    База знаний 1С