OneScript на Windows и Linux: от загрузки движка до первых пакетов OPM

· 9 мин

Содержание

Чтобы установить OneScript, скачайте дистрибутив с официального сайта проекта oscript.io, запустите установщик (Windows) или поставьте deb/rpm-пакет (Linux), затем откройте новое окно терминала и выполните oscript -version. Если команда вывела номер версии, движок готов, и можно ставить пакеты через opm install.

Обычно OScript нужен, когда 1С-нику надоедает руками собирать .cf, выгружать конфигурацию в Git или по ночам обновлять десяток баз. Скрипты на OneScript пишутся на том же встроенном языке, что и модули 1С, но запускаются без платформы и без лицензии. Ниже по порядку: установка, настройка путей, проверка и пакеты.

Что такое OneScript и какую версию движка выбрать

OneScript — открытый интерпретатор языка 1С, автономный от 1С:Предприятия. Он исполняет файлы .os, понимает русский и английский синтаксис, умеет работать с файлами, HTTP, JSON, XML, ZIP и COM (на Windows). Платформа 1С для работы самого движка не нужна.

Где он реально пригождается:

  • 🔧 запуск 1cv8 в пакетном режиме: обновление конфигураций, выгрузка .dt, сборка .cf и .cfe;
  • 📦 CI/CD для 1С: библиотеки vanessa-runner, gitsync, deployka работают поверх OneScript;
  • 🗂 служебные скрипты администратора: ротация архивов, проверка свободного места, рассылка отчётов;
  • 🧪 быстрые проверки кода на встроенном языке без запуска конфигуратора.

Две ветки движка

ВеткаНа чём работаетКогда выбирать
1.x (стабильная).NET Framework 4.8 на Windows, Mono на LinuxБольшинство пакетов из хаба протестированы на ней; вариант по умолчанию
2.xСовременный кроссплатформенный .NETНовые проекты, где нужна скорость и не нужен Mono; проверяйте совместимость пакетов

Если ставите OneScript под vanessa-runner или gitsync, начните с последней стабильной версии ветки 1.x. Номер актуального релиза смотрите на странице загрузки oscript.io или в разделе Releases репозитория EvilBeaver/OneScript на GitHub.

Что подготовить заранее

  • Права администратора на компьютере (для установщика и записи в PATH).
  • На Windows — .NET Framework 4.8. В Windows 10 и 11 он обычно уже есть.
  • На Linux для ветки 1.x — Mono из официального репозитория mono-project, а не устаревший пакет дистрибутива.
  • Доступ в интернет к oscript.io и github.com, иначе OPM не скачает пакеты.

Установка OneScript на Windows

Есть три способа. Для рабочей станции разработчика хватает первого, для сервера сборки удобнее третий.

СпособПлюсыМинусы
Установщик .exeСам прописывает PATH и ставит OPMОдна версия на машине
ZIP-архивБез прав администратора, переносимыйPATH настраиваете вручную
OVM (менеджер версий)Несколько версий рядом, быстрое переключениеЕщё одна утилита в цепочке

Способ 1. Установщик

  1. Откройте oscript.io, раздел загрузки, и скачайте установщик стабильной версии.
  2. Запустите файл от имени администратора.
  3. Оставьте каталог по умолчанию. Для 1.x это обычно C:\Program Files (x86)\OneScript.
  4. Убедитесь, что отмечен пункт добавления движка в переменную PATH.
  5. Нажмите «Установить», дождитесь окончания.
  6. Закройте все открытые окна командной строки и PowerShell и откройте новое: старые окна не видят изменённый PATH.

Внутри каталога установки вы увидите папку bin с oscript.exe, opm.bat и файлом настроек oscript.cfg, и папку lib с предустановленными библиотеками.

Способ 2. ZIP без установщика

Скачайте архив той же версии, распакуйте, например, в D:\Tools\OneScript. Дальше пропишите путь к папке bin в PATH вручную, как описано в разделе про переменные окружения ниже. Способ подходит, если на машине нет прав администратора.

Способ 3. OVM для нескольких версий

OVM (OneScript Version Manager) скачивается отдельным ovm.exe из репозитория oscript-library/ovm на GitHub. Базовые команды:

ovm install stable
ovm use stable
ovm ls

Первая скачивает стабильную версию, вторая делает её текущей и прописывает в PATH, третья показывает, что установлено. Полный список ключей выводит ovm --help.

