Ответ на
пост №3
MASU, для команды прописываете вызов серверного метода или клиентского? Стандартно просто при гуглении внешних печатных форм в интернете в процедуре инициализации предлагается прописывать вызов серверного метода, а из серверного модуля вы никак текущие данные формы не увидите, они же все на клиентской стороне.
Можно так сделать:
В модуле обработки:
Функция СведенияОВнешнейОбработке() Экспорт
Назначения = Новый Массив ;
Назначения.Добавить("Документ.НачислениеЗарплаты") ;
ПараметрыРегистрации = Новый Структура ;
ПараметрыРегистрации.Вставить("Вид","ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение",Назначения);
ПараметрыРегистрации.Вставить("Наименование","Печать текущей строки");
ПараметрыРегистрации.Вставить("Версия","1.0");
ПараметрыРегистрации.Вставить("Информация","Дополнительная обработка табличной части");
ПараметрыРегистрации.Вставить("БезопасныйРежим",Ложь);
Команды = ПолучитьТаблицуКоманд() ;
ДобавитьКоманду(Команды, "Печать текущей строки","ПечатьТекущейСтроки","ВызовКлиентскогоМетода",Ложь,) ;
ПараметрыРегистрации.Вставить("Команды",Команды) ;
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд() и ДобавитьКоманду() стандартные, легко гуглятся.
В форме обработки добавляете процедуру:
&НаКлиенте
Процедура Печать(ВыполняемаяКоманда, ОбъектыНазначения) Экспорт
Сообщить("текущий сотрудник: "+ВладелецФормы.Элементы.Начисления.ТекущиеДанные.Сотрудник);
КонецПроцедуры // Печать()
здесь для переменной ВыполняемаяКоманда предусматривать условие в принципе нужно только если команд у вас несколько. Получаете форму вызывающего документа через ВладелецФормы, соответственно, все остальные данные вызывающей формы можно уже легко получить. В приведенном примере выводится сотрудник из текущей строки таблицы Начисления.