Имя: Пароль:
1C
 
Есть оператор Выполнить("Кусок кода"). А как получить результат выполнения?
0 dm77
 
26.06.06
16:16
Описание:
  Выполнить (Execute)
  Синтаксис:
  Выполнить(<Строка>)
  Параметры:
  <Строка>
  Строка, содержащая текст исполняемого кода.
  Описание:
  Позволяет выполнить фрагмент кода, который передается ему в    качестве строкового значения.

Как мне получить результат выполнения кода?
1 Волшебник
 
26.06.06
16:16
присвоить значение переменной
2 dm77
 
26.06.06
16:18
(1) я вызываю её из C#. В все и делою
3 dm77
 
26.06.06
16:19
(2) В том все и дело
4 avmlvm
 
26.06.06
16:20
Это функция? Тогда так

а = Функция (КусокКода);
5 vde69
 
26.06.06
16:20
еще можно так

результат = выполнить("?(1=1," + "то, что хочешь вернуть", "")
6 Волшебник
 
26.06.06
16:20
(2) Научи
7 vde69
 
26.06.06
16:21
забыл

результат = выполнить("?(1=1," + "то, что хочешь вернуть", ")")
8 dm77
 
26.06.06
16:24
(6)
...InvokeMember("Выполнить", InvokeMethod, null, COMObject, "код на 1С")
9 Билли Г
 
26.06.06
16:27
В COM - соединении этот метод недоступен...
10 dm77
 
26.06.06
16:27
(9) через OLE
11 dm77
 
26.06.06
16:34
(4) Это не функция, а процедура
12 vde69
 
26.06.06
16:37
вообще для этого надо ее воткнуть в экспортую функцию!!!!
13 Гений 1С
 
гуру
26.06.06
16:42
(0)Есть еще ВычислитьВыражение...
Ну а ваще типо такого:
с1=СоздатьПриложение1С;
с1.Выполнить("глР=1+1;");
Рез=с1.глР;

Или

с1=СоздатьПриложение1С;
с1.ВычислитьВыражение("Executor("1+1;Р=12+12;")");
Рез=с1.глР;


А объявлена функция:
Функция Executor(Code)
Перем Р;
Выполнить(Code);
Возврат Р;
КонецФункции;

Надеюсь, внятно излогаю.
14 Гений 1С
 
гуру
26.06.06
16:43
Тьфу ты, во втором примере:

с1=СоздатьПриложение1С;
Рез=с1.ВычислитьВыражение("Executor("1+1;Р=12+12;")");
15 dm77
 
26.06.06
16:45
(12) трогать код 1С не желательно, я думаю, что надо создать самому переменную и потом ее читать, или использовать какую-нибудь глобальную.
16 vde69
 
26.06.06
17:00
(15) я тоже так хотел, но это у меня не получилось
причин тому много...
17 Defender aka LINN
 
26.06.06
17:07
(0) А Вычислить() чем не устраивает?
18 Гений 1С
 
гуру
26.06.06
17:13
(15) извращенный вариант - сохранитьзначение, получитьзначение... :)
19 Гений 1С
 
гуру
26.06.06
17:15
(17) по мому вычислить может вычислить только выражение, а не последовательность операторов, видимо автор намекает на это.. :)
20 dm77
 
26.06.06
17:18
(17) надо выполнить запрос и потом его обработать
21 vde69
 
26.06.06
17:23
(17) так для это делаеться обьектно!!!
22 Гений 1С
 
гуру
26.06.06
18:13
(21) во-во...
Запрос=приложение1с.NewObject("Запрос")
Запрос.Текст="";
Запрос.Выполнить();
Пака запрос.следущий и т.д.