Имя: Пароль:
1C
 
Сервер 1С (x86-64) и регламентные задания
0 chernoff
 
01.07.09
18:27
При выполнение регламентного обмена вылетает ошибка:
При попытке подключения к информационной базе произошла ошибка:
Ошибка при вызове конструктора (COMОбъект): Invalid class string

Техническая информация:
{Обработка.ОбменДаннымиXML(15807)}: Ошибка при вызове конструктора (COMОбъект): Invalid class string

После этого установил на сервер предприятия саму платформу в надежде что это поможет, но стала вылетать ошибка:
При попытке подключения к информационной базе произошла ошибка:
Ошибка при вызове конструктора (COMObject): Class not registered

Техническая информация:
{Обработка.ОбменДаннымиXML(15801)}: Ошибка при вызове конструктора (COMObject): Class not registered

Вылетает на строке
ТекCOMПодключение = Новый COMОбъект(ОбъектПодключения);
где ОбъектПодключения = "V81.COMConnector"

Когда запускаю обмен интерактивно - все проходит без ошибок
Помогите, плз, в какую сторону рыть
1 ТелепатБот
 
гуру
01.07.09
18:27
2 And_skv
 
01.07.09
18:33
на 64 сервере "V81.COMConnector" также называеться?
3 chernoff
 
01.07.09
18:35
Интересный вопрос. Искал по реестру - там V81.COMConnector. Хотя может не туда смотрю
4 rs_trade
 
01.07.09
18:38
(0) С правами еще может засада. У меня тоже COM объект не создавался под учеткой сервера. Пока не разбирался какие конкретно права нужны для работы с COM объектами, тупо добавил "многа прав" заработало...
5 chernoff
 
01.07.09
18:39
Права надо добавить в DCOM config на 1CV81 Application? Или куда?
6 chernoff
 
01.07.09
19:40
UP, поможите кто можите
7 rs_trade
 
01.07.09
19:46
(5) И туда и туда добавь попробуй.
8 DmitrO
 
01.07.09
20:09
Дело не в правах. Дело скорее всего в следующем:
V81.COMConnector это Inproc сервер - это WIN32 DLL (x86), которая работает в контексте вызывающего процесса.
Такая dll может быть загружена только 32-х разрядным процессом. А у вас сервер 64-разрядный (x64), он просто физически не может загрузить эту DLL.
Если бы сервер был 32-разрядный, он бы на x64 ОС работал в режиме WOW и смог грузить 32-разрядный V81.COMConnector.

В то же время, даже на этом же компе можно запустить клиента (1cv8.exe, он 32-разрядный и будет работать в режиме WOW) и в нем создать V81.COMConnector и все заработает, т.к. 32-разрядная DLL будет загружаться 32-х разрядным процессом.

В то же время, на этом же компе в серверном коде можно воспользоваться V81.Application - в данном случае COM-сервер у нас будет тоже 32-разрядный, но он не Inproc (а запускает отдельный процесс 1cv8.exe), поэтому работать будет - но будет несколько медленее - т.к. будут потери быстродействия на маршалинг.
9 DmitrO
 
01.07.09
20:19
++
О 64-разрядном релизе V81.COMConnector, который бы решил проблему полностью, мне в природе встречать не приходилось.
10 chernoff
 
01.07.09
20:24
(8) (9)
Большое спасибо
Завтра буду пробывать
Чудна позиция 1С, продажа 64 сервера предприятия, в коде вызов V81.COMConnector, а результат доработать напильником
11 DmitrO
 
01.07.09
20:32
(10) ну... сервер 1С предприятия может еще работать и на Linux - там вообще нет ни какого COM.
12 chernoff
 
01.07.09
21:00
(4) Вы про 64-битный сервер говорите, а тоесть мнение (10)