Как обновить уже установленный движок

Если OneScript ставили установщиком, новую версию той же ветки можно поставить поверх: запустите свежий .exe, каталог оставьте прежним. Перед этим сохраните копию oscript.cfg, если правили его вручную, и выпишите список глобальных пакетов из папки lib. После обновления выполните oscript -version и прогоните пару рабочих скриптов на тестовых данных, прежде чем отдавать движок в ночные задания.

На сервере сборки OVM удобен тем, что можно держать 1.x для старых пайплайнов и 2.x для новых, не ломая ни те, ни другие.

Установка OneScript в Linux

На Linux ветка 1.x работает через Mono, поэтому порядок такой: сначала Mono, потом сам движок.

Ubuntu и Debian

  1. Подключите репозиторий mono-project по инструкции с их сайта для вашей версии дистрибутива.
  2. Поставьте Mono:
sudo apt update
sudo apt install mono-complete
  1. Скачайте deb-пакет OneScript со страницы загрузки oscript.io.
  2. Установите его:
sudo dpkg -i onescript-engine_*.deb
sudo apt -f install

Вторая команда дотягивает зависимости, если dpkg на них пожаловался.

Fedora, CentOS, РЕД ОС, Alt

Для RPM-дистрибутивов на странице загрузки есть rpm-пакет. Порядок тот же: Mono из репозитория mono-project, потом sudo rpm -i или sudo dnf install по скачанному файлу. На Astra Linux и Alt обычно используют deb/rpm соответственно, но Mono из штатного репозитория там бывает старым: проверяйте mono --version.

После установки пакета в системе появляются команды oscript и opm. Сам движок и библиотеки лежат в /usr/share/oscript.

Ветке 2.x Mono не нужен, ей нужен .NET Runtime. Не ставьте Mono «на всякий случай» под 2.x и не пытайтесь запускать 1.x под голым .NET: это разные сборки.

Переменные окружения, PATH и oscript.cfg

Половина вопросов «не запускается» решается здесь.

PATH на Windows

  1. Нажмите Win+R, введите sysdm.cpl, перейдите на вкладку «Дополнительно».
  2. Кнопка «Переменные среды».
  3. В системных переменных выберите Path → «Изменить» → «Создать».
  4. Вставьте путь к папке bin, например C:\Program Files (x86)\OneScript\bin.
  5. Сохраните и откройте новое окно терминала.

Проверка:

where oscript

Если путей несколько, срабатывает первый. Так «старая» версия перехватывает вызов у «новой».

PATH на Linux

Пакет сам кладёт обёртки в /usr/bin. Если ставили вручную в домашний каталог, добавьте строку в ~/.bashrc:

export PATH="$HOME/oscript/bin:$PATH"

Затем source ~/.bashrc.

Файл oscript.cfg

Рядом с oscript.exe лежит oscript.cfg. Главные параметры:

  • lib.system — каталог системных библиотек (по умолчанию папка lib установки);
  • lib.additional — дополнительные каталоги библиотек через точку с запятой.

Пример добавления своей папки с библиотеками команды:

lib.system=C:\Program Files (x86)\OneScript\lib
lib.additional=D:\Projects\shared-libs

Параметры можно переопределить без правки файла: переменная окружения OSCRIPT_CONFIG принимает те же пары ключ=значение через точку с запятой. Это удобно в CI, где каталог установки только для чтения.

Если скрипту нужны локальные пакеты проекта, их ищут в папке oscript_modules рядом со скриптом. Её создаёт opm install -l, о ней ниже.

Проверка работоспособности и первый скрипт

Сначала версия:

oscript -version

Затем создайте файл hello.os в кодировке UTF-8:

Сообщить("OneScript работает. Сейчас: " + Формат(ТекущаяДата(), "ДФ='dd.MM.yyyy HH:mm'"));

Для Сч = 1 По 3 Цикл
	Сообщить(СтрШаблон("Строка %1", Сч));
КонецЦикла;

Запуск:

oscript hello.os

Ожидаемый результат: строка с текущей датой и три строки «Строка 1…3».

Пара полезных ключей запуска:

  • oscript без параметров выводит справку по всем ключам;
  • oscript -make hello.os hello.exe собирает скрипт в самостоятельный exe (на машине всё равно нужен .NET Framework).

Проверка связки с 1С

