Создание внешних компонент 1С NativeAPI на C++. Часть 3

Реализуем метод DestroyObject, добавим код в Component.cpp

long DestroyObject(IComponentBase** pIntf)
{
   if(!*pIntf)
      return -1;

   delete *pIntf;
   *pIntf = 0;   
   return 0;
}

Создадим новый файл, в котором опишем экспортные процедуры

Содержимое файла:

LIBRARY "Component.dll"

EXPORTS
GetClassObject
DestroyObject
GetClassNames

Рядом с собранной dll создаем файл MANIFEST.XML, в котором напишем описание нашей компоненты для 1С. Содержимое файла:

<?xml version="1.0" encoding="UTF-8"?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle">
  <component os="Windows" path="Component.dll" type="native" arch="x86_64"/>
</bundle>

Попробуем подключить компоненту. Для этого в 1С в дереве метаданных создаем Общий макет, тип макета — Двоичные данные:

Откроется окно загрузки данных, загружаем наш собранный файл ZIP

Для проверки работоспособности создадим обработку, на форме добавим кнопку и пропишем код подключения и обращения к компоненте:

&НаКлиенте
Процедура Проверить(Команда)
	
	ОписаниеОповещения = Новый ОписаниеОповещения("ПодключитьКомпоненту", ЭтаФорма);
	НачатьУстановкуВнешнейКомпоненты(ОписаниеОповещения, "ОбщийМакет.Макет"); 
	
КонецПроцедуры

&НаКлиенте
Процедура ПодключитьКомпоненту(ДополнительныеПараметры) Экспорт

	ОписаниеОповещения = Новый ОписаниеОповещения("КомпонентаПодключена", ЭтаФорма);
	НачатьПодключениеВнешнейКомпоненты(ОписаниеОповещения, "ОбщийМакет.Макет", "МойМакетAddIn", ТипВнешнейКомпоненты.Native);

КонецПроцедуры

&НаКлиенте
Процедура КомпонентаПодключена(Результат, ДополнительныеПараметры) Экспорт

	МояКомпонента = Новый("AddIn.МойМакетAddIn.AddInNativeExtension");

КонецПроцедуры

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *