Вход | Регистрация


вызвать обработку из макета

вызвать обработку из макета
Я
   inkvizitr
 
18.10.18 - 15:54
Стоит задача, внешнею обработку1 запихнуть в макет внешней обработки2, и от туда ее вызывать, как это реализовать
 
 
   Lexey_
 
1 - 18.10.18 - 15:56
(0) получить обработку из макета, записать в файл, вызвать
   Cool_Profi
 
2 - 18.10.18 - 15:57
1. Запихнуть обработку в макет.
2. Создать обработку и подсунуть ей ДД из того макета.
3. Вызвать.

N. Перечислить мне M рублей
   inkvizitr
 
3 - 18.10.18 - 15:57
(1) Уже записал как двоичные данные, а как вызвать
   Lexey_
 
4 - 18.10.18 - 15:58
(3) ВнешниеОбработкиМенеджер (ExternalDataProcessorsManager)


Методы:
Подключить (Connect)
ПолучитьФорму (GetForm)
Создать (Create)


Описание:
Предназначен для управления внешними обработками и позволяет получать значения типа ВнешняяОбработка при помощи метода Создать. Доступ к объекту осуществляется через свойство глобального контекста ВнешниеОбработки.
   inkvizitr
 
5 - 18.10.18 - 16:01
(4) это я так понимаю использовать временно хранилище
   Greeen
 
6 - 18.10.18 - 16:27
АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
Обработка_Имя = ВнешниеОбработки.Подключить(АдресФайлаВоВременномХранилище, , Ложь);
СуперПуперОбработка= ВнешниеОбработки.Создать(Обработка_Имя);
СуперПуперОбработка.СделатьВсе();
   inkvizitr
 
7 - 18.10.18 - 16:51
(6) Щас попробую
   inkvizitr
 
8 - 18.10.18 - 17:46
(6) пробую так
    &НаКлиенте
    Процедура Выполнить(Команда)
        ПараметрыОбработки = Новый Структура;
        ПараметрыОбработки.Вставить("Организация", ЭтаФорма.ЭтотОбъект.Организация);
        ПараметрыОбработки.Вставить("Контрагент", ЭтаФорма.ЭтотОбъект.Контрагент);
        ПараметрыОбработки.Вставить("Документы", ЭтаФорма.ЭтотОбъект.СписокДокументов);
                    
        ИмяВнешнейОбработки = ПолучитьОбработку();    
        
        ОткрытьВнешнийОтчетОбработкуПоИмениСДопПараметрами (ИмяВнешнейОбработки, ПараметрыОбработки, Ложь);
    КонецПроцедуры
    
    &НаСервере
    Функция ПолучитьОбработку()
        ДвоичныеДанные = ПолучитьДвоичныеДанные();
        АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор);
        Обработка = ВнешниеОбработки.Подключить(АдресФайлаВоВременномХранилище, , Ложь);
        СуперПуперОбработка= ВнешниеОбработки.Создать(ОбработкаСопроводительноеПисьмо);
        Возврат СуперПуперОбработка;
    КонецФункции    
    
    &НаСервере
    Функция ПолучитьДвоичныеДанные()
        Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("ВложеннаяОбработкаВМакет");
    КонецФункции

валится на ИмяВнешнейОбработки = ПолучитьОбработку();
как дальше правильно реализовать?
   Greeen
 
9 - 18.10.18 - 18:44
Если нужно форму именно открыть, то вот так (+ допилить передачу параметров)
  &НаКлиенте
  Процедура  Команда1(Команда)
      
      ИмяВнешнейОбработки = ПолучитьОбработку();    
      
      Форма_имя =  "ВнешняяОбработка."+ ИмяВнешнейОбработки +".Форма";
      ОткрытьФорму(Форма_имя);
      
  КонецПроцедуры
  
  &НаСервере
  Функция ПолучитьОбработку()
      ДвоичныеДанные = ПолучитьДвоичныеДанные();
      АдресФайлаВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор);
      Обработка = ВнешниеОбработки.Подключить(АдресФайлаВоВременномХранилище, , Ложь);
      Возврат Обработка;
  КонецФункции    
  
  &НаСервере
  Функция ПолучитьДвоичныеДанные()
      Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
  КонецФункции
   inkvizitr
 
10 - 18.10.18 - 20:09
(9) Спасибо огромное, ты лучший, я отладчиком прогнал, теперь стало ясно как работает данный алгоритм
 
 Рекламное место пустует
   TormozIT
 
11 - 18.10.18 - 22:54
(10) Теперь осталось поставить в такой внешней обработке точку останова и попытаться остановиться в ней при рабочем вызове.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует