Как вернуть табличный документ внешней обработки

1. romulanin 30.11.23 07:39 Сейчас в теме
Можно ли вызвать программно команду внешней обработки, чтобы она вернула мне табличный документ сформированный внешней обработкой.
пытаюсь делать что-то подобное, пока ничего не получается. Мне нужно не сформировать, а вернуть в документ.

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

&НаСервере
Функция ПолучитьОбработку()
	Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("ТестВызовКоманд");
КонецФункции 

&НаСервере
Функция ПолучитьТабДок(ПараметрыКоманды)
	Возврат ДополнительныеОтчетыИОбработки.ВыполнитьКоманду(ПараметрыКоманды);
КонецФункции	
Показать


В модуле объекта обработки

Функция ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполнения) Экспорт
	Если ИдентификаторКоманды = "ВПФТест" Тогда
		Возврат СформироватьПечатнуюФорму(ПараметрыВыполнения);
	КонецЕсли;	
КонецФункции   

Функция СформироватьПечатнуюФорму(Документ)	
	ТабДок = Новый ТабличныйДокумент;
	Макет = ПолучитьМакет("ТестМакет");
	
	Возврат ТабДок	
КонецФункции
Показать
По теме из базы знаний
Найденные решения
3. romulanin 01.12.23 09:07 Сейчас в теме
Сделал так, вдруг кому пригодится
&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
                ТабДок = ПолучитьОбработку();
                ТабДок.Показать();       
КонецПроцедуры          

&НаСервере
Функция ПолучитьОбработку() 
                
                ОбработкаСсылка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("ТестВызовКоманд");
                ПараметрыКоманды = Новый Структура();
                МассивОбъектов = Новый Массив;
                МассивОбъектов.Добавить(Объект.Ссылка);
                ПараметрыКоманды.Вставить("ДополнительнаяОбработкаСсылка", ОбработкаСсылка);
                ПараметрыКоманды.Вставить("ИдентификаторКоманды", "ВПФТест");
                ПараметрыКоманды.Вставить("ОбъектыНазначения", МассивОбъектов);
                
                ТабДок = новый ТабличныйДокумент();
                АдресРезультата =  Новый УникальныйИдентификатор();
                
                ИмяФайла = ПолучитьИмяВременногоФайла();
                ДвоичныеДанные = ОбработкаСсылка.ХранилищеОбработки.Получить();
                ДвоичныеДанные.Записать(ИмяФайла);
                ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла);
                ТабДок = ВнешняяОбработка.ВыполнитьКоманду("ВПФТест", ПараметрыКоманды);
                
                возврат ТабДок;             
                
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 30.11.23 08:27 Сейчас в теме
(1) Делайте внешнюю обработку с типом заполнение объекта, в ней что угодно можно с документом сделать.
romulanin; +1 Ответить
3. romulanin 01.12.23 09:07 Сейчас в теме
Сделал так, вдруг кому пригодится
&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
                ТабДок = ПолучитьОбработку();
                ТабДок.Показать();       
КонецПроцедуры          

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот