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