Обработки в http-сервисах OneScript

В статье описана библиотека, реализующая механизм обработок в http-сервисах OneScript.

Введение

Механизм обработок в платформе 1С:Предприятие предоставляет возможность создания в прикладных решениях объектов пользовательских типов.  Фактически, обработку можно представить как тип (класс), экземпляры которого можно создавать и использовать. Поскольку , я решил попробовать реализовать данный механизм для http-сервисов OneScript.

Результаты реализации представлены на ваш суд — ниже.

Описание

Библиотека входит в набор библиотек, расширяющих стандартные возможности http-сервисов OneScript и фактически является внешней компонентой. Аналогично платформе 1С:Предприятие, библиотека реализует глобальную коллекцию Обработки. Элементы коллекции представляют собой экземпляры модулей менеджера соответствующих обработок, которые могут содержать пользовательские статические методы.

Отличия от 1С:Предприятие

В целом, поведение объектов не отличается от поведения объектов в платформе 1С:Предприятие, однако имеется несколько отличий:

Реквизиты обработки реализуются переменными с модификатором Экспорт.

Стандартная функция платформы ПолучитьФорму, менеджера обработки не реализована.

Стандартная функция платформы ПолучитьМакет, менеджера обработки поддерживает макеты только нижеследующих типов: Текстовый документ, HTML документ и Двоичные данные.

Возможна загрузка внешних библиотек, созданных по технологии внешних компонент OneScript в качестве обработок.

Обработки на встроенном языке

Как и в платформе 1С:Предприятие, обработка на встроенном языке обязательно состоит из двух текстовых файлов с расширением .os. Первый файл – представляет собой модуль менеджера обработки, второй – модуль объекта обработки. Имена файлов должны иметь нижеследующую схему именования:

ИмяОбработки.МодульМенеджера.os, ИмяОбработки.МодульОбъекта.os, где ИмяОбработки – имя обработки, которое будет доступно из среды выполнения, МодульОбъекта, МодульМенеджера – модификаторы, идентифицирующие тип модуля.

Все обработки должны быть расположены в одной папке, которая должна быть расположена в папке Вашего web-приложения.

Внешние компоненты как обработки

Настоящая библиотека позволяет использовать внешние библиотеки, созданные по технологии внешних компонент OneScript в качестве обработок при соблюдении нижеследующих условий:

Внешняя компонента должна иметь класс, реализующий тип менеджера обработки, в котором должна быть реализована функция Создать(), которая возвращает экземпляр типа, соответствующего модулю объекта обработки. В одной сборке допускается наличие нескольких обработок.

Подключение

Подключение библиотеки

Для подключения библиотеки необходимо загрузить соответствующие библиотеки и заменить файлы стандартной поставки OneScript, которые расположены в папки Bin, вашего web-приложения.

Для подключения библиотеки, необходимо внести нижеследующие записи в раздел appSettings файла web.config

 

   

<add key="DataProcessors" value="attachAssembly" />
<add key="dataProcessorsPath" value="~/DataProcessors/" />
<add key="propertiesInjector;DataProcessors;OneScript.HTTPService.DataProcessors" value="" />

 

Первый ключ подключает библиотеку к среде выполнения. Второй – определяет папку, где будут находиться модули обработок на встроенном языке. Третий – подключает сборку как загрузчик свойств (описание методики расширенной загрузки можно посмотреть здесь).

Подключение обработки на встроенном языке

Для подключения обработки, написанной на встроенном языке, необходимо скопировать файлы, содержащие код модуля менеджера и модуля объекта в папку для обработок.

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

Файл сборки (dll) внешней компоненты должен располагаться в папке Bin, Вашего web-приложения.

Сборка должна быть подключена к среде выполнения ключом:

<add key="ИмяСборки" value="attachAssembly" />

Подключение обработки выполняется добавлением нижеследующего ключа:

<add key="attachAsDataProcessor;ИмяСборки;ИмяКлассаМенеджераОбработки" value="ПереопределенноеИмяОбработки" />

Где: attachDataProcessor – признак того, что мы подключаем обработку, ИмяСборки – имя сборки обработки, ИмяКлассаМенеджераОбработки – имя класса, реализующего модуль менеджера обработки, ПереопределенноеИмяОбработки – используется, если мы хотим присвоить обработке имя, отличное от имени класса менеджера обработки.

Использование

Пример кода представлен ниже:

Модуль менеджера:

 
// Файл: СложитьДваЧисла.МодульМенеджера.os

Функция СтатическаяФункция(Число1, Число2) Экспорт

Возврат Число1 + Число2;

КонецФункции

 

 

Модуль объекта:

 
// Файл: СложитьДваЧисла.МодульОбъекта.os

// Реквизиты и переменные
Перем Число1 Экспорт;
Перем Число2 Экспорт;

Функция Сложить(Число3) Экспорт

Возврат Число1 + Число2 + Число3;

КонецФункции

Число1 = 0;
Число2 = 0;

 

Пример кода:

 
// Вызов статических методов

СуммаЧисел = Обработки.СложитьДваЧисла.СтатическаяФункция(3,5);

// СуммаЧисел = 8

// Использование объекта

МояОбработка = Обработки.СложитьДваЧисла.Создать();

МояОбработка.Число1 = 10;

МояОбработка.Число2 = 20;

СуммаЧисел = МояОбработка.Сложить(30);

// СуммаЧисел = 60



 

Заключение

Надеюсь, что данный механизм окажется полезным в Ваших разработках на OneScript и создании переносимого кода, между OneScript и 1С:Предприятие.

Leave a Comment

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