Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Не работают методы ВыполнитьПроцедуру/Функцию (число прочтений - 8096 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #15 - 07. Июня 2008 :: 05:08
Печать  
Да, так не работает
Код
Выбрать все
Сообщить("ТипЗначенияСтр(глВзятьГлобальныйКонтекст()) = <"+ТипЗначенияСтр(глВзятьГлобальныйКонтекст())+">"); 


показывает, что типа нет Печаль

Я тебе и говорю, что с глобальным контекстом нельзя работать как с обычным контекстом, тут нужен спец.код обработки внутри ФормЕкс Печаль
А существующий код или тот, что был в 2.0.5.69 и ранее, имеет неявное поведение.

Лучше всего добавить отдельное поведение для ГМ в ФормЕкс (но я не уверен в большой необходимости) или воспользоваться ВМ для публичных методов.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #16 - 07. Июня 2008 :: 05:18
Печать  
Да и вообще я против работы с приватными функциями с помощью каких-то внешних средств Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
SnarkHunter
Junior Member
**
Отсутствует


Vae victis!

Сообщений: 22
Местоположение: Россия, Новосибирск
Зарегистрирован: 16. Ноября 2007
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #17 - 07. Июня 2008 :: 05:45
Печать  
Цитата:
А публичную функцию очень просто
Код
Выбрать все
ТекстДляВМ = ИмяГлобальнойФункции +"("+Параметры+");";  


Как видишь, все очень просто.


А можно, если не затруднит, получить более развернутый ответ, специально для тех, кто в танке... Допустим, что в ГМ объявлена процедура с ключевым словом Экспорт, как ее выполнить при помощи ВМ в глобальном же модуле?
  

Есть люди, которых надо спасать от собственной смелости...
Наверх
ICQ  
IP записан
 
SnarkHunter
Junior Member
**
Отсутствует


Vae victis!

Сообщений: 22
Местоположение: Россия, Новосибирск
Зарегистрирован: 16. Ноября 2007
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #18 - 07. Июня 2008 :: 14:30
Печать  
Вы не отвечаете на мой ответ...  Смех
  

Есть люди, которых надо спасать от собственной смелости...
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #19 - 09. Июня 2008 :: 03:43
Печать  
SnarkHunter писал(а) 07. Июня 2008 :: 14:30:
Вы не отвечаете на мой ответ...  Смех

Выходной Улыбка
А ответ я тебе уже дал.
Попробую расшифровать.

Пример.
В ГМ есть публичная функция
Код
Выбрать все
глФункция(Парам1, Парам2) Экспорт 



Пишем код, неважно в ГМ или еще где
Код
Выбрать все
ВМ = СоздатьОбъект("ВыполняемыйМодуль");
ВМ.УстановитьМодуль("глФункция("+1+", "+2+");");
ВМ.КомпилироватьИВыполнитьМодуль(); 


Все, фактически выполнен код
глФункция(1,2)

Или чуть более сложный пример
Код
Выбрать все
ВМ = СоздатьОбъект("ВыполняемыйМодуль");
ВМ.УстановитьМодуль("
|Функция МояФункция(Парам1, Парам2) // в ВМ можно без Экспорт :)
|  глФункция(Парам1, Парам2);
КонецФункции");
ВМ.КомпилироватьИВыполнитьМодуль();
рез = ВМ.МояФункция(1, 2); 



Если нужно что-то более хитрое, соответственно, просто колдуй с текстом модуля для ВМ.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #20 - 09. Июня 2008 :: 03:47
Печать  
Артур, есть мнение, что это полная х#йня.
Меня это не устраивает, как и Андрея.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #21 - 09. Июня 2008 :: 03:50
Печать  
Кирилл, нифига не понял твою фразу Печаль
Как-то расшифруй, в чем проблема?
Не нравится сабжевый баг, так я его пофиксил, будет в следующей сборке ФормЕкс.
С АльФ-ом разберемся с последними исходниками, и выложим сборку.

Просто данный метод использования нестабилен, неявен и т.д., см.выше.
Еще вопросы?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #22 - 09. Июня 2008 :: 03:51
Печать  
artbear писал(а) 09. Июня 2008 :: 03:50:
Не нравится сабжевый баг, так я его пофиксил, будет в следующей сборке ФормЕкс.
Еще вопросы?

Спасибо.
  
Наверх
ICQ  
IP записан
 
SnarkHunter
Junior Member
**
Отсутствует


Vae victis!

Сообщений: 22
Местоположение: Россия, Новосибирск
Зарегистрирован: 16. Ноября 2007
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #23 - 09. Июня 2008 :: 03:55
Печать  
Спасибо
  

Есть люди, которых надо спасать от собственной смелости...
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #24 - 09. Июня 2008 :: 03:56
Печать  
Кстати, отсутствие бага уже можно проверить на моей неофициальной сборке
http://www.1cpp.ru/forum/YaBB.pl?num=1192922049/8#8
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #25 - 10. Июня 2008 :: 03:22
Печать  
Ну что, баг исправлен?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
SnarkHunter
Junior Member
**
Отсутствует


Vae victis!

Сообщений: 22
Местоположение: Россия, Новосибирск
Зарегистрирован: 16. Ноября 2007
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #26 - 18. Июня 2008 :: 04:21
Печать  
artbear писал(а) 10. Июня 2008 :: 03:22:
Ну что, баг исправлен?


Установил 2.0.5.88, обсуждаемый функционал работает. Большое человеческое спасибо!
  

Есть люди, которых надо спасать от собственной смелости...
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #27 - 18. Июня 2008 :: 05:07
Печать  
Тогда закрой, плиз, баг http://www.1cpp.ru/bugs/show_bug.cgi?id=3906
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
SnarkHunter
Junior Member
**
Отсутствует


Vae victis!

Сообщений: 22
Местоположение: Россия, Новосибирск
Зарегистрирован: 16. Ноября 2007
Пол: Мужской
Re: Не работают методы ВыполнитьПроцедуру/Функцию
Ответ #28 - 18. Июня 2008 :: 05:32
Печать  
Закрыл
  

Есть люди, которых надо спасать от собственной смелости...
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать