Имя: Пароль:
1C
1С v8
Вызвать из общего модуля процедуру внешней обработки
0 MrAvPika
 
05.11.16
14:50
Кто нибудь знает как вызвать экспортную процедуру внешней обработки из общего модуля?
1 SleepyHead
 
гуру
05.11.16
17:07
(0) Обычно наоборот делают. В чем тайный смысл?
2 Suricatt
 
05.11.16
17:12
Внешняя обработка хранится в справочнике.
Сохраняете на диск и далее Новый ВнешняяОбработка
3 Suricatt
 
05.11.16
17:14
Немного ошибся:
ВнешняяОбработка.Создать(ИмяФайла)
4 Матиус-IV
 
05.11.16
17:24
(2) У ТС ничто нигде не хранится.
5 PR
 
05.11.16
19:06
В общем модуле, например "ОбщийМодуль1"

Процедура ВыполнитьПроцедуруВнешнейОбработки(ИспользуемоеИмяФайла, ИмяПроцедуры, Параметры)
    
    Обработка = ВнешниеОбработки.Создать(ИспользуемоеИмяФайла);
    Выполнить("Обработка." + ИмяПроцедуры + "(Параметры)");
    
КонецПроцедуры



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

Процедура <ИмяПроцедуры>(Параметры) Экспорт
    
    //...код...
    
КонецПроцедуры



В модуле, откуда вызывается процедура общего модуля (например, модуль формы той же самой обработки) и где известен контекст обработки или путь к файлу. Пусть это серверная процедура формы обработки, тогда нужно будет определить имя файла, иначе нужно будет его передавать как откуда-то известную строку.

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