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

03.06.18

Разработка - OneScript

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

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

См. также

Особенности национального Workflow: Github Actions и OneScript

Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    1547    bayselonarrend    3    

38

TCP прокси-сервер хранилища конфигурации 1С

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    2986    kamisov    17    

59

Что такое ОСень? Или как лучшие практики из мира Java прижились в экосистеме OneScript

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

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

21.11.2023    3234    NikitaIvanchenko    16    

46

Библиотека создания клиент-серверных приложений для сценарного языка OneScript

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

Представленная библиотека позволяет создать многопоточный TCP сервер, к которому может одновременно подключиться множество TCP клиентов с удаленных компьютеров. Эти клиенты могут вызывать методы скриптов как на сервере, так и на других клиентах. Методы будут выполнены в контексте скрипта на удаленной машине. Возможна передача параметров в метод и получение результата. Для TCP клиента можно создать графический интерфейс с большим набором элементов управления, модальными диалоговыми окнами и с обработкой событий.

31.07.2023    2065    ahyahy    8    

32

Получаем статистику по git-репозиторию в разрезе разработчиков

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    3789    ardn    3    

27

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    8146    kamisov    57    

95

OneScript на страже порядка на сервере тестовых баз данных

Администрирование СУБД OneScript Бесплатно (free)

Наводим порядок на сервере тестовых баз с помощью любимого инструмента - OneScript. Находим заброшенные базы на сервере MS SQL, определяем кандидатов на удаление.

14.06.2022    4307    ardn    23    

39

Идем в Serverless с кодом 1С

Облачные сервисы, хостинг OneScript Россия Абонемент ($m)

Запускаем код OneScript в Serverless Container Яндекса.

1 стартмани

29.04.2022    3736    1    papami    2    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 04.06.18 08:14
Сообщение было скрыто модератором.
...
2. dmpas 418 05.06.18 23:24 Сейчас в теме
Как можно увидеть, код является переносимым, между OneScript и 1С:Предприятие.

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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