com um clique
onescript
// Пишет и структурирует код на OneScript (BSL без 1С). Использовать при работе с файлами .os, проектами OneScript, packagedef, opm, директивой
// Пишет и структурирует код на OneScript (BSL без 1С). Использовать при работе с файлами .os, проектами OneScript, packagedef, opm, директивой
Создаёт веб-приложения и маршруты на Winow (веб-сервер на OneScript и Autumn). Использовать при веб-сервере на OneScript, маршрутизации, контроллерах Winow.
Создаёт консольные приложения с командами и подкомандами на autumn-cli для OneScript. Использовать при CLI на OneScript, командах приложения, аргументах и опциях.
Создаёт и настраивает компонентные приложения на фреймворке Autumn (ОСень) для OneScript с DI и аннотациями. Использовать при работе с Autumn, Dependency Injection, «желудями», аннотациями &Желудь, &Дуб, &Верховный.
| name | onescript |
| description | Пишет и структурирует код на OneScript (BSL без 1С). Использовать при работе с файлами .os, проектами OneScript, packagedef, opm, директивой |
Навык для написания и структурирования кода на OneScript — кроссплатформенном интерпретаторе языка 1С:Предприятие 8 без платформы 1С. Код выполняется из текстовых файлов .os, аналогично Python или Node.js.
Модуль — текстовый файл с расширением .os. Три секции (сверху вниз):
Перем ИмяПеременной;Минимальный скрипт:
Сообщить("Привет, Мир!");
Процедуры и функции:
Процедура МояПроцедура(Параметр1, Параметр2)
// операторы
КонецПроцедуры
Функция МояФункция(Параметр1, Параметр2)
Возврат Параметр1 + Параметр2;
КонецФункции
Типизация динамическая. Примитивы: Строка, Число, Булево, Дата; специальные: Неопределено, Null.
12345.899"Текст", кавычка внутри — "". Многострочная: новая строка начинается с |, пробелы до | отбрасываются.'20250212235959' или '2025-02-12 23:59:59'Условие:
Если Условие Тогда
// ...
ИначеЕсли ДругоеУсловие Тогда
// ...
Иначе
// ...
КонецЕсли;
Циклы:
Для Счетчик = 0 По 10 Цикл
Сообщить(Счетчик);
КонецЦикла;
Для Каждого Элемент Из Массив Цикл
Сообщить(Элемент);
КонецЦикла;
Пока Условие Цикл
// ...
КонецЦикла;
Исключения:
Попытка
// код
Исключение
Сообщить(ОписаниеОшибки());
ВызватьИсключение; // rethrow
КонецПопытки;
ВызватьИсключение "Текст ошибки";
Рекомендуемая структура каталогов:
src/ — исходный код (в дистрибутив)src/Классы/ — файлы .os, подключаемые как классы (создание через Новый)src/Модули/ — файлы .os, подключаемые как общие модулиtests/ — тестыtasks/ — служебные скрипты (сборка, тесты)packagedef (манифест), README, LICENSEТочка входа (например src/main.os) должна импортировать свой каталог:
#Использовать "."
// далее использование классов и модулей
Сообщить(МойМодуль.Метод());
В корне проекта — файл без расширения packagedef. Минимум: имя, версия, состав.
Описание.Имя("my-package")
.Версия("1.0.0")
.ВерсияСреды("2.0.0")
.ЗависитОт("fs", "1.0.0")
.ЗависитОт("asserts", "1.3.0")
.ВключитьФайл("packagedef")
.ВключитьФайл("src")
.ВключитьФайл("oscript_modules")
.ИсполняемыйФайл("src/my-script.os");
Основные свойства: Имя, Версия, ВерсияСреды, ЗависитОт, ВключитьФайл, ИсполняемыйФайл.
Подключение в начале модуля (до переменных):
#Использовать json, #Использовать fs#Использовать ".", #Использовать "lib/mylib"Класс из библиотеки — новый тип, создаётся через Новый ИмяКласса(). Модуль — глобальный объект с методами: ИмяМодуля.Метод().
Стандартный загрузчик: файлы из подкаталога Классы регистрируются как классы, из Модули — как модули. Имя файла (без .os) = идентификатор класса/модуля.
opm build .opm push my-file.ospx --token ТОКЕНПодробности синтаксиса, отличия от 1С (Формат/ДФ, вызов конструктора в выражении, параметризованные исключения, rethrow с ИнформацияОбОшибке) — в reference.md.
Документация: oscript.io/learn.