Типичный первый «боевой» скрипт — пакетный запуск конфигуратора. Пример выгрузки информационной базы в .dt:

ПутьКПлатформе = "C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe";
Параметры = СтрШаблон("DESIGNER /F""%1"" /N""%2"" /P""%3"" /DumpIB""%4"" /Out""%5""",
	"D:\Bases\Buh", "Администратор", "", "D:\Backup\buh.dt", "D:\Backup\log.txt");

КодВозврата = 0;
ЗапуститьПриложение("""" + ПутьКПлатформе + """ " + Параметры, , Истина, КодВозврата);
Сообщить("Код возврата: " + Формат(КодВозврата, "ЧН=0; ЧГ=0"));

Номер платформы в пути подставьте свой. Код 0 означает успешную выгрузку, подробности — в файле log.txt.

Выгрузка /DumpIB требует, чтобы в базе не было других пользователей. Запускайте её вне рабочего времени или предупредите коллег: незавершённые сеансы помешают выгрузке.

На Windows из OneScript доступно и COM-соединение с базой через Новый COMОбъект("V83.COMConnector"), если на машине зарегистрирован comcntr.dll нужной разрядности.

Пакеты OneScript: установка и обновление через OPM

OPM (OneScript Package Manager) ставится вместе с движком. Пакеты лежат в хабе hub.oscript.io и в репозиториях организации oscript-library на GitHub.

Основные команды OPM

КомандаЧто делает
opm install vanessa-runnerСтавит пакет глобально, в lib движка
opm install -l jsonСтавит пакет локально, в oscript_modules текущего каталога
opm install -f D:\dist\gitsync.ospxСтавит пакет из файла, без интернета
opm update vanessa-runnerОбновляет пакет до последней версии
opm update -allОбновляет все установленные пакеты
opm helpСписок команд и ключей

Глобально или локально

Глобальная установка удобна для утилит командной строки: после opm install vanessa-runner в терминале появляется команда vrunner. Локальная нужна для проектов: версии библиотек фиксируются в репозитории, и сборка на сервере не сломается от чужого обновления.

Подключение библиотеки в скрипте:

#Использовать json

Парсер = Новый ПарсерJSON;
Данные = Парсер.ПрочитатьJSON("{""ok"": true}");
Сообщить(Данные["ok"]);

Директива #Использовать ищет библиотеку сначала в oscript_modules рядом со скриптом, затем в каталогах из oscript.cfg.

Пакеты, которые ставят первыми

  • 🚀 vanessa-runner — обёртка над 1cv8 для обновления, сборки, тестов;
  • 🔁 gitsync — синхронизация хранилища конфигурации с Git;
  • 🧩 v8runner — библиотека пакетного запуска конфигуратора из своих скриптов;
  • 🧾 logos — логирование;
  • ⌨️ cmdline — разбор параметров командной строки для своих утилит.

На глобальную установку в C:\Program Files (x86) нужны права администратора. Если opm install падает с отказом в доступе, запустите терминал от имени администратора или ставьте пакет локально.

Ошибки при установке и запуске: что проверить

Диагностика: выберите симптом

Ещё одна частая история: после обновления движка перестал работать vrunner. Глобальные пакеты лежат в lib конкретной версии, и при переходе на новую версию через OVM их нужно поставить заново.

Частые вопросы

Нужна ли лицензия 1С, чтобы запускать скрипты OneScript?
Нет. OneScript — открытый проект с собственным интерпретатором. Лицензия нужна только 1С:Предприятию, если скрипт его запускает.
Можно ли выполнить в OneScript код из модуля конфигурации?
Только общий код на встроенном языке: строки, коллекции, файлы, циклы. Объектов конфигурации, запросов к базе и форм в OneScript нет, к базе обращаются через пакетный запуск 1cv8 или COM.
Где писать скрипты удобнее всего?
В VS Code с расширением для языка 1С (Language 1C BSL) есть подсветка, автодополнение и отладка .os через расширение OneScript Debug.
Как запустить скрипт по расписанию?
На Windows — через Планировщик заданий с действием oscript.exe D:\scripts\backup.os, на Linux — через cron. Указывайте полный путь к oscript, у планировщика свой PATH.
Как удалить OneScript полностью?
На Windows — через «Программы и компоненты», затем проверьте, что путь к bin ушёл из PATH. На Linux — sudo apt remove onescript-engine. Локальные oscript_modules в проектах удаляются вручную.