Предлагаю решение…
Покопавшись в конфигурации, обнаружил, что формирование справки происходит в менеджере печати документа ОперацияБух. А на остальных документах навесили данный менеджер печати в общем модуле: ОбщегоНазначенияБГУ:
// Бухгалтерская справка
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Документ.ОперацияБух";
КомандаПечати.Идентификатор = "Справка0504833_173";
КомандаПечати.Представление = НСтр("ru = 'Справка ф. 0504833'");
КомандаПечати.Порядок = 99;
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
Т.к. и Менеджер Печати, и данный Общий модуль – серверный, то вызовы типа ВвестиЗначение с выбором сотрудника здесь не работают. Поэтому пошел в другом направлении: поменял немного ОбщуюФорму «ПечатьДокументов», в которую выводится результирующий ТабличныйДокумент.
1. Добавил новый реквизит Сотрудник рядом с кнопкой Печать
2. В процедуру ПриИзменении данного поля внес следующий код:
&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
Область = ЭтотОбъект.ПечатнаяФорма1.НайтиТекст("Исполнитель"); // найдем поле Исполнитель в табличном документе
Если ТипЗнч(Область)=Тип("Неопределено") Тогда
Сообщить("В печатной форме нет поля Исполнитель!"); // так на всякий случай
Иначе
ДанныеСотрудника=ПолучитьНаСервереДанныеСотрудника();
НомерСтроки=лев(Область.Имя,Найти(область.Имя,"C")-1); //запомнили номер строки с Исполнителем
ЭтотОбъект.ПечатнаяФорма1.Область(Номерстроки+"C9").текст=ЭтотОбъект.Сотрудник; //пишем ФИО
ЭтотОбъект.ПечатнаяФорма1.Область(Номерстроки+"C3").текст=ДанныеСотрудника.Должность; // пишем Должность
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьНаСервереДанныеСотрудника() // Здесь получим должность. Скопировал из какого-то модуля
ДанныеСотрудника = Новый Структура("СсылкаНаОбъект, Период, Должность", ЭтотОбъект.Сотрудник, ТекущаяДата());
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеСотрудника);
возврат Данныесотрудника;
КонецФункции
3. В конце процедуры НастроитьВидимостьЭлементовФормы модуля Формы внес следующие строки:
Если не(лев(ЭтотОбъект.Параметры.ИменаМакетов,14)="Справка0504833") Тогда // чтобы не отображать поле Сотрудник, если печатаем не Справку,а что-то другое
Элементы.Сотрудник.Видимость=ложь;
КонецЕсли
Проверяем
Сразу оговорюсь, что программист из меня… посредственный. Больше занимаюсь учетом. Вполне допускаю наличие более изящного варианта, но главное для меня – задача решена, пусть и временно. В более поздних релизах, наверное, 1С-ники исправят эту проблемку. На этом все – пинайте.
P.S. в обработке прикреплена ОбщаяФорма.ПечатьДокументов для редакции 2.0.41.16 Можно просто заменить ее в рабочей базе.
Версия 2 содержит переработанные модули для более удобного добавления других печатных форм (по умолчанию: Приходный ордер МЗ, треб. накладная, Справки бухгалтерские)