Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема 1С 8.2 зависает при подключении dll с опцией /CLR (число прочтений - 3258 )
Elisy
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 1
Зарегистрирован: 14. Декабря 2010
1С 8.2 зависает при подключении dll с опцией /CLR
14. Декабря 2010 :: 06:09
Печать  
Добрый день,
столкнулся с проблемой зависания CLR-библиотеки при подключении ее из 1С 8.2.
Многие слышали о выходе новой версии 1С:Предприятие 8.2 и знают о планах отказаться от поддержки 8.1 в первом квартале 2011 года.

В версии 8.2 1С анонсировала новый способ написания внешних компонент 1С с использованием так называемого Native API. Самое интересное, что на C# предложенный подход реализовать невозможно, а реализация Native API на VC++/CLI теоретически возможна, но при попытке подключения DLL, скомпилированных с опцией /CLR, происходит зависание 1С (версия 8.2.13.202).

Простейший способ воспроизвести проблему зависания: включить опцию /CLR на проект-пример от 1С про таймер NativeAPI. Зазиповать DLL вместе с файлом MANIFEST.xml в макет кофигурации 1С 8.2 и выполнить следующий код на форме:

&НаКлиенте
Процедура TestNativeApi(Команда)
   УстановитьВнешнююКомпоненту("ОбщийМакет.ElisyNetBridge4");
   Сообщить(ПодключитьВнешнююКомпоненту("ОбщийМакет.ElisyNetBridge4", "ElisyNetBridge", ТипВнешнейКомпоненты.Native));    
   TestNativeApiServer();
КонецПроцедуры

&НаСервере
Процедура TestNativeApiServer()
   Сообщить(ПодключитьВнешнююКомпоненту("ОбщийМакет.ElisyNetBridge4", "ElisyNetBridge", ТипВнешнейКомпоненты.Native));    
КонецПроцедуры

Комментируя код, относящийся к клиенту или серверу, можно понять, что проблема характерна как для клиента, так и для сервера.
Проблема серьезная для многих, так как она блокирует использование Native API ВК, написанных с применением .Net, на 1С.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать