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

Публикация № 836695

Разработка - Языки и среды - OneScript

OneScript web http-сервис

В статье описана библиотека, реализующая механизм обработок в 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С:Предприятие.

Специальные предложения

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

См. также

Смена паролей всем локальным пользователям Windows с помощью OneScript

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

Скрипт, который меняет пароли всем локальным пользователям Windows и сохраняет их в файле. Есть функция генерации пароля, можно задать длину пароля.

18.08.2020    411    info1i    7    

Swagger для 1С.

OneScript WEB Бесплатно (free)

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

21.10.2019    12469    botokash    41    

Автоматическое сравнение-объединение баз данных с мини-конфигурацией

OneScript v8 Бесплатно (free)

Представляю вашему вниманию скрипт на OneScript для автоматического сравнения-объединения по правилам ("мержевания") конфигураций нескольких баз с мини-конфигурацией.

14.10.2019    3015    artkor    2    

АИТП. Подсистема взаимодействия с рабочими серверами OneScript

OneScript v8 Бесплатно (free)

В статье описан механизм взаимодействия конфигурации АИТП с рабочими серверами OneScript.

22.05.2019    5379    blackhole321    33    

1Script.Web. Интернет-приложения на языке 1С

WEB OneScript Инструментарий разработчика v8 Бесплатно (free)

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    20274    Evil Beaver    33    

Создание высокодоступной фермы рабочих серверов OneScript в ОС Centos 7

OneScript Бесплатно (free)

В статье описана методика создания высокодоступной фермы рабочих серверов OneScript, для конфигурации АИТП.

14.05.2019    4699    blackhole321    0    

Разворачиваем рабочий сервер OneScript для конфигурации АИТП

OneScript v8 Бесплатно (free)

В статье описана методика развертывания рабочего сервера OneScript для конфигурации АИТП, на ОС CentOS 7.

09.05.2019    6227    blackhole321    0    

Хостим OneScript.Web приложение (heroku)

OneScript Бесплатно (free)

Развертывание oscript.web в heroku.

19.12.2018    6504    pallid    6    

Хостим OneScript.Web приложение

OneScript Бесплатно (free)

Удобная возможность для размещения своего OneScript.Web приложение, это завернуть его в docker. Остается вопрос: где разместить контейнер, сделать это можно на vscale или DO, но хочется упростить и не делать установку самого docker на хосте. Один из вариантов - это сервис now https://zeit.co/.

04.07.2018    7795    pallid    3    

Добавляем онлайн-чат в web-приложение OneScript

OneScript v8 Бесплатно (free)

В статье рассмотрено подключение онлайн-чата к web-приложению на основе http-сервисов OneScript

24.06.2018    7540    blackhole321    1    

Сказ про то, как я DevOps-ом занимался (OneScript, Deployka, Jenkins)

OneScript DevOps Jenkins v8 1cv8.cf ИТ-компания Бесплатно (free)

Решаем задачу: автоматизировать обновление тестовых баз 1С из хранилища конфигурации при появлении в нём новых изменений. Данная статья родилась в муках хождения по граблям и поиска безопасного форватора среди подводных камней. Изложение постарался представить в виде инструкции для новичка, в которой собрал всё, с чем пришлось столкнуться. Сам я не DevOps-ер, ни на что не претендую, просто делюсь опытом :)

17.06.2018    22172    stas_ganiev    34    

Макеты в http-сервисах OneScript

OneScript v8 Бесплатно (free)

В статье описана библиотека, реализующая механизм макетов в http-сервисах OneScript, аналогично платформе 1С:Предприятие.

03.06.2018    8412    blackhole321    1    

Перечисления в http-сервисах OneScript

OneScript v8 Бесплатно (free)

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

03.06.2018    8003    blackhole321    13    

Расширенные методы загрузки внешних библиотек в http-сервисах OneScript

OneScript Бесплатно (free)

В статье описаны расширенные методы загрузки внешних библиотек в http-сервисах OneScript на примере механизма фоновых заданий.

25.05.2018    7601    blackhole321    0    

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci

OneScript v8 1cv8.cf Бесплатно (free)

Сборка, тестирование, доставка приложения на onescript с помощью gitlab-ci на примере портирования на onescript функции daСклонение.

14.05.2018    13020    pallid    5    

OneScript в облаке или Развертываем http-сервис OneScript на хостинге

OneScript Бесплатно (free)

В статье описан процесс развертывания web-приложения, созданного на базе http-сервисов OneScript на бесплатном хостинге.

05.05.2018    9606    blackhole321    0    

TMSSQL - работа с базами данных MS SQL Server в скриптах на OneScript и из командной строки

OneScript v8 Бесплатно (free)

Представляю вашему вниманию библиотеку TMSQL для работы с базами данных на MS SQL Server. Библиотека подключается в качестве модуля или класса в скрипты, написанные на OneScript, а также может работать как независимое консольное приложение.

26.04.2018    14826    Tavalik    22    

Развертывание http-сервиса OneScript на Raspberry Pi

OneScript Бесплатно (free)

В статье описан процесс настройки, а также процесс развертывания http-сервиса (web-приложения) OneScript на Raspbian (Raspberry Pi 2).

23.04.2018    11024    blackhole321    10    

Создаем свою библиотеку для OneScript

OneScript v8 Бесплатно (free)

Как упаковать свою библиотеку в пакет? Что такое загрузчик и зачем он нужен? Как вообще создать свою библиотеку? Разбираемся на примере.

06.03.2018    21863    nixel    36    

Развертывание http-сервиса (web-приложения) OneScript на Ubuntu Server 16.04

OneScript Бесплатно (free)

В статье описан процесс настройки сервера, а также процесс развертывания http-сервиса (web-приложения) OneScript на Ubuntu Server 16.04

04.03.2018    15652    blackhole321    14    

Обзор имеющихся библиотек OneScript

OneScript v8 Бесплатно (free)

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

14.11.2017    43775    nixel    87    

Начало работы с OneScript

OneScript Бесплатно (free)

Краткая инструкция по установке и начале работы с OneScript. Пишу потому что сам много шишек набил, пока нашел все инструменты. В статье рассмотрены: 1) Установка OneScript. 2) Установка редактора кода. 3) Настройка редактора кода под OneScript. 4) Запуск скриптов из редактора кода 5) Полезные ссылки

18.10.2017    42454    DmitrySinichnikov    54    

С чего начать разработку скриптов на OneScript? Первые шаги

OneScript Бесплатно (free)

После моего доклада на INFOSTART 2017 EVENT COMMUNITY ко мне многие обращались с таким вопросом: с чего начать разработку скриптов на OneScript? В этой статье привожу набор ссылок и некий порядок действий (как его вижу я) для людей, не знакомым с этим инструментом.

11.10.2017    26054    Tavalik    14    

Вебинтерфейс для OneScript и 1С

OneScript v8 Россия Бесплатно (free)

Пример создания вебинтерфейса для OneScript с использованием библиотеки UfaScript.osb

30.06.2017    13837    andreosh    7    

OneScript и Ajax. POST-запрос и мои дальнейшие планы с фантазиями о будущем

OneScript v8 Россия Бесплатно (free)

Моя библиотека для OneScript (версия 3.0 от 09.06.2017 см.GitHab UfaScript) https://github.com/andreosh/UfaScript теперь позволяет посылать POST-запросы на сервер без использования сторонних библиотек типа jquery.

09.06.2017    17958    andreosh    3    

Как сделать OneScript объектно-ориентированным

OneScript Россия Бесплатно (free)

Описание метода создания объектов на OneScript и метода передачи функции в качестве параметра.

16.04.2017    8451    andreosh    7