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

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

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

web http-сервисы onescript aspnetengine

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

Введение

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

Описание

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

ИмяПеречисления.txt

Где ИмяПеречисления – это имя перечисления, которое используется для доступа из внутреннего языка.

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

 
ЗначениеПеречисления1

ЗначениеПеречисления2

ЗначениеПеречисления3

Установка

Установка осуществляется копированием файлов dll в папку Bin веб-приложения. Затем, необходимо внести нижеследующие изменения в секцию <appSettings>, файла web.config:

 
<!-- Определяем каталог, где расположены файлы перечислений -->

<add key="enumsPath" value="~/Перечисления/" />

<!-- Необходимо для построения коллекции Перечисления -->

<add key="propertiesInjector;Enums;OneScript.HTTPService.Enums" value="" />

<!-- Подключаем сборку -->

<add key="Enums" value="attachAssembly" />

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

Пример использования перечислений в OneScript представлен ниже:

Перечисление1.txt

 
Значение1

Значение2

Значение3

Перечисление2.txt

 
Значение1

Значение2

Пример кода:

 
Результат = Перечисления.Перечисление1.Значение1 = Перечисления.Перечисление1.Значение1;

// Результат = Истина

Результат = Перечисления.Перечисление1.Значение1 = Перечисления.Перечисление2.Значение1;

// Результат = Ложь

Как можно увидеть, код является переносимым, между OneScript и 1С:Предприятие.

Заключение

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

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
2. baton_pk 401 05.06.18 23:24 Сейчас в теме
Как можно увидеть, код является переносимым, между OneScript и 1С:Предприятие.

Ай-да такие же перечисления, но не из текстового файла, а из xml выгрузки конфигурации
3. blackhole321 1164 05.06.18 23:47 Сейчас в теме
(2)Не понял сути вопроса. Перечисления да, берутся из выгрузки конфигуратора. В onescript значение представлено строкой вида имяперечисления.значениеперечисления
4. baton_pk 401 06.06.18 07:50 Сейчас в теме
(3) Эти текстовые файлы "Перечисление1.txt" и "Перечисление2.txt" - это разве выгрузка из конфигуратора??
5. blackhole321 1164 06.06.18 08:38 Сейчас в теме
(4)ну преобразованная из xml в тхт. Эт конечно не оригинальный формат 1с
6. baton_pk 401 06.06.18 08:55 Сейчас в теме
(5)
Эт конечно не оригинальный формат 1с

вот к этому я и клоню - к чему лишние преобразования?
7. blackhole321 1164 06.06.18 09:06 Сейчас в теме
(6)там много лишней инфы. К тому же проще прочитать при выполнении в ванскрипте текстовый файл как массив строк, чем морочиться с xml 1с
8. baton_pk 401 06.06.18 09:12 Сейчас в теме
(7)
там много лишней инфы

зато минимум лишних промежуточных операций.


(7)
К тому же проще прочитать

xml в текст каждый раз переводить, а читалку один раз поднатужиться и сделать - я могу даже вПёРнуть попробовать, если тебе лень.
9. blackhole321 1164 06.06.18 09:18 Сейчас в теме
Да он переводится то при создании приложения конфой. В самом приложении на сайте это уже текстовый файл.

Ну можно попробовать и читалку xml
10. blackhole321 1164 06.06.18 09:19 Сейчас в теме
(9)только штатные средства c# как-то не очень дружелюбно отнеслись к xml 1с
11. ktb 358 19.06.18 09:42 Сейчас в теме
Как еще 1 вариант для onescript - модуль Перечисления.os вида:

Перем ДаНет Экспорт;

Процедура ДобавитьЗначениеПеречисления(Перечисление, Знач Имя, Знач Значение)
	
	Если НЕ ТипЗнч(Перечисление) = Тип("Структура") Тогда
		Перечисление = Новый Структура();
	КонецЕсли;

	Перечисление.Вставить(Имя, Значение);

КонецПроцедуры // ДобавитьЗначениеПеречисления()

Процедура ЗаполнитьДаНет()

	ДобавитьЗначениеПеречисления(ДаНет, "Да"	, "yes");
	ДобавитьЗначениеПеречисления(ДаНет, "Нет"	, "no");

КонецПроцедуры // ЗаполнитьДаНет()

Процедура Инициализация()

	ЗаполнитьДаНет();

КонецПроцедуры // Инициализация()

Инициализация();
Показать


Далее вызываем как в 1С:

Значение = Перечисления.ДаНет.Да;
12. blackhole321 1164 19.06.18 09:46 Сейчас в теме
(11)Это да, только этот код не будет переносимым
13. ktb 358 19.06.18 13:22 Сейчас в теме
(12) Но если пофантазировать, то можно сделать обработку-генератор кода перечислений из 1С для oscript :-)
14. blackhole321 1164 19.06.18 14:13 Сейчас в теме
Ну в принципе - да, можно.
Оставьте свое сообщение

См. также

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

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

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

14.10.2019    2629    0    artkor    2    

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

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

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

22.05.2019    4894    0    blackhole321    33    

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

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

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

20.05.2019    18500    0    Evil Beaver    33    

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

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

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

09.05.2019    5751    0    blackhole321    0    

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

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

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

24.06.2018    7158    0    blackhole321    1    

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

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

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

17.06.2018    20481    0    stas_ganiev    34    

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

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

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

03.06.2018    7971    0    blackhole321    1    

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

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

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

14.05.2018    12266    0    pallid    3    

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

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

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

26.04.2018    14097    0    Tavalik    22    

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

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

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

06.03.2018    20774    0    nixel    36    

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

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

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

14.11.2017    40882    0    nixel    86    

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

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

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

30.06.2017    13330    0    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    17554    0    andreosh    3