Имя: Пароль:
1C
1С v8
Помогите решить проблему с настройкой веб камеры
0 alexart34
 
31.08.16
00:23
Есть конфигурация spa-салон
При загрузке вылезает ошибка не установлена веб камера.
Установлен windows 10
Код обработки:
Процедура ВыполнитьРегистрациюВнешнихКомпонент() Экспорт
    
    #Если НЕ ВебКлиент Тогда        
        Попытка
            WSHShell = Новый COMОбъект("WScript.Shell");
            Путь = "" + WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\InstallRoot");
            НаличиеFrameWork = Новый Файл(Путь +"\v2.0.50727\");
            ФайлБиблеотекиВебКамеры = Новый Файл(Путь +"\v2.0.50727\HelixExt.dll");
            ФайлБиблиотеки1         = Новый Файл(Путь +"\v2.0.50727\AForge.Video.DirectShow.dll" );
            ФайлБиблиотеки2         = Новый Файл(Путь +"\v2.0.50727\AForge.Video.dll" );
            ФайлБиблиотеки3         = Новый Файл(Путь +"\v2.0.50727\DirectShowLib-2005.dll" );            
            Если НаличиеFrameWork.Существует() и (не ФайлБиблеотекиВебКамеры.Существует() или Не ФайлБиблиотеки1.Существует()  или Не ФайлБиблиотеки2.Существует()  или Не ФайлБиблиотеки3.Существует())Тогда
                Макет = ОбщегоНазначения.ПолучитьОбщийМакетActiveX("WebCamExt");
                ВременныйКаталог = КаталогВременныхФайлов();
                ФайлМакета = Новый ЧтениеZipФайла();                
                Макет.Записать(ВременныйКаталог+"Model.zip");
                ФайлМакета.Открыть(ВременныйКаталог + "Model.zip");
                WSHShell = Новый COMОбъект("WScript.Shell");                    
                ФайлМакета.ИзвлечьВсе(Путь +"\netfx_451mtpack\");
                ЗапуститьПриложение(Путь +"v2.0.50727\regasm  HelixExt.dll /codebase /tlb");     
            КонецЕсли;            
        Исключение
            Сообщить("Камера не установлена: "+ОписаниеОшибки());
        КонецПопытки;
    #КонецЕсли
    
    #Если НЕ ВебКлиент Тогда
        Попытка
            WSHShell = Новый COMОбъект("WScript.Shell");
            Путь = "" + WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\InstallRoot");
            НаличиеFrameWork = Новый Файл(Путь +"\v2.0.50727\");
            ФайлБиблеотекиСервиса = Новый Файл(Путь +"\v2.0.50727\HelixControl.dll");
            Макет = ОбщегоНазначения.ПолучитьОбщийМакетActiveX("HelixControl");
            Если НаличиеFrameWork.Существует() И (Не ФайлБиблеотекиСервиса.Существует() ИЛИ ФайлБиблеотекиСервиса.Размер() <> Макет.Размер()) Тогда
                ВременныйКаталог = КаталогВременныхФайлов();
                Макет.Записать(Путь +"\netfx_451mtpack\HelixControl.dll");
                WSHShell = Новый COMОбъект("WScript.Shell");
                ЗапуститьПриложение(Путь +"v2.0.50727\regasm  HelixControl.dll /codebase /tlb");
            КонецЕсли;
        Исключение
        КонецПопытки;
    #КонецЕсли
    
    
    #Если НЕ ВебКлиент Тогда
        Попытка
            Если НайтиФайлы(КаталогВременныхФайлов(), "TeamViewerQS_ru.exe").Количество() = 0 Тогда        
                // сохраняем во временный каталог файл TeamViewer
                МакетTeamViewer    = ОбщегоНазначения.ПолучитьОбщийМакетActiveX("TeamViewer");       
                ИмяФайлаTeamViewer = КаталогВременныхФайлов() + "TeamViewerQS_ru.exe";
                Попытка
                    МакетTeamViewer.Записать(ИмяФайлаTeamViewer);
                Исключение
                    Сообщить(ОписаниеОшибки());
                КонецПопытки;
            КонецЕсли;          
        Исключение
            Сообщить(ОписаниеОшибки());               
        КонецПопытки;           
    #КонецЕсли        

    Если ОбщегоНазначения.ПереустановитьСофтфон() Тогда        
        Попытка
            WSHShell = Новый COMОбъект("WScript.Shell");
            Путь = "" + WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\InstallRoot");
            НаличиеFrameWork = Новый Файл(Путь +"\v2.0.50727\");                
            Если НаличиеFrameWork.Существует()Тогда
                Макет = ОбщегоНазначения.ВернутьМакетСофтФон("SoftPhone");
                ВременныйКаталог = КаталогВременныхФайлов();
                ФайлМакета = Новый ЧтениеZipФайла();                
                Макет.Записать(ВременныйКаталог+"Model.zip");
                ФайлМакета.Открыть(ВременныйКаталог + "Model.zip");
                WSHShell = Новый COMОбъект("WScript.Shell");
                ФайлМакета.ИзвлечьВсе(Путь +"v2.0.50727\");
                
                ФайлБиблеотекиСервиса = Новый Файл(Путь +"\v2.0.50727\VoIPSDK.dll");
                Если Не ФайлБиблеотекиСервиса.Существует() Тогда
                    Макет = ОбщегоНазначения.ВернутьМакетСофтФон("VoipSDK");
                    ВременныйКаталог = КаталогВременныхФайлов();
                    ФайлМакета = Новый ЧтениеZipФайла();                
                    Макет.Записать(ВременныйКаталог+"Model.zip");
                    ФайлМакета.Открыть(ВременныйКаталог + "Model.zip");                    
                    ФайлМакета.ИзвлечьВсе(Путь +"v2.0.50727\");                            
                КонецЕсли;                    
                ЗапуститьПриложение(Путь +"v2.0.50727\regasm  HelixSoftPhone.dll /codebase /tlb",,Истина);                                        
                Попытка
                    СофтФон = Новый COMОбъект("HelixSoftPhone");
                    Предупреждение("Внешняя компонента переустановлена! Программа будет перезапущена.");
                    ПрекратитьРаботуСистемы(Истина);
                Исключение
                    Предупреждение("Внешняя компонента не переустановлена! Для корректной установки ВК, 1С:Предприятие 8 должно быть запущено с правами администратора!");
                КонецПопытки;                
            КонецЕсли;                                        
        Исключение
            Предупреждение("Внешняя компонента не переустановлена: "+ОписаниеОшибки()+Символы.ПС+" Произведите запуск от имени администратора!");
        КонецПопытки;            
    КонецЕсли;    
    
    Попытка
        WSHShell = Новый COMОбъект("WScript.Shell");    
        ИнфоБиблиотеки = WshShell.RegRead("HKEY_CLASSES_ROOT\CLSID\{D75F5DE0-4ED1-4E86-BE9A-3959BF0FC5CD}\InprocServer32\Assembly");
        БиблиотекаУстановлена = Истина;
    Исключение
        БиблиотекаУстановлена = Ложь;
    КонецПопытки;
    Если БиблиотекаУстановлена Тогда
        ПодключитьВнешнююКомпоненту("HelixSoftPhone");
    КонецЕсли;    
    

КонецПроцедуры
1 Garykom
 
гуру
31.08.16
00:41
Позовите специалиста, чтобы разгреб за другим который вебкамеру подключал
2 Горогуля
 
31.08.16
02:46
помогаю, всё очень просто:
1. находишь причину проблемы
2. исправляешь причину проблемы

в чём причина?