К статье
Практический материал

Автоматизация · 11 мин

OneScript: что это такое и как использовать в работе с 1С

OneScript — это независимый интерпретатор языка 1С. Разбираем, что это, чем отличается от платформы 1С, как установить, запустить скрипты и где применять на практике.

OneScript (1Script) — это независимый от платформы 1С интерпретатор встроенного языка 1С:Предприятие, распространяемый с открытым исходным кодом. Он позволяет выполнять скрипты, написанные на знакомом любому 1С-разработчику синтаксисе, без запуска самой платформы: в командной строке, в планировщике задач, на серверах сборки и даже на Linux.

Проект развивается сообществом и не является продуктом фирмы «1С». Это важно понимать сразу: OneScript не заменяет платформу, не открывает информационные базы в привычном режиме предприятия и не выполняет прикладной код конфигураций. Его назначение — автоматизация задач вокруг 1С: сборка и разборка конфигураций, работа с хранилищем, запуск обработок, интеграция с системами контроля версий и CI/CD-конвейерами.

Типичный сценарий: разработчику нужно еженощно выгружать конфигурацию из хранилища в файлы исходников и отправлять их в Git. Вручную это долго и требует запуска конфигуратора. Через OneScript задача сводится к одному скрипту из нескольких строк, который запускается планировщиком по расписанию.

Что такое OneScript и чем он отличается от платформы 1С

Интерпретатор OneScript реализует значительную часть синтаксиса встроенного языка 1С:Предприятие 8: переменные, циклы, процедуры и функции, структуры, массивы, соответствия, работу с файлами, строками, датами, HTTP-запросами. Разработчик пишет код на привычном языке — с русскими или английскими ключевыми словами — и запускает его как обычный скрипт.

Ключевое отличие от платформы: в OneScript нет объектной модели прикладных решений. Нет справочников, документов, регистров, запросов к базе данных 1С, форм и механизмов СКД. Всё, что привязано к конкретной конфигурации и информационной базе, остаётся за пределами возможностей интерпретатора. Зато есть то, чего в платформе нет: нормальная работа из консоли, интеграция с операционной системой, запуск внешних программ, кроссплатформенность.

Файлы скриптов имеют расширение .os. Это обычные текстовые файлы, которые можно редактировать в любом редакторе, хранить в системе контроля версий и передавать между машинами без дополнительной настройки.

Какие задачи решает OneScript на практике

Основная область применения — инженерные практики вокруг разработки на 1С. Сообщество создало на базе OneScript целую экосистему инструментов, которые стали фактическим стандартом для командной разработки конфигураций.

  • Работа с хранилищем конфигурации: выгрузка версий, получение отчётов по истории, синхронизация с Git.
  • Сборка и разборка конфигураций и внешних обработок из исходных файлов.
  • Запуск синтаксической проверки, BDD-тестов и статического анализа кода.
  • Пакетная обработка файлов: переименование, конвертация, массовое изменение выгрузок.
  • Обмен данными с внешними сервисами через HTTP и REST API из планировщика задач.
  • Автоматизация рутинных операций администрирования: очистка каталогов, архивация копий, контроль наличия файлов обновлений.

Известные инструменты экосистемы, работающие на OneScript: пакетный менеджер opm, фреймворк запуска тестов 1testrunner, инструменты синхронизации хранилища с Git (gitsync, precommit1c), библиотека vanessa-runner для автоматизации типовых операций с конфигуратором. Большинство из них устанавливается одной командой через opm.

ЗадачаАвтоматизация вне базы 1С

Нужно запускать действия по расписанию без открытия конфигуратора или предприятия

СредаКонсоль, CI, Linux

Скрипт должен работать на сервере сборки или в планировщике задач

ЯзыкВстроенный язык 1С

Команда уже знает синтаксис 1С и не хочет осваивать Python или PowerShell

ДанныеФайлы, HTTP, ОС

Работа идёт с файлами, сетью и операционной системой, а не с объектами базы

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

Для Windows проект распространяет установщик, который разворачивает интерпретатор и прописывает путь к нему в переменной окружения PATH. После установки достаточно открыть новое окно командной строки и проверить доступность команды. Отдельно распространяется zip-архив для портабельного использования без установки — удобно для серверов, где нет прав администратора.

На Linux интерпретатор работает через .NET (актуальные версии OneScript используют кроссплатформенную среду выполнения). Установка обычно сводится к установке зависимостей .NET и распаковке дистрибутива либо использованию готового пакета. Точный набор шагов зависит от дистрибутива, поэтому сверяйтесь с документацией проекта на момент установки.

bash
oscript --version

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

Порядок установки и первого запуска
  1. 1
    Скачайте установщик или архив с официального репозитория проекта
  2. 2
    Установите интерпретатор или распакуйте архив в постоянный каталог
  3. 3
    Откройте новое окно терминала и выполните oscript --version
  4. 4
    Создайте файл hello.os с содержимым: Сообщить("Привет, OneScript");
  5. 5
    Запустите: oscript hello.os — в консоли должно появиться сообщение

Первый скрипт: синтаксис и запуск

Скрипт на OneScript выглядит как обычный модуль 1С без контекста конфигурации. Поддерживаются процедуры и функции, параметры командной строки через массив АргументыКоманднойСтроки, подключение библиотек директивой #Использовать. Код может быть написан как на русском, так и на английском синтаксисе.

// example.os

Перем Аргументы;

Аргументы = АргументыКоманднойСтроки;

Если Аргументы.Количество() = 0 Тогда

