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

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 Сейчас в теме
Сделал так, вдруг кому пригодится
&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
                ТабДок = ПолучитьОбработку();
                ТабДок.Показать();       
КонецПроцедуры          

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

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