Автоматизация · 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С и не хочет осваивать Python или PowerShell
Работа идёт с файлами, сетью и операционной системой, а не с объектами базы
Установка OneScript на Windows и Linux
Для Windows проект распространяет установщик, который разворачивает интерпретатор и прописывает путь к нему в переменной окружения PATH. После установки достаточно открыть новое окно командной строки и проверить доступность команды. Отдельно распространяется zip-архив для портабельного использования без установки — удобно для серверов, где нет прав администратора.
На Linux интерпретатор работает через .NET (актуальные версии OneScript используют кроссплатформенную среду выполнения). Установка обычно сводится к установке зависимостей .NET и распаковке дистрибутива либо использованию готового пакета. Точный набор шагов зависит от дистрибутива, поэтому сверяйтесь с документацией проекта на момент установки.
oscript --versionЕсли команда выводит номер версии — интерпретатор установлен корректно. Если система сообщает, что команда не найдена, проверьте переменную PATH и перезапустите терминал: изменения окружения не подхватываются в уже открытых окнах командной строки.
- 1Скачайте установщик или архив с официального репозитория проекта
- 2Установите интерпретатор или распакуйте архив в постоянный каталог
- 3Откройте новое окно терминала и выполните oscript --version
- 4Создайте файл hello.os с содержимым: Сообщить("Привет, OneScript");
- 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. Он устанавливается вместе с интерпретатором и позволяет одной командой подтянуть готовую библиотеку из публичного хаба пакетов вместе с зависимостями.
opm install vanessa-runnerПосле установки библиотека подключается в скрипте директивой #Использовать либо вызывается как самостоятельная консольная утилита, если пакет предоставляет собственную команду. Список установленных пакетов показывает команда opm list, обновление выполняется через opm update.
Ограничения и типичные ошибки
Главное ограничение уже упоминалось: OneScript не работает с информационной базой 1С напрямую. Нельзя написать Документы.РеализацияТоваров.Выбрать() — такого объекта в интерпретаторе нет. Если задача требует чтения или записи данных базы, варианты такие: запускать обработку через конфигуратор в пакетном режиме (это умеет, например, vanessa-runner), обращаться к базе через HTTP-сервисы, опубликованные на веб-сервере, или использовать COM-соединение из скрипта на Windows.
Вторая группа ограничений — неполная совместимость языка. Отдельные функции платформы могут отсутствовать или вести себя иначе. Перед переносом нетривиального кода из конфигурации в скрипт проверяйте поддержку используемых методов в документации OneScript.
Когда OneScript не подходит и что использовать вместо него
Если задача — массовая обработка данных внутри информационной базы, правильный инструмент — внешняя обработка или регламентное задание в самой конфигурации. Если нужен универсальный скриптовый язык для задач, не связанных с 1С, рациональнее взять PowerShell или Python: у них больше библиотек общего назначения и шире сообщество.
Сравнение вариантов автоматизации
Задачи вокруг разработки 1С: хранилище, Git, сборка, тесты, файловые операции. Не работает с данными базы напрямую
Обновление баз, загрузка и выгрузка конфигураций, запуск обработок. Требует установленной платформы и лицензии
Работа с данными конкретной базы. Выполняются только внутри платформы
Универсальная автоматизация ОС и инфраструктуры без привязки к экосистеме 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С достаточно, отдельный новый язык учить не придётся.