mirror of
https://github.com/Sebekerga/native_api_1c.git
synced 2025-07-07 00:35:53 +02:00
cd64fbf698c4182e59fb58fc867ca8af11d1e64a
Описание
Библиотека для простой реализации внешней компоненты для 1С на чистом Rust, основано на примере, созданным пользователем medigor
Библиотека делится на два подмодуля:
native_api_1c_core
описывает все необходимое для реализации ВКnative_api_1c_macro
предоставляет инструмент для значительного упрощения описания компоненты, беря на себя реализацию свойстваnative_api_1c_core::interface::AddInWrapper
Пример реализации простой компоненты:
// lib.rs
use std::sync::Arc;
use native_api_1c_core::ffi::connection::Connection;
use native_api_1c_macro::AddIn;
#[derive(AddIn)]
pub struct MyAddIn {
#[add_in_con]
connection: Arc<Option<&'static Connection>>, // Arc для возможности многопоточности
#[add_in_prop(name = "MyProp", name_ru = "МоеСвойство", readable, writable)]
pub some_prop: i32,
#[add_in_prop(name = "ProtectedProp", name_ru = "ЗащищенноеСвойство", readable)]
pub protected_prop: i32,
#[add_in_func(name = "MyFunction", name_ru = "МояФункция")]
pub my_function: fn(&Self, i32) -> i32,
private_field: i32,
}
impl MyAddIn {
pub fn new() -> Self {
Self {
connection: Arc::new(None),
some_prop: 0,
protected_prop: 50,
my_function: Self::my_function,
private_field: 100,
}
}
fn my_function(&self, arg: i32) -> i32 {
self.protected_prop + self.some_prop + arg + self.private_field
}
}
Description
Crate for simple implementation of Component for Native API 1C:Enterprise written in rust
Readme
253 KiB
Languages
Rust
100%