1
0
mirror of https://github.com/medigor/example-native-api-rs.git synced 2025-07-17 01:42:35 +02:00

добавил пример внешнего события

This commit is contained in:
medigor
2025-05-18 22:23:21 +03:00
parent bab1edf67a
commit ebd1b6ff9a
9 changed files with 196 additions and 15 deletions

View File

@ -1,5 +1,5 @@
<?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">
<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.16">
<DataProcessor uuid="33179d0b-730e-44f5-b20c-1af11f7f1f60">
<InternalInfo>
<xr:GeneratedType name="DataProcessorObject.Обработка1" category="Object">

View File

@ -1,5 +1,5 @@
<?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">
<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.16">
<Form uuid="24033a67-5ef1-4265-9a88-eb7f279ce1cb">
<Properties>
<Name>Форма</Name>

View File

@ -1,7 +1,10 @@
<?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">
<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.16">
<AutoSaveDataInSettings>Use</AutoSaveDataInSettings>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Events>
<Event name="ExternalEvent">ВнешнееСобытие</Event>
</Events>
<ChildItems>
<InputField name="ИмяФайла" id="19">
<DataPath>ИмяФайла</DataPath>
@ -31,6 +34,11 @@
<CommandName>Form.Command.Тест4</CommandName>
<ExtendedTooltip name="Тест4РасширеннаяПодсказка" id="27"/>
</Button>
<Button name="ТестВнешнееСобытие" id="28">
<Type>UsualButton</Type>
<CommandName>Form.Command.ТестВнешнееСобытие</CommandName>
<ExtendedTooltip name="ТестВнешнееСобытиеРасширеннаяПодсказка" id="29"/>
</Button>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
@ -119,5 +127,20 @@
</ToolTip>
<Action>Тест4</Action>
</Command>
<Command name="ТестВнешнееСобытие" id="5">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Тест внешнее событие</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Тест внешнее событие</v8:content>
</v8:item>
</ToolTip>
<Action>ТестВнешнееСобытие</Action>
</Command>
</Commands>
</Form>

View File

@ -1,4 +1,14 @@

&НаКлиенте
Перем КомпонентаДляВнешнегоСобытия;
&НаКлиенте
Перем СчетчикВнешнихСобытий;
&НаКлиенте
Перем ДатаНачалаСобытий;
&НаКлиенте
Процедура Тест1(Команда)
Тест1НаСервере(ИмяФайла);
@ -149,3 +159,37 @@
Сообщить(СтрШаблон("Длительность: %1 мс", Конец - Начало));
КонецПроцедуры
&НаКлиенте
Асинх Процедура ТестВнешнееСобытие(Команда)
Если Не Ждать ПодключитьВнешнююКомпонентуАсинх(ИмяФайла, "Test", ТипВнешнейКомпоненты.Native, ТипПодключенияВнешнейКомпоненты.НеИзолированно) Тогда
ВызватьИсключение "Не удалось подключить";
КонецЕсли;
КомпонентаДляВнешнегоСобытия = Новый ("AddIn.Test.Class2");
СчетчикВнешнихСобытий = 0;
ДатаНачалаСобытий = ТекущаяУниверсальнаяДатаВМиллисекундах();
Элементы.ТестВнешнееСобытие.Доступность = Ложь;
Ждать КомпонентаДляВнешнегоСобытия.StartTimerAsync(1000);
КонецПроцедуры
&НаКлиенте
Асинх Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник = "Class2" И Событие = "Timer" Тогда
СчетчикВнешнихСобытий = СчетчикВнешнихСобытий + 1;
Сообщить(СтрШаблон("%1 мс, внешнее событие № %2, данные: %3", ТекущаяУниверсальнаяДатаВМиллисекундах() - ДатаНачалаСобытий, СчетчикВнешнихСобытий, Данные));
Если СчетчикВнешнихСобытий = 5 Тогда
Ждать КомпонентаДляВнешнегоСобытия.StopTimerAsync();
КонецЕсли;
ИначеЕсли Источник = "Class2" И Событие = "TimerShutdown" Тогда
КомпонентаДляВнешнегоСобытия = Неопределено;
Сообщить(СтрШаблон("%1 мс, TimerShutdown", ТекущаяУниверсальнаяДатаВМиллисекундах() - ДатаНачалаСобытий));
Элементы.ТестВнешнееСобытие.Доступность = Истина;
КонецЕсли;
КонецПроцедуры