Имя: Пароль:
1C
1С v8
Com-подключение к серверу 1С
,
0 suvolod
 
05.07.12
10:32
Не могу понять в чем ошибка:

вот так подключает (Результат = Истина):
СтрокаПодключения="srvr=""1CV8-SERVER"";ref=""Trade_R"";usr=""user"";pwd=""123""";
C=Новый COMОбъект("V82.Application");
Результат = C.Connect(СтрокаПодключения);


а вот так нет (ComОбъект=Неопределено):
COMПодключение = Новый COMОбъект("V82.COMConnector");
COMОбъект = COMПодключение.Connect(СтрокаПодключения);


погуглил тему... через комконнектор подключение к серверу вроде тоже должно работать (пользовалася всегда им). Почему-же тогда не получается?
1 izekia
 
05.07.12
10:45
два соединения подряд поднимаешь?
2 suvolod
 
05.07.12
10:49
Нет.. кажется начинаю разбираться. Вывел описание ошибки. Вот что пишет:
Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V82.COMConnector.1): Версия компоненты 'comcntr' (8.2.15.301) отличается от версии корневого модуля 'core82' (8.2.15.310)

Сервак и клиент действительно разные. Точнее, на клиенте есть и 301, и 310 версия. Как мне указать в строке подключения, какую версию клиента использовать?

И второе, почему тогда проходит инициализиция через V82.Application&
3 izekia
 
05.07.12
10:53
(") для кома кажется никак
4 suvolod
 
05.07.12
10:55
:(..........
5 hhhh
 
05.07.12
11:07
переустановить 1с, клиента, какой тебе нужно.
6 эцп
 
05.07.12
11:13
(2) regsvr32 "c:\Program Files\1cv82\8.2.15.310\bin\comcntr.dll"
7 suvolod
 
05.07.12
11:22
(5). Специфика задачи такова, что комп, из под которого запускается com-соеденинение, не обслуживается. Т.е. там стоит локальная база, которая вытягивает с серверной определенные данные, но обновление и обслуживание этой базы не планируется. Хочется ее просто поставить и забыть. А не бежать каждый раз переустанавливать клиента, когда меняется номер серверной версии.

Как лучше это сделать? Если я вместо комконнектора буду использовать v82.Application, чем это хуже? В гугле нашел вот это: http://www.1c-galaxy.ru/forum4/topic288417/ Получается, после выгрузки процесс v82.Application так и не закроется? Есть еще минусы по сравнению с комконнектором?
8 yabes
 
05.07.12
11:27
(7) А ты укажи в настойках бызы к которой подключаешься Версию 1С:Предприятия! Там сейчас написано 8.2 и он использует последнюю версию платформы, а ты напиши 8.2.301 или что там у тебя!
9 suvolod
 
05.07.12
11:31
решение половинчатое.. но спасибо за мысль. Как временная мера подойдет.
10 Gobseck
 
05.07.12
11:31
Закладка
11 yabes
 
05.07.12
11:36
(9) Напиши мне свой адрес, я тебе скину видео по этому поводу! Там рассматривается v82.Application и Com-соединения!
12 suvolod
 
05.07.12
11:42
chromo c. о. б. а. к. а майl.rу
13 yabes
 
05.07.12
11:44
(2) "И второе, почему тогда проходит инициализиция через V82.Application&" Потому что когда ты используешь V82.Application, то открывается еще одно независимое приложение 1С с платформой, которая на сервере, а когда ты пользуешься COM, то используется интерфейс текущий базы, а она у тебя запущена на последней версии платформы!
14 yabes
 
05.07.12
11:48
(12) отправил!
15 izekia
 
05.07.12
13:05
(7) раз в 10 будет все медленнее
16 izekia
 
05.07.12
13:08
17 suvolod
 
05.07.12
13:41
(14)Спасибо, сейчас посмотрю.

Миста глючила, не мог зайти..
18 suvolod
 
05.07.12
13:55
(16) да ... судя по ссылке, v82.Application - это зло.

Уже просто интересно Получается:

v82.Application - это полноценный OLE-сервер, но достаточно медленный и глючный.
v82.COMconnector - это обрезанный OLE, который работает только через 1С (т.е. на делфи, например, этот объект не вызовешь), который требует синхронизации версий, но зато он очень быстрый. Так?
19 izekia
 
05.07.12
14:06
(18) нене комконнектор отовсюду работает, и это совсем не обрезанный оле, скорее всего разные люди их писали, или оле - это обертка над коннектором
20 suvolod
 
05.07.12
14:08
тогда мне непонятно, почему комконнектору нужно соответствие версий, а компаликейшену - нет.
21 izekia
 
05.07.12
14:09
(20) я им не пользуюсь и не знаю
22 yabes
 
05.07.12
14:16
(20) Посмотри видео! Там же это объясняется! Потому что когда ты используешь Application, то открывается еще одно независимое приложение 1С с платформой (а следовательно открывается та версия платформы, которая на сервере), а когда ты пользуешься COM, то используется интерфейс текущий базы (а текущая база у тебя открыта в последней версии платформы, которая не соответствует версии платформы на сервере)! Опять не понятно?
2 + 2 = 3.9999999999999999999999999999999...