Сообщить("Передайте имя каталога параметром");

ЗавершитьРаботу(1);

КонецЕсли;

Каталог = Аргументы[0];

Файлы = НайтиФайлы(Каталог, "*.epf");

Для Каждого Файл Из Файлы Цикл

Сообщить("Найдена обработка: " + Файл.ПолноеИмя);

КонецЦикла;

Запуск выполняется командой oscript example.os C:\Обработки. Код возврата через ЗавершитьРаботу(1) важен для автоматизации: планировщики и CI-системы по ненулевому коду понимают, что скрипт завершился с ошибкой, и могут остановить конвейер или отправить уведомление.

Для отладки удобно использовать редактор с поддержкой языка 1С — например, Visual Studio Code с соответствующим расширением. Он даёт подсветку синтаксиса, автодополнение и возможность пошаговой отладки скриптов OneScript.

Установка библиотек через opm

Пакетный менеджер opm — аналог npm или pip для мира OneScript. Он устанавливается вместе с интерпретатором и позволяет одной командой подтянуть готовую библиотеку из публичного хаба пакетов вместе с зависимостями.

bash
opm install vanessa-runner

После установки библиотека подключается в скрипте директивой #Использовать либо вызывается как самостоятельная консольная утилита, если пакет предоставляет собственную команду. Список установленных пакетов показывает команда opm list, обновление выполняется через opm update.

Ограничения и типичные ошибки

Главное ограничение уже упоминалось: OneScript не работает с информационной базой 1С напрямую. Нельзя написать Документы.РеализацияТоваров.Выбрать() — такого объекта в интерпретаторе нет. Если задача требует чтения или записи данных базы, варианты такие: запускать обработку через конфигуратор в пакетном режиме (это умеет, например, vanessa-runner), обращаться к базе через HTTP-сервисы, опубликованные на веб-сервере, или использовать COM-соединение из скрипта на Windows.

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

Типичные ошибки при работе с OneScript
01
Попытка обратиться к объектам конфигурации из скрипта — такой код не выполнится, нужен запуск обработки внутри платформы
02
Запуск скрипта из старого окна терминала после установки — PATH не обновился, команда oscript не находится
03
Игнорирование кодов возврата — планировщик считает упавший скрипт успешным, ошибки остаются незамеченными
04
Хранение паролей к базам и хранилищам прямо в тексте скрипта — секреты попадают в систему контроля версий
05
Копирование кода из модулей конфигурации без проверки поддержки методов — часть функций платформы в интерпретаторе отсутствует

Когда OneScript не подходит и что использовать вместо него

Если задача — массовая обработка данных внутри информационной базы, правильный инструмент — внешняя обработка или регламентное задание в самой конфигурации. Если нужен универсальный скриптовый язык для задач, не связанных с 1С, рациональнее взять PowerShell или Python: у них больше библиотек общего назначения и шире сообщество.

Сравнение вариантов автоматизации

OneScript

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

Пакетный режим конфигуратора

Обновление баз, загрузка и выгрузка конфигураций, запуск обработок. Требует установленной платформы и лицензии

Внешние обработки и регламентные задания

Работа с данными конкретной базы. Выполняются только внутри платформы

PowerShell / Python

Универсальная автоматизация ОС и инфраструктуры без привязки к экосистеме 1С

В зрелых процессах эти инструменты комбинируются: OneScript выступает «клеем», который вызывает конфигуратор в пакетном режиме, формирует отчёты и раскладывает результаты по каталогам, а CI-сервер запускает цепочку по расписанию или по событию в репозитории.

Итог

Что важно запомнить

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

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

OneScript — это официальный продукт фирмы «1С»?

Нет. Проект разрабатывается независимым сообществом и распространяется бесплатно с открытым исходным кодом. Фирма «1С» его не разрабатывает и не поддерживает, хотя синтаксис языка повторяет встроенный язык платформы.

Можно ли из OneScript подключиться к базе 1С и прочитать документы?

Напрямую — нет, объектной модели конфигурации в интерпретаторе нет. Обходные пути: запуск обработки в пакетном режиме конфигуратора, обращение к HTTP-сервисам, опубликованным базой, или COM-соединение на Windows. Выбор зависит от того, где развёрнута база и какой объём данных нужно обработать.

Нужна ли лицензия 1С для работы OneScript?

Для самого интерпретатора лицензия не требуется — он не использует платформу. Но если скрипт вызывает конфигуратор или COM-соединение с базой, для этой части работы нужны установленная платформа и действующие лицензии в обычном порядке.

Работает ли OneScript на Linux без Windows?

Да, актуальные версии интерпретатора кроссплатформенны и работают на Linux через .NET. Это позволяет запускать скрипты на Linux-серверах сборки. Однако операции, требующие конфигуратора (сборка cf, обновление базы), на Linux ограничены возможностями самой платформы 1С.

Чем OneScript отличается от EDT и конфигуратора?

Конфигуратор и 1C:EDT — среды разработки конфигураций, OneScript — исполнитель скриптов. Он ничего не редактирует в конфигурации сам по себе, но может вызывать конфигуратор в пакетном режиме и оркестрировать процессы, которыми разработчик управляет вручную из IDE.

С чего начать изучение OneScript разработчику 1С?

Установите интерпретатор, напишите простой скрипт с обработкой параметров командной строки, затем освойте opm и одну прикладную библиотеку — например, gitsync для синхронизации хранилища с Git. Знания встроенного языка 1С достаточно, отдельный новый язык учить не придётся.