Имя: Пароль:
1C
1C 7.7
v7: Как получить тип значения объекта в OLE подключении?
0 Креатив
 
10.03.12
10:50
Подключаюсь к семёрке. Нужно узнать тип объекта.
1 Ork
 
10.03.12
10:56
(0) Можно пользовать семерочные ТипЗначения() или ТипЗначенияСтр()
2 Креатив
 
10.03.12
11:03
(0)v7.ТипЗначенияСтр() пишет, что такого поля нет
Да. Подключаюсь из восьмёрки.
3 andrewks
 
10.03.12
11:04
EvalExpr
4 Креатив
 
10.03.12
11:09
(3)Надо попробовать.
5 Креатив
 
10.03.12
11:19
(3)Не работает.Пишет ошибка при вызове метода контекста.
6 andrewks
 
10.03.12
11:20
показывай код
7 Ork
 
10.03.12
11:25
(2) "v7.ТипЗначенияСтр() пишет, что такого поля нет"

Для ясности - код подключения в студию. Вероятнее всего подключение не установлено.
8 Креатив
 
10.03.12
11:33
(7)Подключение точно установлено.    
ПутьКонфигурации =  "enterprise /D G:\1CV77COM\DBBASIC\ATC\ /N" + Пользователь +" /P "+СокрЛП(Пароль);    // +  "\ /N" + ИмяПользователя();
   Открыта=V71.Initialize(V71.RMTrade, ПутьКонфигурации, "NO_SPLASH_SHOW");
   ТЗ = V71.CreateObject("ТаблицаЗначений");
   ТЗ1 = V71.CreateObject("ТаблицаЗначений");
...
   КСТЗ = ТЗ.КоличествоСтрок();
   Для ш = 1 По КСТЗ Цикл  // 50
       ТЗ.ПолучитьСтрокуПоНомеру(ш);
       ТЗ1 = ТЗ.ТЗ;
       Если V71.ТипЗначенияСтр(ТЗ1)<> "ТаблицаЗначений" Тогда
           Продолжить;
       КонецЕсли;
...
9 Креатив
 
10.03.12
11:37
(8)+ Ну и в начале
V71 = Новый COMОбъект("V77s.Application");
10 Ork
 
10.03.12
11:51
(8) Вроде все красиво.
Правда нет проверки чему равно "Открыта".

И для уверенности попробоапть проверку типа сделать после создания таблиц значений.

ТЗ = V71.CreateObject("ТаблицаЗначений");
// примерно так :
Сообщить(V71.ТипЗначения(ТЗ));
Сообщить(V71.ТипЗначенияСтр(ТЗ));
11 smaharbA
 
10.03.12
15:44
ЗначениеВСтроку evalexpr ТипЗначения ЗначениеИзСтроки
12 Креатив
 
10.03.12
18:43
(10)Пробовал. Выдаёт ошибку.
(11)Можно попробовать, но сдаётся мне, что тоже не взлетит.
13 ProxyInspector
 
10.03.12
18:50
Ты попробуй v7.XXXX() Где ХХХХ() есть ТипЗначения() в английской транскрипции с вероятностью 90% сработает
14 ProxyInspector
 
10.03.12
18:52
Ну а если совсем не получиться, тогда в глобальный модуль V7 добавь экспортную функцию
Функция адТипЗначенияСтр(ТекЗначение) Экспорт
  Возврат ТипЗначенияСтр(ТекЗначение)
КонецФункции

  Это сработает 100%
15 ProxyInspector
 
10.03.12
18:53
вызывать естественно v7.адТипЗначениеСтр(ТЗ)
16 smaharbA
 
10.03.12
18:54
(12) взлетит, поверь
17 GreyK
 
10.03.12
18:54
(12) Усё работает шефф :)
ИД=ZВнешнийИсточник.ЗначениеВСтрокуВнутр(ОбъектВИ);
Тип=ZВнешнийИсточник.EvalExpr("ТипЗначенияСтр(ЗначениеИзСтрокиВнутр("""+СтрЗаменить(ИД,"""","""""")+"""))");
18 Креатив
 
10.03.12
19:53
Ладно, спасибо всем. Буду знать.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан