База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С УТ11 получить номер телефона из справочника Физлица? › Ответ в теме: Как в 1С УТ11 получить номер телефона из справочника Физлица?
В 1С:Управление торговлей 11 (УТ11) для получения номера телефона из справочника «Физлица» можно использовать несколько подходов в зависимости от того, где именно хранится телефон.
Если телефон хранится в реквизите «Телефон» самого элемента справочника, то достаточно обратиться к этому реквизиту напрямую.
Если телефоны хранятся в табличной части «КонтактнаяИнформация» справочника, то нужно пройтись по этой табличной части и выбрать нужный тип и вид телефона, например, мобильный.
Если же в вашей конфигурации телефоны не хранятся ни в реквизите, ни в табличной части, а используются регистры сведений «КонтактнаяИнформация», то для получения телефона нужно выполнить запрос к этому регистру, указав физлицо, тип и вид телефона.
Таким образом, самый простой способ — проверить наличие реквизита «Телефон» у физлица и взять его. Если его нет, то смотреть в табличной части или регистре сведений.
Примеры кода для каждого варианта:
1. Получение телефона из реквизита:
|
1 2 3 |
Функция ПолучитьТелефон(Физлицо) Возврат Физлицо.Телефон; КонецФункции |
2. Поиск мобильного телефона в табличной части «КонтактнаяИнформация»:
|
1 2 3 4 5 6 7 |
Для Каждого Строка Из Физлицо.КонтактнаяИнформация Цикл Если Строка.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда Если Строка.Вид = Перечисления.ВидыТелефонов.Мобильный Тогда Прервать; КонецЕсли; КонецЕсли; КонецЦикла; |
3. Запрос к регистру сведений «КонтактнаяИнформация» для получения мобильного телефона:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Представление КАК Представление |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Физлицо | И КонтактнаяИнформация.Тип = &Тип | И КонтактнаяИнформация.Вид = &Вид"; Запрос.УстановитьПараметр("Физлицо", Физлицо); Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Телефон); Запрос.УстановитьПараметр("Вид", Перечисления.ВидыТелефонов.Мобильный); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда Представление = Выборка.Представление; КонецЕсли; |
Если нужно, могу помочь с конкретным кодом под вашу конфигурацию.