Проблема с использованием Ole

  • Автор темы ˸
  • Дата начала
˸

˸

Гость
#1
Помогите, пожалуйста!
Существует обработка по доступу из одной БД к другой БД посредством OLE. По всей логике и правилам база, запускаемая OLE, должна запуститься не явно. Но у меня висит открытым окно, более того, пока работает запрос, я могу и чего-нибудь в этой открытой базе сделать (н/р новый элемент справочника ввести), после завершения обработки окно с другой базой закрывается.
Может ли это происходить потому, что на компьютере стоит 2-е версии 1С.
Как узнать какая версия 1С запускается при обращении к OLE?
 
˸

˸

Гость
#4
База семерка
Код:
BaseOLE=createObject("V1СEnterprise.Application");
ExclMode="";
resultOLE=BaseOLE.Initialize(BaseOLE.RMTrade,"/d"+basecatalog+"/n"+userOLE+"/p"+passwordOLE+ExclMode,"NO_SPLASH_SHOW");
If resultOLE=1 then
Inq_rests();
BaseOLE=0;
EndIf;
 
H

Hryv

Гость
#5
у меня есть рабочий пример, сравнил, нашел такое различие

v7=СоздатьОбъект("V77S.Application");

Честно говоря не знаю в чем разница между
"V1СEnterprise.Application"
и
"V77S.Application"

предлагаю проверить опытным путем
 

Дайнеко

Well-Known Member
19.11.2009
951
0
53
Минск
#7
Вот у меня подключаемая база не показывается:
Код:
	v7 = CreateObject("v77.Application");
Если (v7.Initialize(v7.RMTrade,"/D"+ ИмяКаталога, ) <> 0) Тогда	// "NO_SPLASH_SHOW"
NO_SPLASH_SHOW наверное прячет и заставку.

Как узнать какая версия 1С запускается при обращении к OLE? - Думаю та, которая записана последней. Она прописывает себя в Реестре Win как сервер данного OLE-типа. Это если они одного варианта. А вот если 1) SQL 2) файловая. Я не знал, но если верить Hryv у них разные способы вызова (в моем примере файловый вариант).