Имя: Пароль:
1C
1С v8
Фоновое задание и V82.ComConnector - Ошибка
0 Вадя
 
08.09.11
06:30
В клиентском режиме V82.ComConnector отрабатывает отлично, пытаюсь сделать в фоновом задании (на сервере) - ошибка.
Ошибка при вызове конструктора(COMОбъект) Недопустимая строка с указанием класса
Валится на этой строке
V8_Соединитель = Новый COMОбъект("v82.COMConnector");
Ссылок на V82.COMConnector полный реестр, пользователю USR1CV81 дал локального админа, в клиентском режиме под пользователем usr1cv81 процедура отрабатыват нормально, в регламентном задании - не хочет!!!!!
Хелп !!!
1 strange2007
 
08.09.11
06:34
Не хочу показаться занудой, но на 8.2 платформе, вроде как юзер USR1CV82
2 strange2007
 
08.09.11
06:36
И если через ком соединение, то в журнале регистрации можно конкретно спозиционироваться на нужную ошибку быстро.
Сразу совет: задание не через ком отрабатывает? Идея в том, что там есть (в задании) модули, которые могут только в клиентском варианте работать
3 Вадя
 
08.09.11
06:37
Подключение из 8.1 к базе на 8.2
Платформы 1С8.1.15.14 и 1С8.2.13.219
Код обычный, проверен миллион раз (в клиентском режиме)

Пользователь = "User";
Пароль       = "password";
V8_Соединитель = Новый COMОбъект("v82.COMConnector");
V8_Соединение = V8_Соединитель.Connect("SRVR=S04;REF=BH20R; Usr="""+Пользователь+""";Pwd="""+Пароль+"""");

Валится на строчке создания объекта, Новый COMОбъект("v82.COMConnector").
4 Вадя
 
08.09.11
06:39
Модуль с регламентными заданиями в базе 8.1
Галочки у модуля Клиент, Сервер, Внешнее соединение
5 Delphin
 
08.09.11
06:40
На сервере скорее всег не установлен ентот самый ComConnector )))
6 Delphin
 
08.09.11
06:41
Доустанови из стандартного дистрибутива )))
7 Вадя
 
08.09.11
06:44
На сервере установлены обе платформы - 8.1 и 8.2
Этот же сервер используется как терминальный, обе платформы работают нормально.
Сервер приложение - только 8.1, сервер приложений 8.2 на другой тачке, на S04
8 Delphin
 
08.09.11
06:47
Дык об том и разговор.
При установке на серверную винду ПО УМОЛЧАНИЮ мастер установки предлагает установить только компанент сервера.
Компанент сом-соединений не устанавливается. просто запусти на серверной машине "1CEnterprise 8.1 Server (x86-64).msi" - сам все увидишь.
9 Delphin
 
08.09.11
06:49
Сам на такой ошибке сидел тупил пока не дошло - винда просто пока не знает такой класс обьектов.
10 Вадя
 
08.09.11
06:58
Что доустановить-то надо ???? Из платформы 8.2 установлены толстый и тонкий клиенты, сервер приложений не установлен.
Заходишь на любимый сервак пользователем USR1CV81, открываешь базешку на 8.1, запускаешь из обработки процедуру из глобального модуля
Процедура Кнопка1ВыполнитьНажатие(Кнопка)
   Сообщить("Старт");
   МК_МодульРегламентныхЗаданий.МК_ИмпортКонтрагентов();
   Сообщить("ОК");
КонецПроцедуры
Отрабатывает отлично !!!

Пытаюсь запустить эту же процедуру из регламентного задания - ошибка.
Как объяснить фоновому заданию про класс объектов ???
11 Delphin
 
08.09.11
07:15
На сервере (на котором крутится сервер приложения 8.1) есть ветка реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\V82.COMConnector\ ?
если есть тогда проблема описана в посте 2
если нет то этот компанент нужно доустановить.
12 Вадя
 
08.09.11
07:21
(11) Ветка есть, рядом лежат
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\V81.COMConnector\
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\V77.Application\
Про клиент-серверный вариант затуплю - вызов процедуры из регламентного задания оставить в серверном модуле а подключение к базе 8.2 по ComConnector перенести в клиентский ???
13 Вадя
 
08.09.11
07:25
Может, вместо ComConnector попробовать Application ???
Медленно, но верно ???
14 strange2007
 
08.09.11
07:27
(13) Ровно в 10 раз медленнее у меня на 8.1 было. Памяти больше отъедает, за то больше функционала доступно
15 Delphin
 
08.09.11
07:30
Я щас конечно банальную глупость сморожу, но:
регламентное задание выполняется полностью на стороне сервера.
ни одного клиентского модуля в связке выполнения быть не должно.
Меня-таки другое смущает ))
ошибка привыполнении
V8_Соединитель = Новый COMОбъект("v82.COMConnector");
"Ошибка при вызове конструктора(COMОбъект) Недопустимая строка с указанием класса"
возникает только в одном случае: винда не знает что такое
v82.COMConnector.
вот тут ХЗ копать видимо надо в этом направлении.
16 Вадя
 
08.09.11
13:34
Нашел на форуме
(6) Выполни
Regsvr32
для файла:
C:\Program Files\1cv81\bin\comcntr.dll

Зарегил библиотечку от 8.2, пару часов работает.
Хотя странно это, платформу 8.2 ставил позже, чем 8.1
17 Вадя
 
08.09.11
14:08
Недолгим было счастье. По началу часа опять завалилось.
ОбщийМодуль.МК_МодульРегламентныхЗаданий(356)
V8_Соединитель = Новый COMОбъект("v82.COMConnector");
Ошибка при вызове конструктора COMОбъект. Недопустимая строка с указанием класса.
Закон Брукера: Даже маленькая практика стоит большой теории.