Имя: Пароль:
1C
1С v8
COMОбъект - как соединиться с помощью предыдущей версией платформы
0 Anonimka
 
28.11.11
13:24
Ситуация сложилась такая. Большинство баз на моем компьютере работают на платформе 8.2.13.219. Но вот появился клиент, работающий на  8.2.14.540.
Как только установила 14 платформу, перестала работать обработка, содержащая строку БазаКом = Новый COMObject("V82.COMConnector") - при попытке подключения выдается предложение конвертировать базу.
Можно ли как-то обойти это?
1 palpetrovich
 
28.11.11
13:33
что-то было по этой теме, кажется даже здесь. сам - не знаю, не помню :(
зы: типа ап
2 Fish
 
28.11.11
13:38
Перевести все базы на 14 релиз не предлагать?
3 бомболюк
 
28.11.11
13:41
придется в реестре перерегистрировать на время файл от старой 1С-ки.
4 DmitrO
 
28.11.11
13:42
Чтобы обойти надо зарегистрировать progid V82.COMConnector на библиотеку от 13го релиза:
resvr32.exe "C:\Program Files\1cv82\8.2.13.219\bin\comcntr.dll"
5 DmitrO
 
28.11.11
13:42
поправка:
regsvr32.exe "C:\Program Files\1cv82\8.2.13.219\bin\comcntr.dll"
6 Anonimka
 
28.11.11
14:00
Перевести - нельзя, большинство клиентов не хотят переходить на 14.
Перерегистрировала библиотеку, все получилось.
Спасибо большущее!
7 palpetrovich
 
28.11.11
14:00
может в базу знаний?
8 DmitrO
 
28.11.11
15:34
Это не все так-то, если в базу знаний, то:
Надо отметить, что есть определенные проблемы с этим финтом, когда используется клиент-серверная база.
Проблемы состоят в том, что если база клиент-серверная то подключаться к ней можно только с помощью comcntr.dll совпадающей с версией сервера.
А comcntr.dll в свою очередь может загрузиться в адресное пространство 1С только той же версии что и она сама.
Поэтому, если мы имеем два сервера 1С разных версий, то не смотря на возможность перерегистрации dll, COM-соединение между базами расположенными на разных серверах мы установить не сможем.

Следует отдельно отметить, что проблему можно решить зарегистрировав эту dll как COM+ приложение, при этом она будет выполнятся в другом, отдельном, процессе и конфликта не будет, но зато будут накладные расходы на маршалинг (межпроцессное взаимодействие, будет медленнее работать в общем).
9 Anonimka
 
28.11.11
18:00
DmitrO, спасибо, эта обработка у меня только на базе в файловом варианте, так что меня спасли :)
Возможно, понадобится и на клиент-серверном в будущем, так что сохраню ссылку.
Еще раз СПАСИБО!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.