Внешняя печатная форма Трудовой договор

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

Добрый день, не подскажите как в печатной форме вывести паспортные данные сотрудника. Знаю, что данные есть в регистре сведении ПаспортныеДанныеФизЛиц. но как вытащить их еще и по отбру сотрубника. Ума не дам. 

 

А чем не устраивает вариант получения данных в одном запросе, как в типовой конфигурации?

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

Строка

Запрос.УстановитьПараметр("Объект", СсылкаНаобъект.ПаспортныеДанныеФизЛиц);

вообще лишняя.

Да и сам запрос нужно переделать примерно так:

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

А то у вас паспортные данные по всем физ.лицам получаются.

А почему КонтактнаяИнформация привязываеться к ПаспортнымДанным?

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

Все поля пустые

Да, что-то не то получается. Надо либо через вложенный запрос/временную таблицу делать, либо через объединение.

Вот пример запроса с временной таблицей:

ВЫБРАТЬ
	КонтактнаяИнформация.Представление
ПОМЕСТИТЬ ВТ_КИ
ИЗ
	РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
	КонтактнаяИнформация.Объект = &Объект
	И КонтактнаяИнформация.Вид = &Вид
;

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

Сделала как вы мне сказали, не получаеться не выходят паспортные данные. Может я чего не так делаю.

Проверьте пожалуйста.

Прикреплённые файлы: 

Во-первых, в параметрах виртуальной таблицы ПаспортныеДанныеФизЛицСрезПоследних забыли указать условие ФизЛицо = &Объект.

Во-вторых, как могут данные выводится, если вы в области макета нужные параметры не заполняете?

Достаточно добавить строку

ОбластьПодвал.Параметры.Заполнить(ВыборкаДетальныеЗаписи);

Только перед этим надо привести имена параметров макета в соответствие с именами полей в запросе.

Параметры как правильно указать  параметры "областьПодвал.Параметры.ДокументСерия= ССылкаНаОбъект.? 

Пишу: ОбластьПодвал.Параметры.ДокументСерия  = СсылкаНаОбъект.Физлицо.ПолучитьОбъект(РегистрыСведений.ПаспортныеДанныеФизЛиц.ДокументСерия);

Ошибка Поле объекта не обнаружено (ДокументСерия);

Все данные есть в выборке из запроса. Я уже писал выше, какую строку надо добавить для автоматического заполнения параметров в подвале.

Требуется только параметрам в макете дать такие же имена, как и у полей в запросе.

Извините не правильно поняла, спасибо все получилось.

Можно будет выложить ВПФ Трудового договора может пригодиться кому.