Код выполняется на сервере:
ОЛЕ77 = Новый COMObject("V77.Application");
Выдает ошибку: Недопустимая строка с указанием класса.
При этом на клиенте на том же сервере выполняется нормально, и файловая база на том же сервере также выполняется нормально (как на клиенте, так и на сервере)
Сразу скажу уже много искал, пробовал зарегистрировать компоненту через службу компонентов, вот только для 7.7 он регистрируется как то не так как в 8.2. И итоге получилось только зарегистрировать таким образом comcntr.dll и подключаться к 8.2, а как к 7.7 не пойму. Помогите плз, кто знает как можно сделать чтобы заработало именно для 64 битного сервера 1с.
(1) Tpakmop,
пуск-администрирование-службы компонентов в дком найти V77 - свойства - безопасность
посмотреть права для пользователя под которым запускается регламентные задания на сервере... обычно что-то типа USER1CV8SERVER
На самом деле если используется скльная 7.7, то нужно использовать v77s, как то так:
База7 = Новый COMОбъект("v77s.Application");
РезультатПодключения=База7.Initialize(База7.RMTrade,"","NO_SPLASH_SHOW");
Если СтрДлина(СокрЛП(База7.Метаданные.Идентификатор)) > 0 Тогда
открыта7 = Истина;
Обращая внимание на то что сервер х64, и компоненты 32 не работают. "v82.Application" также не работала, но ее можно добавить через службу компонентов файл comcntr.dll, тогда к 8.2 цепляется с сервера только строку надо писать "v82.ComConnecter". Проблема в том что 7.7 нет такого файла, он как то по другому ее регистрирует.
А зачем через "v82.ComConnecter" делайте в 7 "v82.Application" и V8 = Новый COMОбъект("V82.Application");
Сервер 1С 64 не подключался через "V82.Application", сделал через службу компонентов там именно "v82.ComConnecter" регистрируется. Ну это не важно так как вопрос в 7.7 стоит.
На сервере должна быть установлена 1с версии 7.7, поскольку искать будет именно на сервере, если 1с установлена не будет, то и подключения не будет. 1с версии 7.7 на 64 битной виндой не установится (у меня не получилось), можно победить пернеся каталог программы с установленной 32. Однако не факт, что потом сконнектится сможет. В винде по ней записей не будет... Хотя можно попробовать.
Все не просто, а очень просто!
7.7 никогда не была com объектом! Это OLE объект - это важно помнить всегда!
Вывод:
Может работать тогда и только тогда когда существует(!) "РАБОЧИЙ СТОЛ" т.е. любые сеансы без рабочего стола не запустят OLE 7.7
Выход только один:
Для службы "Агент сервера 1С:Предприятия 8.2 (x86-64)" (ведь под кем то же сервер запускается :))
В диспетчере служб установить запуск от "Системной учетной записи" И "Разрешить взаимодействие с рабочим столом"
(картинка прилагается, только в качестве примера другая служба)
Сделать для службы сервера 1С так называемый zero-доступ.
Да безопасность на нуле, но это единственный выход запускать сервером OLE 1С 7.7
P.S. Ну и понятное дело, что на сервере должна быть установлена 1С 7.7 (что бы было что вызывать :))
ну что? удалось запустить 7.7 application на сервере?
Да, спасибо! Дома у себя на win7 64 получилось, запустилось именно так как вы написали.
На работе стоит win server 2012. При запуске 7.7 должен прописать в реестре чтобы к нему можно было подключиться, но что-то не прописывает, хотя в win7 после запуска от имени администратора сразу прописал.
P.S. не знал что здесь вознаграждение уменьшается :) так что добавлю еще 5 и отдам bzmax
(17) Tpakmop, Вот насчет сервера 2012 ничего сказать не могу, т.к. еще не пробовал эту операционку.
Там скорее всего хитрости в реестре или в настройках dcom.