1
0
mirror of https://github.com/medigor/example-native-api-rs.git synced 2025-06-15 00:15:29 +02:00
This commit is contained in:
medigor
2022-12-07 18:27:07 +03:00
parent 0d60572ee6
commit b55e50ccee
15 changed files with 1591 additions and 1 deletions

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.15">
<DataProcessor uuid="33179d0b-730e-44f5-b20c-1af11f7f1f60">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.Обработка1" category="Object">
<xr:TypeId>aa584d2a-1a1f-4807-b2e6-588aef5193b8</xr:TypeId>
<xr:ValueId>620a7e0f-3713-4585-842f-262d1dfa18c0</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="DataProcessorManager.Обработка1" category="Manager">
<xr:TypeId>e6189229-5433-466b-a435-ac6f2fa36046</xr:TypeId>
<xr:ValueId>8606e276-c11b-4eaa-af7b-424d33285d14</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name>Обработка1</Name>
<Synonym/>
<Comment/>
<UseStandardCommands>true</UseStandardCommands>
<DefaultForm>DataProcessor.Обработка1.Form.Форма</DefaultForm>
<AuxiliaryForm/>
<IncludeHelpInContents>false</IncludeHelpInContents>
<ExtendedPresentation/>
<Explanation/>
</Properties>
<ChildObjects>
<Form>Форма</Form>
</ChildObjects>
</DataProcessor>
</MetaDataObject>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.15">
<Form uuid="24033a67-5ef1-4265-9a88-eb7f279ce1cb">
<Properties>
<Name>Форма</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcssch="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.15">
<AutoSaveDataInSettings>Use</AutoSaveDataInSettings>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<ChildItems>
<InputField name="ИмяФайла" id="19">
<DataPath>ИмяФайла</DataPath>
<ContextMenu name="ИмяФайлаКонтекстноеМеню" id="20"/>
<ExtendedTooltip name="ИмяФайлаРасширеннаяПодсказка" id="21"/>
<Events>
<Event name="StartChoice">ИмяФайлаНачалоВыбора</Event>
</Events>
</InputField>
<Button name="Тест1" id="22">
<Type>UsualButton</Type>
<CommandName>Form.Command.Тест1</CommandName>
<ExtendedTooltip name="Тест1РасширеннаяПодсказка" id="23"/>
</Button>
<Button name="Тест2" id="3">
<Type>UsualButton</Type>
<CommandName>Form.Command.Тест2</CommandName>
<ExtendedTooltip name="Тест2РасширеннаяПодсказка" id="4"/>
</Button>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:DataProcessorObject.Обработка1</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
<Attribute name="ИмяФайла" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Имя файла</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<Save>
<Field>ИмяФайла</Field>
</Save>
</Attribute>
</Attributes>
<Commands>
<Command name="Тест2" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Тест2</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Тест2</v8:content>
</v8:item>
</ToolTip>
<Action>Тест2</Action>
</Command>
<Command name="Тест1" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Тест1</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Тест1</v8:content>
</v8:item>
</ToolTip>
<Action>Тест1</Action>
</Command>
</Commands>
</Form>

View File

@ -0,0 +1,85 @@

&НаКлиенте
Процедура Тест1(Команда)
Тест1НаСервере(ИмяФайла);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура Тест1НаСервере(ИмяФайла)
Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
Если Не ПодключитьВнешнююКомпоненту(ИмяФайла, "Test", ТипВнешнейКомпоненты.Native, ТипПодключенияВнешнейКомпоненты.НеИзолированно) Тогда
Сообщить("Не удалось подключить");
Возврат;
КонецЕсли;
Сообщить("Подключена");
ОбъектКомпоненты = Новый ("AddIn.Test.Class1");
Test = ОбъектКомпоненты.Test;
Конец = ТекущаяУниверсальнаяДатаВМиллисекундах();
Сообщить(СтрШаблон("Test: %1", Test));
Сообщить(СтрШаблон("Длительность: %1", Конец - Начало));
КонецПроцедуры
&НаКлиенте
Процедура Тест2(Команда)
Тест2НаСервере(ИмяФайла);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура Тест2НаСервере(ИмяФайла)
Начало = ТекущаяУниверсальнаяДатаВМиллисекундах();
Попытка
ОбъектКомпоненты = Новый ("AddIn.Test.Class1");
Исключение
Если Не ПодключитьВнешнююКомпоненту(ИмяФайла, "Test", ТипВнешнейКомпоненты.Native, ТипПодключенияВнешнейКомпоненты.НеИзолированно) Тогда
ВызватьИсключение "Не удалось подключить";
КонецЕсли;
ОбъектКомпоненты = Новый ("AddIn.Test.Class1");
КонецПопытки;
ОбъектКомпоненты.PropI32 = 123;
Если ОбъектКомпоненты.PropI32 <> 123 Тогда
ВызватьИсключение "Не удалось установить значение PropI32";
КонецЕсли;
ОбъектКомпоненты.PropF64 = 456.789;
Если ОбъектКомпоненты.PropF64 <> 456.789 Тогда
ВызватьИсключение "Не удалось установить значение PropF64";
КонецЕсли;
ОбъектКомпоненты.PropBool = Истина;
Если ОбъектКомпоненты.PropBool <> Истина Тогда
ВызватьИсключение "Не удалось установить значение PropBool";
КонецЕсли;
Date = ТекущаяДатаСеанса();
ОбъектКомпоненты.PropDate = Date;
Если ОбъектКомпоненты.PropDate <> Date Тогда
ВызватьИсключение "Не удалось установить значение PropDate";
КонецЕсли;
ОбъектКомпоненты.PropStr = "Привет!";
Если ОбъектКомпоненты.PropStr <> "Привет!" Тогда
ВызватьИсключение "Не удалось установить значение PropStr";
КонецЕсли;
Blob = ПолучитьДвоичныеДанныеИзСтроки("Привет!");
ОбъектКомпоненты.PropBlob = Blob;
Если ОбъектКомпоненты.PropBlob <> Blob Тогда
ВызватьИсключение "Не удалось установить значение PropBlob";
КонецЕсли;
Если ОбъектКомпоненты.Method1("11", "22", "33") <> "112233" Тогда
ВызватьИсключение "Не удалось установить значение Method1";
КонецЕсли;
Конец = ТекущаяУниверсальнаяДатаВМиллисекундах();
Сообщить(СтрШаблон("Длительность: %1", Конец - Начало));
КонецПроцедуры