Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема И снова про совместимость 1С++ Formex и turbomd (число прочтений - 3034 )
Aristo
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 19. Января 2009
И снова про совместимость 1С++ Formex и turbomd
19. Января 2009 :: 15:42
Печать  
Люди добрые, есть проблема.
Нужна одновременная работа множества компонент:
1cpp, formex, rom-mail,turbomd,v7plus. К тому же, загружаются они все через vkloader. Никак не могу подружить 1cpp.dll и остальные компоненты. С формексом она совсем отказывается работать (вылетает с системной ошибкой, проверено отладчиком, дальше формекса не заходит) , если убрать формекс, остальные компоненты молча не загружаются, без видимых ошибок.

Код (и порядок) загрузки:

//Функция глЗагрузкаВнешнейКомпоненты(NameDLL,ПрефиксКомпоненты,CLSID) Экспорт
//Загружает внешнюю компоненту одним из 2 способов - методом "ЗагрузитьВнешнююКомпоненту" или с помощью vkloader
//
Функция глЗагрузкаВнешнейКомпоненты(NameDLL,ПрефиксКомпоненты,CLSID) Экспорт
        
    ИспользоватьВК=Пользователь.ИспользоватьВК;
    Если ПустоеЗначение(ИспользоватьВК)=1 Тогда
       ИспользоватьВК=глЗнач("ИспользоватьВК");
    КонецЕсли;
   
    Если Найти(СокрЛП(ИспользоватьВК),ПрефиксКомпоненты)>0 Тогда
       Попытка
           Если ФС.СуществуетФайл(КаталогИБ()+"dll\"+NameDLL)=1 Тогда
               Если глЕстьvkloader=1 Тогда
                   Загрузчик = СоздатьОбъект("ЗагрузчикВК");
                   Результат = Загрузчик.ЗагрузитьВК(КаталогИБ()+"dll\"+NameDLL,CLSID);
                   Если Результат.КодОшибки<>0 Тогда
                       Сообщить("Ошибка загрузки "+NameDLL+". Результат.КодОшибки="+Результат.КодОшибки);
                       Возврат 0;
                   КонецЕсли;
               Иначе   
                   //пытаемся загрузить компоненту в формате штатной ВК
                   Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"dll\"+NameDLL) = 0 Тогда
                       Сообщить("Неудачная попытка загрузить "+NameDLL);
                       Возврат 0;
                   КонецЕсли;
               КонецЕсли;
           Иначе   
                   Возврат 0;
           КонецЕсли;
       Исключение
                   Возврат 0;
       КонецПопытки;
           Возврат 1;
     Иначе
           Возврат 0;
     КонецЕсли;   
КонецФункции //глЗагрузкаВнешнейКомпоненты

Процедура ПриНачалеРаботыСистемы()
...
     глЕстьvkloader      = глЗагрузкаvkloader();                                                                               
     глЕсть1СПлюсПлюс = 5937997b1b7"); 
     глЕстьFormEx      = b4-4385c47732c5");   
     Если глЕсть1СПлюсПлюс=0 Тогда
           глЕстьTurboBL      = 8d5e-9acf313eb700");
     Иначе
           глЕстьTurboBL = 0;
     КонецЕсли;         
     глЕстьV7plus       = глЗагрузкаВнешнейКомпоненты("v7plus.dll","7",
     "Addin.V7Mail=faa6ebe0-1069-11d4-a5ff-008048da0cd2
     |Addin.V7SysInfo=046d5520-2c8f-11d4-a62a-008048da0cd2         
     |Addin.V7HttpReader=1e7bc440-1076-11d4-a635-004095e0ebd2
     |Addin.XMLParser=bb45ed80-1ad7-11d4-a635-004095e0ebd2                                             
     |Addin.V7TextFile=921da8db-1e6f-4d61-8f49-a3127b799b19");
     глЕстьRomMail    = 8a-a35b-67032054b945");
     глЕстьTurboMD       = 9fcd-c4cb45b9fe08");
КонецПроцедуры

Версии компонент:
1cpp.dll 2.5.0.7
formex.dll 2.0.5.92
turbomd.dll 1.0.1.1

Прошу помочь, всю голову сломал Печаль

  
Наверх
 
IP записан
 
Aristo
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 19. Января 2009
Re: И снова про совместимость 1С++ Formex и turbomd
Ответ #1 - 19. Января 2009 :: 15:45
Печать  
пояснение к коду
ЗагрузкаVKLoader - не стал флудить сюда процедуру, она работает нормально
ИспользоватьВК = константа, строка с символами, включение которых говорит о том, что нужно загрузить определенную компоненту.
  
Наверх
 
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: И снова про совместимость 1С++ Formex и turbomd
Ответ #2 - 20. Января 2009 :: 01:44
Печать  
1. 1cpp и формекс не нужна регистрация в реестре -> им вклодер не нужен

2. turbobl выкинь, он интегрирован в 1cpp 2.5.0.7 см. доку

3. Если вк требует регистрацию в реестре тогда используй
   Система=СоздатьОбъект("Система");
   Система.РегистрироватьКомпонентыВ_HKCU();
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: И снова про совместимость 1С++ Formex и turbomd
Ответ #3 - 20. Января 2009 :: 03:44
Печать  
ev-kov писал(а) 20. Января 2009 :: 01:44:
1. 1cpp и формекс не нужна регистрация в реестре -> им вклодер не нужен

2. turbobl выкинь, он интегрирован в 1cpp 2.5.0.7 см. доку

3. Если вк требует регистрацию в реестре тогда используй
  Система=СоздатьОбъект("Система");
  Система.РегистрироватьКомпонентыВ_HKCU();

1. 1С++ все-таки нужна регистрация в реестре Печаль
А ФормЕкс можно загружать и без вклоадера.

2. Автору - ТурбоБЛ входит в 1С++, его не юзай.

3. П.3 не так прост, есть свои проблемы. ИМХО тут проще и надежнее юзать vkloader

Главное:
Автор - юзай последнюю ТурбоМД версии 1.0.0.1 (номеру не удивляйся, это автор так ошибочно последнюю версию обозначил) - поиск по форуму поможет, в разделе 1С++ этого форуме даже есть прикрепленная ветка.

Как раз с твоей версией ТурбоМД и возможны проблемы с загрузкой других ВК.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: И снова про совместимость 1С++ Formex и turbomd
Ответ #4 - 20. Января 2009 :: 04:18
Печать  
artbear писал(а) 20. Января 2009 :: 03:44:
1. 1С++ все-таки нужна регистрация в реестре
А ФормЕкс можно загружать и без вклоадера.

Странно, у нас у многих польз-ё 1с в домене права user'а, даже не power user, 1c++ не ругнулась, а вот другие dll ки уже проявили своё несогласие с правами


artbear писал(а) 20. Января 2009 :: 03:44:
3. П.3 не так прост, есть свои проблемы. ИМХО тут проще и надежнее юзать vkloader
Например какие, были обсуждения ?
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
Aristo
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 19. Января 2009
Re: И снова про совместимость 1С++ Formex и turbomd
Ответ #5 - 20. Января 2009 :: 05:28
Печать  
2. turbobl выкинь, он интегрирован в 1cpp 2.5.0.7 см. доку
а разве у меня не выкинут ? Улыбка
Если глЕсть1СПлюсПлюс=0 Тогда
          глЕстьTurboBL      =
8d5e-9acf313eb700");
     Иначе
          глЕстьTurboBL = 0;
     КонецЕсли;         


Автор - юзай последнюю ТурбоМД версии 1.0.0.1 (номеру не удивляйся, это автор так ошибочно последнюю версию обозначил) - поиск по форуму поможет, в разделе 1С++ этого форуме даже есть прикрепленная ветка.
попробую, спасибо. После проб отпишу (через пару часов Улыбка )

Как раз с твоей версией ТурбоМД и возможны проблемы с загрузкой других ВК.
[/quote]
  
Наверх
 
IP записан
 
Aristo
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 19. Января 2009
Re: И снова про совместимость 1С++ Formex и turbomd
Ответ #6 - 20. Января 2009 :: 09:01
Печать  
Скачал нужную версию турбомд, убрал регистрацию CLSID у formex и все загрузилось !
  
Наверх
 
IP записан
 
Aristo
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 5
Зарегистрирован: 19. Января 2009
Re: И снова про совместимость 1С++ Formex и turbomd
Ответ #7 - 20. Января 2009 :: 09:33
Печать  
Всем советующим большое спасибо, все работает.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать