Имя: Пароль:
   
1C
1С v8
COM-соединение и версии платформ
0 PsyTech
 
29.09.16
13:02
Всем привет!
При подключении по COM ругается на отличие версии внешней компоненты от корневого модуля, т.к. платформы разные (обе 8.3). Как можно обойти?
1 Garykom
 
29.09.16
13:04
1. Везде одинаковая платформа 1С
2. Нафуй этот COM
2 PsyTech
 
29.09.16
13:22
(1) 1.О чем тогда эта ошиибка?
2. Есть обработка по выгрузке документов, которая уже на COM работает.
3. Как еще залезть в др базу и пошарить по реквизитам документа и реквизитам реквизитов?
3 PsyTech
 
29.09.16
13:50
Без вариантов? Переделывать на сервисы?
4 PsyTech
 
29.09.16
14:05
8.3 c 8.3 почему-то не хочет коннектится:
Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты 'comcntr' (8.3.6.2390) отличается от версии корневого модуля 'core83' (8.3.8.2054)
Может кто сталкивался?
5 Serginio1
 
29.09.16
14:16
(0) Никак. v8: v8: Использование сборок .NET в 1С 7.x и 8.x

Веренее  comcntr.dll загружается, но вот core83.dll использует текущего процесса.
А он не совместим с версией запускаемого по COM соединении
6 PsyTech
 
29.09.16
14:36
(5) Это такая фича 8.3?
8.1 с 8.2 без проблем получалось коннектить...
7 PsyTech
 
29.09.16
14:52
(5) "Никак" - такой бывает ответ?)
8 PloAl
 
29.09.16
14:55
СОМы в регистрируются в реестре по идее там последняя инсталированая версия
9 Serginio1
 
29.09.16
14:56
(6)При подключении из 8.x к 8.y используются разные
core8x и core8.y поэтому все нормально
10 Serginio1
 
29.09.16
15:00
Даже если подключаться из 7 ки
v8: v8: Использование сборок .NET в 1С 7.x и 8.x
Сначала подключится к 8.3.3.715\bin\comcntr.dll";
а затем к 8.3.4.365\bin\comcntr.dll";

То выдаст ошибку
ком=res.Connect("File=""C:\Тест\ТестоваяБаза"";");
{C:\НОВЫЕОТЧЕТЫ\ТЕСТNETOBJETTOIDISPATCH20.ERT(183)}: V83.COMConnector.1: Версия компоненты 'comcntr' (8.3.4.365) отличается от версии корневого модуля 'core83' (8.3.3.715)

То есть она берет уже загруженный core83
11 PsyTech
 
29.09.16
15:38
Я так и не понял - как их сконнектить( Неужели никак?
12 Gary417
 
29.09.16
15:41
(11) сделать так чтобы версии платформы были одинаковыми

вообще не понимаю зачем вообще платформы разных ревизий (не версий) держать отдельно для разных баз
13 Gary417
 
29.09.16
15:42
(12) +а, не углядел, всётаки разные версии

но тем не менее, есть смысл подогнать все платформы под одну версию
14 Serginio1
 
29.09.16
15:43
(11) Можно, но запускать не через Connector а Application
V83.Application
15 PsyTech
 
29.09.16
15:44
(13) Бух 1 филиала и УТ другого
16 PsyTech
 
29.09.16
15:55
(14) там скажет, что версии клиента и сервера отличаются
17 oleg_km
 
29.09.16
16:00
(14) Или попробовать накрутить DCOM, чтобы это были разные процессы. У меня похожая может возникнуть проблема, но я похоже сменю все платформы
18 Serginio1
 
29.09.16
16:01
(16) Там отдельный процесс. У тебя проблема в том, что comcntr.dll загружается в текущий процесс который уже использует свою core83.Dll.
А V83.Application запускает отдельный процесс.
(17) Так проще V83.Application  использовать
19 PsyTech
 
29.09.16
16:37
(18) по сути та-же проблема - разные версии платформ. Или я не догоняю?
20 PloAl
 
29.09.16
16:42
можно установить нужную версию 1с по новой
или найти в реестре comcntr.dll и поменять путь к dll
21 Serginio1
 
29.09.16
16:46
(19) Попробуй для начала.
22 Serginio1
 
29.09.16
16:55
Но там может быть проблема под чем зарегистрировано V83.Application 1cv8.exe
Посмотри в regEdit и установи нужный путь.
Второй вариант как сказал oleg_km
это Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С