Имя: Пароль:
1C
1C 7.7
v7: Удаленное COM соединение в 1С 7.7
0 Denton_ww
 
03.07.13
07:07
Доброе время суток !!!
М.б. кто сталкивался, есть задача по подключению к БД на 1С 7.7 удаленных серверов по COM. Задача успешно решается в 1С 8.x, т.к. можно указать ИмяСервера, где создается COM объект.

v7 = Новый COMОбъект("V1CEnterprise.Application", <ИмяСервера>)

Подскажите пожалуйста аналог в 1С 7.7
1 skunk
 
03.07.13
07:12
создатьобъект
2 Denton_ww
 
03.07.13
07:17
В СоздатьОбъект нет возможности указать Компьютер на котором будет он создаваться
3 skunk
 
03.07.13
07:18
(2)тебе надо там ... на сервере 1с запускать ... дком клюшка не поддерживает
4 Trotter
 
03.07.13
07:19
КаталогБазыОЛе  = "C:\program files\1cv77\МояБаза\";
ПользовательОле = "Администратор";
ПарольОле       = "qwerty";
МонопольныйРежимOLE = " /m"; // для немонопольного запуска указать пустую строку!
ЗапускБезЗаставки = 1;       // для появления заставки (например, чтобы наблюдать
                            // процесс запуска базы OLE визуально) поставьте здесь "0"
РезультатПодключения = БазаОле.Initialize ( БазаОле.RMTrade , "/d" +
                      СокрЛП(КаталогБазыОле) + " /n" + СокрЛП(ПользовательОле)+
                      " /p" + СокрЛП(ПарольОле) + МонопольныйРежимOLE,
                      ?(ЗапускБезЗаставки = 1,"NO_SPLASH_SHOW",""));
Если РезультатПодключения = 0 Тогда
    Предупреждение("Не удалось подключится к указанной базе - проверьте вводные!");
КонецЕсли;

просто путь к базе не устраивает ?
5 Denton_ww
 
03.07.13
07:23
Привожу пример, 1С 7.7 установлена на сервере 192.168.1.2 надо по COM соединится с сервером 172.16.1.2. При этом каталог базы не доступен т.к. слишком узкий канал связи. Поэтому самое оптимально соединится по COM.
6 Denton_ww
 
03.07.13
07:25
Вот пример на 1С 8.2 Работающий

Попытка
       v7 = Новый COMОбъект("V1CEnterprise.Application", "172.16.1.2");
   Исключение
       Сообщить(ОписаниеОшибки());
       Возврат;
   КонецПопытки;
   
   Попытка
       Открыта = v7.Initialize(v7.RMTrade, "/D""" + База+ """ /nUserOLE /pPassword", "NO_SPLASH_SHOW");
   Исключение
       Сообщить(ОписаниеОшибки());
       Возврат;
   КонецПопытки;
   
   Если Не Открыта Тогда
       Сообщить(ОписаниеОшибки());
       Возврат;
   КонецЕсли;
   
   Сообщить("База 1С 77 открыта");
7 ЧеловекДуши
 
03.07.13
07:49
(6) И что? Работает, заначит проблема только в одном месте :)
8 Denton_ww
 
03.07.13
07:54
Да работает только к сожалению я не могу так же сделать в 1С 7.7
v7 = СоздатьОбъект("V1CEnterprise.Application", "172.16.1.2");
9 Denton_ww
 
03.07.13
08:37
http://delphi.scps.ru/com/com5107.htm
CreateRemoteComObject
интересно можно ли как то этим воспользоваться ? в 1С 7.7
10 ДенисЧ
 
03.07.13
08:48
тебе уже сказали, что 77 не умеет DCOM. Что тебе ещё объяснить?
11 Denton_ww
 
03.07.13
15:58
Задача решена. Пришлось написать компоненту DLL которая подключается по указанному IP с определенной строкой подключения.

Код 1С выглядит примерно так:
Компонента = СоздатьОбъект("AddIn.Main");
   
База1С = Компонента.CreateRemoteOleObject("172.16.1.2", "/DD:\База\ /nUserOLE /p123456");