Имя: Пароль:
1C
1С v8
v8: EvalExpr не работает возврат из 1С
0 looser777
 
16.04.13
00:00
Версия 1С 8.2

На Delphi написан кусочек кода:
 ole1C := CreateOleObject("V82.Application");
 ole1C := ole1C.Connect("File="C:\base"; Usr="USER01";Pwd="12345";");
 s1  :=  Ole1C.EvalExpr("");

В 1С некая функция:

Функция EvalExpr(ВычисляемоеВыражение) Экспорт
 Перем КодВозврата;
 КодВозврата := "1";  
 Возврат КодВозврата    
КонецФункции

При вызове  функции в 1С в s1 не чего не передается.
НА более ранних версиях такое работало.
1 looser777
 
16.04.13
00:02
Исправление:
 s1  :=  Ole1C.EvalExpr(" EvalExpr(ВычисляемоеВыражение)");
Дополнение:
Точно знаю что функция вызывается!
2 hhhh
 
16.04.13
01:12
походу

КодВозврата = "1";
3 Infsams654
 
16.04.13
08:25
(0) "В 1С некая функция: " Где конкретно эта функция ?
ole1C от куда ее возмет ?
4 Infsams654
 
16.04.13
08:29
(0) < ОМ/менеджер/поднятый объект >.EvalExpr(ВычисляемоеВыражение)");

ole1C.Eval("
5 1Сергей
 
16.04.13
08:35
ты это... С семёркой не попутал?
6 mikecool
 
16.04.13
08:37
КодВозврата := "1";
это точно скомпилилось в 1с?
7 looser777
 
16.04.13
09:28
Infsams654, функция в общих модулях. Причем она отрабатывает, т.е. если в ней вызвать из Delphi  создание документа, то она его создаст, без проблем.  Она просто не чего не возвращает в Delphi.  

исправления КодВозврата = "1";
8 1Сергей
 
16.04.13
09:33
(7) надо именно в глобальном модуле чтобы она была
9 arsik
 
гуру
16.04.13
09:48
Может функция вне контекста "внешнее соединение"?
10 Infsams654
 
16.04.13
10:02
(7) ну попробуй тогда не функцией получить разультат, а в параметре процедуры
Процедура EvalExpr(Результат, ВычисляемоеВыражение) Экспорт
11 looser777
 
16.04.13
10:39
(4) Method 'Eval' not supported by automation object.
12 looser777
 
16.04.13
10:49
как тогда в Delphi результат получать?
13 Infsams654
 
16.04.13
10:51
(12) попробуй V82.COMConnector, а не Application
14 Aprobator
 
16.04.13
11:13
(0) EvalExp некая функция в 1С????
15 looser777
 
16.04.13
11:14
(14)  да
16 Aprobator
 
16.04.13
11:16
КодВозврата := "1";  - так в 1 сы не пишется. Двоеточие в току.
17 Aprobator
 
16.04.13
11:17
да и где контролька, что соединение состоялось без сбоев?
18 looser777
 
16.04.13
11:20
(17) да состоялось соединение. писал уже, я там могу документ в 1с создать. тупо не ворачивается результат функции!
19 looser777
 
16.04.13
11:23
(13) у V82.COMConnector, не поддерживается EvalExpr.

Не могу понять не уже не где нет четкого описания EvalExpr.
20 Infsams654
 
16.04.13
11:24
(19) еше раз см. (10)
21 Infsams654
 
16.04.13
11:25
(19) не EvalExpr , а Eval
22 Infsams654
 
16.04.13
11:26
это не 7, см (5)
23 looser777
 
16.04.13
11:47
(21) и Eval не поддерживает.
24 Aprobator
 
16.04.13
11:49
Вычислить - пробовал?
25 Infsams654
 
16.04.13
11:52
Встроенные функции языка.Вычислить (Script functions.Eval)
Встроенные функции языка (Script functions)
Вычислить (Eval)
Синтаксис:

Вычислить(<Выражение>)
Параметры:

<Выражение> (обязательный)

Тип: Строка.
Выражение, которое требуется вычислить.
Возвращаемое значение:

Результат вычисления выражения. Тип возвращаемого значения зависит от типа выражения.
Описание:

Вычисляет переданное выражение. С помощью метода можно вычислять математические и логические выражения, а также операции конкатенации. Подробнее про выражения см. раздел "Выражения языка".

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
26 looser777
 
16.04.13
12:14
(25) (24)  - ну с вычислить в Delphi это хня явная
27 looser777
 
16.04.13
12:17
(25) а Eval не с V82.Application не с V82.COMConnector не поддерживается. есть подозрение что кривой клиент.
28 Serginio1
 
16.04.13
12:41
не помню зачем делал, но решал через внешнюю обработку
v8: Как из одной базы 1C8 через COM/OLE запустить в другой базе внешнюю обработку?
29 Aprobator
 
16.04.13
13:08
есть подзрение, что cmcntrl.dll надо зарегистрировать нормально через regsvr32
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.