Skip to content

При подключении внешней компоненты из макета возникает ошибка #26

@metal-doctor

Description

@metal-doctor
  1. При подключении внешней компоненты из макета возникает ошибка
Ошибка при вызове конструктора (Addin.SampleAddIn.SampleAddIn)
{ВнешняяОбработка.ТестВнешняяКомпонента.Форма.Форма.Форма(49)}:ОбъектВК = Новый("Addin.SampleAddIn.SampleAddIn");
{ВнешняяОбработка.ТестВнешняяКомпонента.Форма.Форма.Форма(39)}:КомандаТестНаСервереНаСервере();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]

Тестирование выполняется в файловом варианте 1С:Предприятие 8.3.27.1606 на конфигурации ERP2 2.5.22, разрядность - x64.
Используется пример и сам крейт из репозитория
native_api_1c = { git = "https://github.com/Sebekerga/native_api_1c" }

  1. Еще при подключении внешней компоненты из файла: объект внешней компоненты создается, тестовые функция и процедура вызываются, но возникает ошибка при уничтожении объекта.
    ОбъектВК = Неопределено;

Код внешней обработки с ошибкой конструктора.

&НаКлиенте
Процедура КомандаТестНаСервере(Команда)
	КомандаТестНаСервереНаСервере();
КонецПроцедуры

&НаСервере
Процедура КомандаТестНаСервереНаСервере()

	АдресВнешнейКомпоненты = АдресВнешнейКомпоненты();
	Подключено = ПодключитьВнешнююКомпоненту(АдресВнешнейКомпоненты, "SampleAddIn");
	Если Подключено Тогда
        // Внешняя компонента подключена
		ОбъектВК = Новый("Addin.SampleAddIn.SampleAddIn"); 
	Попытка
		БайтыВК = ОбъектВК.МояФункция(9);
	Исключение
		ИнформацияОбОшибке = ИнформацияОбОшибке();
		ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
	КонецПопытки;

	Попытка
		ОбъектВК.МояПроцедура();
	Исключение
		ИнформацияОбОшибке = ИнформацияОбОшибке();
		ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
	КонецПопытки;
	КонецЕсли;

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

&НаСервере
Функция АдресВнешнейКомпоненты()
	
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	МакетВнешнейКомпоненты = ОбработкаОбъект.ПолучитьМакет("SampleAddInExt");
	АдресВнешнейКомпоненты = ПоместитьВоВременноеХранилище(МакетВнешнейКомпоненты, УникальныйИдентификатор);
	Возврат АдресВнешнейКомпоненты
	
КонецФункции

Код внешней обработки при подключении внешней компоненты из файла.

&НаКлиенте
Асинх Процедура КомандаТестНаКлиентеПоПути(Команда)
	
	ПутьВК = "c:\Users\metal_doctor\my_addin\target\x86_64-pc-windows-msvc\release\my_addin.dll";
	
	Если Не Ждать ПодключитьВнешнююКомпонентуАсинх(ПутьВК, "SampleAddIn", ТипВнешнейКомпоненты.Native) Тогда
		ИнформацияОбОшибке = ИнформацияОбОшибке();
		ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
		ВызватьИсключение("Ошибка подключение внешней компоненты");
		Возврат;
	КонецЕсли;  

	ОбъектВК = Новый("Addin.SampleAddIn.SampleAddIn"); 
	Попытка
		БайтыВК = Ждать ОбъектВК.МояФункцияАсинх(9);
	Исключение
		ИнформацияОбОшибке = ИнформацияОбОшибке();
		ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
	КонецПопытки;

	Попытка
		Ждать ОбъектВК.МояПроцедураАсинх();
	Исключение
		ИнформацияОбОшибке = ИнформацияОбОшибке();
		ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
	КонецПопытки;
	
	ОбъектВК = Неопределено;
	
КонецПроцедуры

Прилагаю файлы (расширение файлов изменено на txt для возможности приложить их сюда):
Cargo.toml
Makefile.toml
Manifest.xml
src/lib.rs

Cargo.txt
Makefile.txt
Manifest.xml
lib.txt

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions