Имя: Пароль:
1C
 
Ошибка OLE в Windows 7
0 Falex
 
17.11.10
11:08
Когда запускаешь обработку, использующую OLE, получился облом. Ошибка - невозможно создать ( V7 = СоздатьОбъект("V77Aplication") ).
ОС Windows 7.
Как быть?
1 smaharbA
 
17.11.10
11:10
запустить под администратором системы единожды
2 smaharbA
 
17.11.10
11:10
+ либо зарегистрировать под пользователем 9есть метод)
3 Falex
 
17.11.10
11:24
что за метод?
4 smaharbA
 
17.11.10
11:31
(3) прописать в пользовательский реестр при старте адинес
5 Falex
 
17.11.10
11:32
а поподробнее пожалуйста.
6 smaharbA
 
17.11.10
11:36
где то так

//*******************************************
Функция Регистрировать(Знач Программа="",Сообщ=0)
   Если ПустоеЗначение(Программа)=1 Тогда
       Попытка
           Шел=СоздатьОбъект("Shell.Explorer");
           Программа=Шел.fullname();
       Исключение
           Стр=КаталогПрограммы()+"1cv7s.exe
           |"+КаталогПрограммы()+"1cv7.exe";
           Для к=1 По СтрКоличествоСтрок(Стр) Цикл
               Если ФС.СуществуетФайл(СтрПолучитьСтроку(Стр,к))=1 Тогда
                   Программа=СтрПолучитьСтроку(Стр,к);
                   к=0;
                   Прервать;
               КонецЕсли;
           КонецЦикла;
           Если к>0 Тогда
               Сообщить("Не найдена "+Программа,"!");
               Возврат 0;
           КонецЕсли;
       КонецПопытки;
   ИначеЕсли ФС.СуществуетФайл(Программа)=0 Тогда
       Сообщить("Не найдена "+Программа,"!");
       Возврат 0;
   КонецЕсли;
   Программа=СтрЗаменить(Программа,"\","\\");
   КаталогПрограммыСтр=СтрЗаменить(КаталогПрограммы(),"\","\\");
   
   
   Стр="REGEDIT4
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{BF417C70-9A34-11D2-9F3D-008048DA120F}]
   |@=""V1CEnterprise.Application""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{BF417C70-9A34-11D2-9F3D-008048DA120F}\InprocHandler32]
   |@=""ole32.dll""
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{BF417C70-9A34-11D2-9F3D-008048DA120F}\LocalServer32]
   |
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{BF417C70-9A34-11D2-9F3D-008048DA120F}\ProgID]
   |@=""V1CEnterprise.Application""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E6148B91-6562-11D1-83FD-00C0DF4A7431}]
   |@=""V77.AccountOperPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E6148B91-6562-11D1-83FD-00C0DF4A7431}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E6148B91-6562-11D1-83FD-00C0DF4A7431}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E6148B91-6562-11D1-83FD-00C0DF4A7431}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E6148B91-6562-11D1-83FD-00C0DF4A7431}\ProgID]
   |@=""V77.AccountOperPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E443E3D1-F46D-11D0-A46B-004095E1DAEA}]
   |@=""V77.AccountPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E443E3D1-F46D-11D0-A46B-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E443E3D1-F46D-11D0-A46B-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E443E3D1-F46D-11D0-A46B-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{E443E3D1-F46D-11D0-A46B-004095E1DAEA}\ProgID]
   |@=""V77.AccountPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CE245201-0F42-11D1-BE02-00A024BE803F}]
   |@=""V77.AccountRangePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CE245201-0F42-11D1-BE02-00A024BE803F}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CE245201-0F42-11D1-BE02-00A024BE803F}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CE245201-0F42-11D1-BE02-00A024BE803F}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CE245201-0F42-11D1-BE02-00A024BE803F}\ProgID]
   |@=""V77.AccountRangePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{668FDEB1-8231-11D2-8E5E-004095E1DAEA}]
   |@=""V77.AdminPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{668FDEB1-8231-11D2-8E5E-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{668FDEB1-8231-11D2-8E5E-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{668FDEB1-8231-11D2-8E5E-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{668FDEB1-8231-11D2-8E5E-004095E1DAEA}\ProgID]
   |@=""V77.AdminPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{63112D80-94F0-11D2-9F39-008048DA120F}]
   |@=""V77.Application""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{63112D80-94F0-11D2-9F39-008048DA120F}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{63112D80-94F0-11D2-9F39-008048DA120F}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{63112D80-94F0-11D2-9F39-008048DA120F}\ProgID]
   |@=""V77.Application""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{8DD74E81-E8A6-11D0-A448-004095E1DAEA}]
   |@=""V77.BasicPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{8DD74E81-E8A6-11D0-A448-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{8DD74E81-E8A6-11D0-A448-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{8DD74E81-E8A6-11D0-A448-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{8DD74E81-E8A6-11D0-A448-004095E1DAEA}\ProgID]
   |@=""V77.BasicPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD71-D8CE-11D0-910A-004095E1DAEA}]
   |@=""V77.GeneralPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD71-D8CE-11D0-910A-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD71-D8CE-11D0-910A-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD71-D8CE-11D0-910A-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD71-D8CE-11D0-910A-004095E1DAEA}\ProgID]
   |@=""V77.GeneralPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD73-D8CE-11D0-910A-004095E1DAEA}]
   |@=""V77.InterfacePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD73-D8CE-11D0-910A-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD73-D8CE-11D0-910A-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD73-D8CE-11D0-910A-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD73-D8CE-11D0-910A-004095E1DAEA}\ProgID]
   |@=""V77.InterfacePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{EB2AA791-D8CD-11D0-910A-004095E1DAEA}]
   |@=""V77.ModulePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{EB2AA791-D8CD-11D0-910A-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{EB2AA791-D8CD-11D0-910A-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{EB2AA791-D8CD-11D0-910A-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{EB2AA791-D8CD-11D0-910A-004095E1DAEA}\ProgID]
   |@=""V77.ModulePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{3980C501-E7CC-11D0-A445-004095E1DAEA}]
   |@=""V77.SalaryPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{3980C501-E7CC-11D0-A445-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{3980C501-E7CC-11D0-A445-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{3980C501-E7CC-11D0-A445-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{3980C501-E7CC-11D0-A445-004095E1DAEA}\ProgID]
   |@=""V77.SalaryPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CEB94321-8317-11D2-8A55-008048DA06DF}]
   |@=""V77.SrcTemplatePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CEB94321-8317-11D2-8A55-008048DA06DF}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CEB94321-8317-11D2-8A55-008048DA06DF}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CEB94321-8317-11D2-8A55-008048DA06DF}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{CEB94321-8317-11D2-8A55-008048DA06DF}\ProgID]
   |@=""V77.SrcTemplatePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD72-D8CE-11D0-910A-004095E1DAEA}]
   |@=""V77.TextPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD72-D8CE-11D0-910A-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD72-D8CE-11D0-910A-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD72-D8CE-11D0-910A-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{000BDD72-D8CE-11D0-910A-004095E1DAEA}\ProgID]
   |@=""V77.TextPropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{43DF7A11-E7B8-11D0-A445-004095E1DAEA}]
   |@=""V77.TradePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{43DF7A11-E7B8-11D0-A445-004095E1DAEA}\HelpDir]
   |@="""+КаталогПрограммыСтр+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{43DF7A11-E7B8-11D0-A445-004095E1DAEA}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{43DF7A11-E7B8-11D0-A445-004095E1DAEA}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{43DF7A11-E7B8-11D0-A445-004095E1DAEA}\ProgID]
   |@=""V77.TradePropPage""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{63112D82-94F0-11D2-9F39-008048DA120F}]
   |@=""V77S.Application""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{63112D82-94F0-11D2-9F39-008048DA120F}\InprocHandler32]
   |@=""ole32.dll""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{63112D82-94F0-11D2-9F39-008048DA120F}\LocalServer32]
   |@="""+Программа+"""
   |
   |[HKEY_CURRENT_USER\Software\Classes\CLSID\{63112D82-94F0-11D2-9F39-008048DA120F}\ProgID]
   |@=""V77S.Application""
   |";
   ФайлРег=КаталогВременныхФайлов()+"v7.application+.reg";
   Текст=СоздатьОбъект("Текст");
   Текст.ДобавитьСтроку(Стр);
   Текст.Записать(ФайлРег);
   Возв=0;
   Попытка
       Шел=СоздатьОбъект("WScript.Shell");
       СпКлючей=СоздатьОбъект("СписокЗначений");
       Ветка="";
       Для к=1 По Текст.КоличествоСтрок() Цикл
           Стр=Текст.ПолучитьСтроку(к);
           Стр=СтрЗаменить(Стр,"\\","\");
           Если Найти(Стр,"HKEY_CURRENT_USER")>0 Тогда
               Ветка=Стр+"\";
               Ветка=СтрЗаменить(Ветка,"[","");
               Ветка=СтрЗаменить(Ветка,"]","");
           ИначеЕсли (Найти(Стр,"=")>0) и (Найти(Ветка,"HKEY_CURRENT_USER")>0) Тогда
               Стр=СтрЗаменить(Стр,"=","" "");
               Стр=СтрЗаменить(Стр,"@","");
               Стр=СтрЗаменить(Стр,"""","");
               СпКлючей.ДобавитьЗначение(СтрПолучитьСтроку(Стр,2),СтрЗаменить(Ветка,"HKEY_CURRENT_USER","HKCU")+СтрПолучитьСтроку(Стр,1));
           КонецЕсли;
       КонецЦикла;
       Для к=1 По СпКлючей.РазмерСписка() Цикл
           Ключ="";
           Значение=СпКлючей.ПолучитьЗначение(к,Ключ);
           Шел.RegWrite(Ключ,Значение);
       КонецЦикла;
       Возв=1;
   Исключение
   КонецПопытки;
   Если Возв=0 Тогда
       Попытка
           Шел.Run("cmd /c start """" /wait regedit /s """+ФайлРег+"""",0,-1);
       Исключение
           КомандаСистемы("cmd /c start """" /min /wait regedit /s """+ФайлРег+"""");
       КонецПопытки;
   КонецЕсли;
   Попытка
       БазаОЛЕ=СоздатьОбъект("v77.application");
       БазаОЛЕ="";
       Если Сообщ=1 Тогда
           Сообщить("Удачно зарегистрирован объект v77.application: "+СтрЗаменить(Программа,"\\","\"),"i");
           Сообщить("Файл регистрации: "+ФайлРег,"i");
       КонецЕсли;
       Возв=1;
   Исключение
       Сообщить(ОписаниеОшибки());
       Возв=0;
   КонецПопытки;
   Возврат Возв;
КонецФункции
Независимо от того, куда вы едете — это в гору и против ветра!