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

03.06.18

Разработка - 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С:Предприятие.

OneScript web http-сервис

См. также

WEB-интеграция OneScript Программист Стажер Бесплатно (free)

Библиотека для работы с базами MySQL на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

08.04.2025    2674    bayselonarrend    27    

41

Внешние источники данных OneScript Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Библиотека для работы с базами PostgreSQL на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

20.02.2025    3960    bayselonarrend    5    

46

Работа с интерфейсом OneScript Программист Платформа 1С v8.3 Россия Бесплатно (free)

Графический интерфейс с применением веб-технологий в коллекцию инструментария сценарного языка OneScript. Библиотека создает десктопное приложение имеющее декларативный пользовательский интерфейс (GUI), построенный веб-браузером. Возможности веб-технологий по представлению информации огромны. Эти возможности соответственно добавляются и к сценариям OneScript.

23.01.2025    835    0    ahyahy    15    

9

OneScript Программист Бесплатно (free)

Вместе создадим библиотеку на Oscript с нуля, шаг за шагом: от базовой структуры проекта до перевода на ОСень. Разберем структуру проекта, работу с файлом конфигурации, логирование, уведомления, консольный интерфейс и многое другое. Освоим весь цикл разработки и сделаем первый шаг к созданию собственных инструментов на Oscript!

13.01.2025    3014    leobrn    16    

58

OneScript Программист Платформа 1С v8.3 Бесплатно (free)

Если вы, так же как и я, давно хотели попробовать сделать что-то свое на OneScript, но никак не могли к нему подступиться, то, возможно, эта статья пригодится вам в качестве некоего вводного материала.

10.01.2025    2684    KamranV21    13    

38

OneScript Программист Бесплатно (free)

В мире OneScript давно существуют библиотеки для облегчения работы с каким-либо классом программного обеспечения, например v8runner - помощник выполнения команд конфигуратора или gitrunner - программная обертка для запуска команд git. Есть библиотека и для работы с автономным сервером 1с. Однако библиотеке ibcmdrunner уже три года, а про нее нет ни одной публикации на инфостарте. Исправляю эту несправедливость.

09.01.2025    1866    ardn    2    

24

OneScript Программист Бесплатно (free)

Отгремел Infostart Tech Event 2024, топовое событие в мире 1С-разработки, традиционно проходящее в Санкт-Петербурге. Ваш покорный слуга в этот раз отмечал там 10-летний юбилей проекта OneScript. Отмечание проводилось в форме игры-соревнования по забегу роботов в лабиринте. Участники пытались написать алгоритм движения робота на языке 1С и сделать это быстрее других. О том, как это было – под катом.

28.10.2024    1972    Evil Beaver    11    

26

OneScript Программист Бесплатно (free)

OneScript – это скриптовый движок для автоматизации всего и вся. О том, как OneScript помогает в разработке скриптов на языке 1С, пойдет речь в статье.

10.10.2024    6450    ardn    2    

10
Оставьте свое сообщение