Внешняя печатная форма для текущей строки в табличной части документа

Новая тема
Добрый день, коллеги!
Подскажите, пожалуйста, возможно ли получить из объекта типа Документ (текущий документ) ссылку на текущую строку табличной части документа, чтобы вывести печатную форму только для конкретного сотрудника. Например, документ Прием на работу списком, в нем необходимо вывести договор для сотрудника в выделенной строке в таблице. Объект Документ по умолчанию используется в качестве параметра во внешней печатной форме. Пробовали разные варианты, получилось обратиться к реквизитам шапки, но не табличной части.
Ответили: пост #2
Ответ на пост №1
Илья Простаков, для начала, обычные или управляемые формы?
Управляемые, конфигурация Зарплата и кадры государственного учреждения, редакция 3.1
3.1.12.144
Версия платформы 8.3.15
Ответили: пост #4
Ответ на пост №3
MASU, для команды прописываете вызов серверного метода или клиентского? Стандартно просто при гуглении внешних печатных форм в интернете в процедуре инициализации предлагается прописывать вызов серверного метода, а из серверного модуля вы никак текущие данные формы не увидите, они же все на клиентской стороне.
Можно так сделать:
В модуле обработки:

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

Функция ПолучитьТаблицуКоманд() и ДобавитьКоманду() стандартные, легко гуглятся.

В форме обработки добавляете процедуру:
&НаКлиенте
Процедура Печать(ВыполняемаяКоманда, ОбъектыНазначения) Экспорт
     Сообщить("текущий сотрудник: "+ВладелецФормы.Элементы.Начисления.ТекущиеДанные.Сотрудник);
КонецПроцедуры // Печать()

здесь для переменной ВыполняемаяКоманда предусматривать условие в принципе нужно только если команд у вас несколько. Получаете форму вызывающего документа через ВладелецФормы, соответственно, все остальные данные вызывающей формы можно уже легко получить. В приведенном примере выводится сотрудник из текущей строки таблицы Начисления.
Ответили: пост #5
Ответ на пост №4
Валера Пупкин,
спасибо, получилось.
Ответили: пост #6
Ответ на пост №5
MASU, поделитесь обработкой с юным падаваном программирования.
Бьюсь, никак не свяжу все эти функции\процедуры и их команды, что требует БСП.
Если можно, значимые части кода из модуля обработки и модуля формы, заранее спасибо
Или саму обработку, mezgmez2018 собачка mail точка ru
Заранее очень благодарен

Читают тему

(гостей: 1)

Быстрый переход