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

ВыполнитьПроцедуру и FormEX

ВыполнитьПроцедуру и FormEX
Я
   Volodja
 
30.06.20 - 10:40
Можно ли из Formex вызвать процедуру глобального модуля?
   //Сервис=СоздатьОбъект("Сервис");
   //ПутьОбработчика="ТестоваяОбработка"; в глобальном модуле есть Процедура ТестоваяОбработка()

    Сервис.ВыполнитьПроцедуру(,СокрЛП(спрРЗ.ПутьОбработчика));
   Волшебник
 
Модератор
1 - 30.06.20 - 10:44
Экспорт добавь
   Volodja
 
2 - 30.06.20 - 10:47
Добавлен. не проходит
   Mikeware
 
3 - 30.06.20 - 11:33
(0) так ты в текущем контексте пытаешься найти выполняемую процедуру
   Volodja
 
4 - 30.06.20 - 16:33
(3) Да верно. а как задать контекст глобального метода?
   Volodja
 
5 - 30.06.20 - 16:34
модуля
   Ёпрст
 
6 - 30.06.20 - 16:41
(0) для этого формекс не нужен, она и так доступна везде, если экспортная
   Volodja
 
7 - 30.06.20 - 16:45
У меня название процедуры в переменной
   Djelf
 
8 - 30.06.20 - 18:00
(0) Не работает это с глобальными процедурами, а только с процедурами Контекста, а в ГМ - ГлобальныйКонтекст, а вот получить его, насколько я знаю, никому не удалось.
Используй ВыполняемыйМодуль из 1с++
ВМ = СоздатьОбъект("ВыполняемыйМодуль");
ВМ.УстановитьМодуль("глПроцедура();");
ВМ.КомпилироватьИВыполнитьМодуль(); 

   mikecool
 
9 - 30.06.20 - 18:04
(7) Выполнить() в помощь
   Djelf
 
10 - 30.06.20 - 18:04
+(8) А можно и без FormEx и 1C++. 
Нужна пустая форма с кодом #ЗагрузитьИзФайла ВыполняемыйКод.txt, а в ВыполняемыйКод.txt пишешь вызов процедуры.
   Djelf
 
11 - 30.06.20 - 18:07
(9) Выполнить()? В клюшках? Протрезвей!
   Ёпрст
 
12 - 30.06.20 - 22:22
(7) открой для себя Шаблон
   Ёпрст
 
13 - 30.06.20 - 22:22
(11) шаблон же, считай, выполнить в снеговике
   Djelf
 
14 - 01.07.20 - 15:15
(12) Шаблон не выполняет Процедуры, только Функции. Будет ошибка: "Процедура вызывается как функция (глПроцедура)"
   Ёпрст
 
15 - 01.07.20 - 15:18
(14) ну ты как маленький..одну функцию заглушку и привет.
   Ёпрст
 
16 - 01.07.20 - 15:20
Ну а так, раз есть формекс, то проще добавить свой глобальник со своими процами ифункциями..
   Ёпрст
 
17 - 01.07.20 - 15:20
Да и вообще, не понятно, как у автора есть имя, и почему не может просто написать его в коде
   Djelf
 
18 - 01.07.20 - 15:39
(17) Заглушку то можно, но предположим что в конкретной конфигурации нет процедуры, для которую мы пишем заглушку - не сработает.
Тогда решение только в (16) - собирать доп.гм с заглушками и через шаблон.
Это если 1c++ нет, хотя это сомнительно, использовать formex без 1c++, решение довольно странное.
   Volodja
 
19 - 02.07.20 - 07:13
Спасибо.
Я так пока и выкрутился через Шаблон
Вызываю глВыполнитьФункцию(_ИмяПроцедуры)
а в ней через Шаблон.
Пока переписал вызовы нужных процедур как функции

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

Если _ИмяПроцедуры="Процедура1" Тогда
   Процедура1();
КонецЕсли;
не хочется
А имя процедуры в переменной - это у меня планировщик заданий.
   Volodja
 
20 - 02.07.20 - 07:21
Если бы Альфа была бы реализация ВыполнитьПроцедуру() типа такой
Сервис.ВыполнитьПроцедуру("ВыполнятьВГлобалномМодуле",_ИмяПроцедуры), но видимо там есть какие-то тонкости...
   Mikeware
 
21 - 02.07.20 - 07:34
(19) Ну сделал бы через ВыполняемыйМодуль, да не мучился.
Видимо, какие-то проблемы с взятием глобального контекста. А может, это ему просто не нужно


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