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