Подбор физлица

Версия для печатиPDF-версия

Платформа:

Добрый день. Подскажите, пожалуйста, в документ нужно выбрать физлицо из справочника физлиц с паспортными данными, датой рожедния, адресом по прописке и телефоном, как осуществить эту выборку. Для выборки самого лица с паспортными данными и датой рождения я сделала запрос, не могу справиться с адресом и телефоном. ((

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

Как-то даже непонятно, что вы хотите получить этим запросом: список всех физ.лиц, у которых внесены в базу какие-либо документы? Или условие отбора по физ.лицу и виду документа вы просто опустили? И по идее надо наоборот к таблице физ.лиц присоединять таблицу документов.

Для получения адреса и телефона можно к таблице физ.лиц через левое соединение присоединить таблицу Справочник.ФизическиеЛица.КонтактнаяИнформация.

Предланаю использовать такой вариант запроса:

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

СГРУППИРОВАТЬ ПО
	ДокументыФизическихЛицСрезПоследних.Серия,
	ДокументыФизическихЛицСрезПоследних.КемВыдан,
	ДокументыФизическихЛицСрезПоследних.Номер,
	ДокументыФизическихЛицСрезПоследних.ДатаВыдачи,
	ФизическиеЛица.Ссылка,
	ФизическиеЛица.Наименование,
	ФизическиеЛица.ДатаРождения

Это просто в событии при изменении физлица, т.е. есть строка куда вводится фио физлица и если он есть в справочнике физлиц, то остальные поля формы должны заполниться автоматически

Тогда уловие отбора по физлицу просто необходимо.

Можно вместо ссылки сделать условие по наименованию.

Суть в том, что таблица Справочник.Физические лица должна быть основной в запросе.

Я скопировала Ваш запрос, установила параметры 

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

Непонятно куда он мог деться. Посмотрете отладчиком, что в ВыборкаДетальныеЗаписи содержится.

сейчас закомментила адрес, так он мне в строке телефон дает адрес ))

Вы запрос в конструктор запроса вставляли?

Да, только добавила еще вид документа, вот что у меня сейчасполучилось:

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

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

Замените в запросе строки

| ИНАЧЕ ""

на

| ИНАЧЕ """"

Все получилось, спасибо большое. Алексей, если можно, объясните мне, пожалуйста, вот эту часть, что мы здесь делаем, почему максимум:

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

Адрес и телефон находятся в разных строках табличной части Контакная информация. Если сделать запрос без группировки, то на выходе получим столько строк, сколько строк в ТЧ Контакная информация физ.лица. А так мы сворачиваем всю ТЧ в одну строку.

Спасибо большое