среда, 31 октября 2018 г.

Программный вызов ВНЕШНЕГО отчета (обработки) из управляемой формы (Тонкий клиент)

Назначение: программный вызов внешнего отчета или обработки из управляемой формы. ВНИМАНИЕ: Получение управляемой формы внешней обработки/отчета для обычного режима работы приложения не поддерживается.
Номенклатура объектов:  управляемая форма документа оЗаявкаНаЛогистику, внешний отчет «Журнал уведомлений».
Разработка на форме:
1.На управляемой форме документа «оЗаявкаНаЛогистику» создаем команду (кнопку) «Журнал уведомлений».


2.В свойствах команды в разделе «Основные» создаем действие «Журнал уведомлений"


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

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


Комментариев нет: