Начало работы с OneScript







Краткая инструкция по установке и начале работы с OneScript. Пишу потому что сам много шишек набил, пока нашел все инструменты.
В статье рассмотрены:
1) Установка OneScript.
2) Установка редактора кода.
3) Настройка редактора кода под OneScript.
4) Запуск скриптов из редактора кода
5) Полезные ссылки

Те, кто нашел данную статью или уже знакомы с OneScript или начинают свое знакомство. Поэтому писать, что это, смысла не вижу, если не знаете, то вам сюда: http://oscript.io

Сразу по пунктам: 

1) Установка OneScript

Этот пункт здесь просто потому, что он должен быть для логической целостности. Процесс установки подробно расписан на сайте проекта и не нуждается в дополнительном пояснении. Если кто-то все же не нашел, вот ссылка: http://oscript.io/docs/page/install.

2) Установка редактора кода.

После установки мы можем писать код в редакторе, который предоставляет пакет установки. Однако, на мой взгляд, он крайне неудобен и после первого скрипта я полез искать наиболее удобные редакторы. Неплохой вариант представлен в этой статье: //infostart.ru/public/327581/. Там автор предлагает писать код в Notepad++. Идея неплохая, однако у Microsoft есть замечательный редактор кода, практически для любого языка, называется Visual Studio Code.

Плюсы:

+ Легкий, маленький
+ Поддерживает огромное количество языков
+ Легко устанавливается и настраивается
+ Не нужны права администратора (необходимо скачать *.zip архив)

Это те плюсы которые я отметил за то недолгое время, что успел с ним поработать, теперь перейдем к установке.

Первое что необходимо сделать, это перейти на оф сайт и скачать сам редактор.
Ссылка на сайт: https://code.visualstudio.com

Сразу же на стартовой странице можно скачать последнюю стабильную сборку.

Установка проходит в стандартном режиме ("Далее, далее, далее, установить").

3) Настройка редактора.

Тут наверное самый сахар и заключен. Во первых установка поддержки языка OneScript "из коробки".

Для этого необходимо:

  • Запустить VS Code
  • Перейти в расширения
  • В строке поиска написать "Language 1C (BSL)"
  • Нажать "Установить".

В принципе на этом можно закончить. Однако для удобства я еще поставил "Visual Studio Keymap" — это настройка горячих клавиш. И настроил некоторые сочетания, так, как это настроено в конфигураторе.

Настройка сочетаний клавиш выполняется в меню "Файл" — "Параметры" — "Сочетания клавиш".

4) Запуск скриптов из редактора кода.

Для начала сразу хочу описать один момент. Несмотря на то, что расширение языка уже установлено, если вы создадите новый файл (Untitled) и начнете в нем писать код, никакой подсветки синтаксиса вы не увидите. Для "включения" подсветки есть 2 пути, подходит любой:

1) Необходимо сохранить файл с одним из расширений OneScript (*.bsl или *.os).

До сохранения:

После сохранения:

2) Необходимо в правом нижнем углу выбрать необходимый языковой режим

Результат (файл не сохранен)

Теперь, что касается непосредственно запуска.

  • Первое что необходимо сделать это создать папку. У меня это будет "C:Test_1C"
  • Далее в VS Code необходимо открыть эту папку через меню "Файл" — "Открыть папку".

Папка должна отобразиться в меню слева как на картинке 

Если дерево папок не видно, то нажмите на значок "Проводник" в меню слева.

Теперь необходимо нажать "F1" и выполнить следующую команду "Language 1C (BSL): Create tasks.json for current workspace", в результате должна появиться папка ".vscode".

Если по каким-то причинам данный способ недоступен, то можно создать данную папку и файл внутри вручную. Как именно описано тут: https://github.com/xDrivenDevelopment/vsc-language-1c-bsl/wiki/Запуск-скриптов-.os-.bsl-с-помощью-OneScript.

Для запуска скрипта есть 2 варианта либо с помощью сочетания клавиш "Ctrl-Shift-B" либо через команду "Run Task" (F1 — "Run Task"). Сообщения скрипта будут отображаться в стандартном окне вывода информации.

При запуске через команду вам будет предложено 4 варианта запуска, Run, Make, Chek и Compile, по умолчанию запускается Run.

Подробную информацию о каждом режиме запуска можно найти в разделе документации OneScript. Ссылка: http://oscript.io/docs/page/running.
Пример вывода информации изображен ниже

5) Полезные ссылки

П.С. Список ссылок маловат, перечислил те, что лично меня очень заинтересовали. Если у вас интересные предложения, пишите в комментарии, статья будет обновляться.

Список ресурсов:

 

53 Comments

  1. baton_pk
    Минусы:

    — Необходимы права администратора для установки

    https://code.visualstudio.com/download , а там:

    Reply
  2. DenisCh

    А ванскрипт устанавливать не надо? Там админ нужен

    Reply
  3. Stepa86

    (2) Не надо, так же можно в папочке оставить

    Reply
  4. DmitrySinichnikov

    (1) Спасибо, поправил статью. Теперь это плюс)))

    Reply
  5. sssss_aaaaa_2011

    Цитата из п.4

    «Для «включения» подсветки необходимо сохранить файл с одним из расширений OneScript (*.bsl или *.os). После чего вы сразу же увидите раскраску синтаксиса.»

    Не совсем верно. Сохранять необязательно. Можно кликнуть по типу текста в правой части строки статуса (там все надписи кликабельны) и выбрать нужный из списка с контекстным поиском.

    Reply
  6. DmitrySinichnikov

    (5) Спасибо, поправил.

    Reply
  7. Evil Beaver
    Там автор предлагает писать код в Notepad++. Идея неплохая, однако у Microsoft есть замечательный редактор кода

    Отличная ремарка! Стоит, правда, заметить, автор этой статьи (он же автор 1script, то есть я) предлагал использовать N++, только потому, что ничего другого на тот момент не было. И именно поэтому, в сообществе родилась идея сделать полноценный редактор, который с блеском сделали @bambr1975 и @nixel2007.

    Кстати, только что поймал себя на мысли, что у них у обоих в никах есть год. Забавное совпадение, да?

    Вернемся, к статье. Спасибо, что написали, как раз не хватало такой, более современной. Теперь людям станет чуть проще начинать. Хотел бы, чтобы таких статей от вас стало еще больше. Нам, как авторам всего этого, часто сложно поставить себя на место человека, который все это видит в первый раз, т.к. у нас уже глаз замылился. Пишите еще!

    Reply
  8. iolko

    А есть ли возможность запустить отладку скрипта, просмотр значений переменных в отладке, если да то как это сделать. Все вышеперечисленное настроил и все работает как надо, но вот про отладку ни где не нашел.

    Reply
  9. DmitrySinichnikov

    (7) Спасибо за ваш комментарий. Я предполагал что на момент написания вашей статьи не было иных вариантов, специально смотрел дату публикации. Однако так как статья обновлялась решил не вдаваться в подробности и оставить ваш способ как аналогию, если мой вариант кому-либо не подойдет.

    Reply
  10. artbear

    (8) Отладчик недавно заработал в ночной сборке.

    Инструкции пока есть только где-то в основном чате проекта https://gitter.im/EvilBeaver/OneScript

    Reply
  11. nvv1970

    (9)

    Visual Studio Code был анонсирован 29 апреля 2015 года компанией Microsoft

    14 апреля 2016 года Visual Studio Code вышел из стадии бета-тестирования

    VSC условно два года… Меньше, чем OS. VSC — приятная штучка.

    Reply
  12. grumagargler

    Парни, вопрос глупейший, но ответа не нашел, в двух словах – зачем оно? Ведь можно поставить стандартную 1С и возможностей будет существенно больше, работа с базой например. Если речь о стоимости лицензии – ну ведь можно учебную версию поставить. Если я сильно заблуждаюсь – ваш ответ будет полезен всем, у кого засел такой же вопрос.

    Reply
  13. Evil Beaver

    (12) Ближайшая аналогия — bat файл. Или скрипт на питоне. Чтобы быстренько что-то автоматически сделать коротким куском кода. Например, отсортировать свои фотки и разложить по каталогам ГодМесяц

    Ставить для этого учебную 1С с целой базой данных? Да ну, я лучше в блокнотике напишу маленький скрипт и выполню. И мне не придется учить питон или bat вспоминать, я напишу сразу на 1С

    Reply
  14. artbear

    (12) 1С запускается долго, даже файловая база на ССД 🙁

    скрипты работают намного быстрее.

    Reply
  15. Evil Beaver

    (14) я к тому и веду. Скрипты — это простые текстовые файлы, которые можно запустить сразу же. Им не нужно создавать проект в IDE, не нужно запускать 1С… Написал и сразу запустил.

    Reply
  16. grumagargler

    (13) (14) Понял, спасибо.

    Reply
  17. artbear

    (16) Опять же, версионировать текстовые файлы намного проще, чем код в 1С.

    Часто бывает легче подключить на новой машине и т.п.

    Reply
  18. grumagargler

    (17) у меня видимо задач таких не стояло. Да, есть конечно служебная конфигурация с обработками, но мне там данные как правило нужны, настройки всякие, нужна отладка, рефакторинг, журнал регистрации, и другие привычные вещи. Также, не нужно думать стоит ли на сервере .нет4, редакторы с плагинами, библиотеки скриптов. Версионировать не приходилось, простой выгрузки/загрузки всегда было достаточно, всё в одном месте, в одном файле.

    Но еще раз, разработчики onescript проделали огромную работу и кажется, что потенциал у решения огромный, просто пока не возникало необходимости.

    Reply
  19. Evil Beaver

    (18) Как это не возникало? А базы 1С-ные вы обновляете? Неужто руками?

    А ведь можно готовый инструмент взять на 1script и, попивая чай, наблюдать за процессом обновления.

    И релизы свежие качать самому, да в папки складывать не пристало дворянину. Пусть крепостные роботы занимаются.

    Reply
  20. grumagargler

    (19) имеется ввиду, что не требовалось версионировать сами скрипты (в моем случае — обработки). Они делают свою работу, да и всё. Если нужно что-то доработать — в этой служебной базе и дорабатывается. Там же и расписание делается. Всё топорно надо сказать, нет у меня разветвленной разработки служебных обработок, но нам пока хватает.

    Reply
  21. nvv1970

    (19)

    Как это не возникало? А базы 1С-ные вы обновляете? Неужто руками?

    Вероятно целевая аудитория функционально сильно разнится. Программисты, админы… Часто делят эти обязанности по разворотам баз, обновлениям тестовых и т.п. И в итоге оказывается, что «обновлениями» и прочей рутинной работой занимаются админы, знающие скрипты, но далекие от 1с. А программисты если занимаются какими либо «обновлениями», то это чаще может быть ручная работа, по выборочному переносу объектов и пр. Как-то так в жизни сложилось ( хотя у всех очень по разному.

    Я вот облизываюсь функционалом, интересно, а применить негде и некогда…

    «Чай пить и смотреть» ? ))) Грустно рассмешили. Обычно автоматизируемся, не для того, чтобы больше отдыхать, а для того, чтобы еще больше работать (((

    Reply
  22. artbear

    Ну почему негде применить?

    для разработчика также полно задач.

    1 Прогнать локальную сборку — собрать пустую тест.базу из исходников или из хранилища,

    выполнить начальное заполнение для БСП-совместимых баз, выполнить первоначальное заполнение тестовыми данными,

    выполнить прогон тестов (дымовые, приемочные и т.п.), получить успех/неуспех тестов, выполнить статический анализ кода,

    получить нормальный отчет о тестировании.

    2 синхронизировать хранилище 1С с гитом, чтобы получить всякие фишки — и связь с трекером задач, и статический анализ кода, и код-ревью, и т.п. и т.д.

    3 запустить инструменты разработчика для нужной базы в нужном клиентском режиме с отключением ненужных вопросов

    и т.п. и т.д.

    Reply
  23. grumagargler

    (22) т.е. сделать это на 1С, без onescript было бы невозможно?

    Небольшое уточнение: мой изначальный вопрос был технологический, т.е. есть зачем onescript нужен как таковой, и ответ на этот вопрос я уже получил.

    Reply
  24. DmitrySinichnikov

    (23) возможно, только это вопрос можно задать любому языку. Зачем на вообще что-то еще если есть c++.

    Везде есть свою бонусы, тут кстати проще всего выполнить задачи, описанные Артуром.

    Reply
  25. grumagargler

    (24) Конечно можно, только я не об этом говорю. Если бы я разработал свой компилятор к языку с++, я был бы готов к вопросам — а зачем вы это сделали? И ответ я получил — «наш компилятор лучше-выше-бестрее». А то, что на нем написаны библиотеки, уже немного не то, ведь их поидее, можно запускать и под обычной 1С (перевести в формат обработок).

    Reply
  26. Stepa86

    (25) Приведу свои примеры.

    1) ОСкрипт работает значительно шустрее, чем аналогичный код в обработке. Я это хорошо прощупал при разработке https://infostart.ru/public/635970/ .Т.к. в оскрипте отладчика еще нет, то я разрабатывал все форматирование в обычной обработке, а затем тупо копипастил в файл .os . И один и тот же код в скрипте отрабатывает значительно быстрее, чем в обработке. Да и не смог бы форматирование я сделать чисто на 1Ске — это или экземпляр держать, куда слать данные, либо каждый раз стартовать 1Ску, что несколько долго

    2) Код в оскрипте это может быть один файл, который можно открыть любым редактором и который просто замечательно версионируется. Самая простая обработка раскладывается просто в кучу файлов, в которых значительно сложнее ориентироваться. Тут опять приходится запускать 1Ску и только 1Ску и смотреть, чо там.

    3) Для околопрограммистких штук оскрипт подходит просто идеально. Я на нем написал скрипты по деплою и разворачиванию базы https://infostart.ru/public/617478/ которые очень помогают. Чтоб развернуть свежую копию из рабочей базы — мне нужно сделать двойной клик по одному ярлыку. И так же выкатывается обновление на рабочую базу

    4) Стрельнуло тут получать в 1Ску данные из скуда оперативно по пикам с конкретного приемника. Админы не очень умеют в программирование, а программисты 1С не очень умеют в скуд. Нашли выход — на той машине, где крутится скуд валяется батничек от оскрипта. скуд его запускает и передает ИД карты и ИД приемника. Скрипт делает http-запрос в 1Ску и там уже нужная логика отрабатывает. Да, это все велосипеды и костыли, но было написано, запущено в бой и закрыло проблему за полдня.

    Reply
  27. artbear

    Кстати, да, код 1скрипта работает значительно шустрее кода 1С 🙂

    И это даже без доп.затрат на запуск самой простой базы 1С.

    Reply
  28. komradz

    Проект конечно интересный, но меня все равно не отпускает мысль почему бы для этого всего не использовать Python. Который имеет овердофига открытых библиотек по работе со всем чем только можно. А при желании можно было просто написать новый пакет для упрощения подключенияработе с 1С. Сам язык наипростейший и учится за пару вечеров.

    Reply
  29. baton_pk

    (28)

    почему бы для этого всего не использовать Python

    ну так почему бы и не использовать?

    Reply
  30. artbear

    (28) Использовать можно, но кто, кроме автора, в дальнейшем сможет сопровождать/поддерживать/дорабатывать.

    У нас уже есть такой опыт.

    Ответ — никто 🙁

    Reply
  31. vikad
    Теперь необходимо нажать «F1» и выполнить следующую команду «Language 1C (BSL): Create tasks.json for current workspace», в результате должна появиться папка «.vscode».

    Вышел новый релиз плагина https://github.com/xDrivenDevelopment/vsc-language-1c-bsl/releases/tag/v1.10.0

    Удалена команда Create tasks.json for current workspace. Вместо нее используется TasksApi VSCode 1.17.Переработана работа с тасками — новое API от VSCode позволило избавится от необходимости создания tasks.json для запуска простейших задач.

    Теперь, находясь в открытом os-файле достаточно просто нажать F1 — выбрать команду «Задачи:Выполнить задачу» (или даже сразу нажать комбинацию Ctrl+Shift+B, если нужно выполнить задачу запуска os-файла) и будет выведен выпадающий список, где доступны все основные команды запуска и обработки os-файлов

    P.S. Есть тонкость — в каталоге .vscode открытой папки не должно содержаться файла task.json, где в качестве версии указана версия 0.1.0 — в этом случае новое API не срабатывает и отрабатывают задачи, указанные в файле task.json.

    P.P.S. Более подробно о новом TasksApi VSCode можно прочитать по ссылке https://code.visualstudio.com/docs/editor/tasks

    Reply
  32. DmitrySinichnikov

    (31) Спасибо, ознакомлюсь и поправлю статью

    Reply
  33. Crush

    Прикольная штука. Начал по инструкции, запутался, как то сам случайно поставил. Текст подсвечивается, код исполняется, отладчик останавливается на точке. В экзешник пока не разобрался как компилить, но это особо то и не важно. при необходимости в командной строке можно сделать.



    Спасибо за интересный инструмент. Во вложении картинка чего устанавливал и какой результат в открытой папке получился.

    Reply
  34. tp_home@mail.ru

    Здравствуйте.

    Помогите пожалуйста.

    Про попытке закпуска скрипта выходит алерт (слева внизу).

    Скрипт не исполняется.

    Reply
  35. tp_home@mail.ru

    (34)

    Terminal with ID 1 does not exist (has it already been disposed?)

    Error: Cannot read property ‘provideBslScripts’ of undefined

    Reply
  36. binex

    (35) Так и что это? Выяснили?

    Reply
  37. mirco

    (36) Возможно в PATH не прописан путь к

    C:Program Files (x86)OneScriptin (ну или какая там у вас директория)

    Reply
  38. s_vidyakin

    (37) у меня прописано, но ошибка есть. Напрямую в консоли скрипты выполняются

    Reply
  39. bogdan_sukonnov

    Подскажет ли кто-нибудь как получить подсказки по синтаксису установленных библиотек? oscript-config я вроде поставил (насколько могу судить). Или хотя бы направьте где искать или где задавать вопрос. Очень тяжело ориентироваться в этом всем почему-то….

    Reply
  40. nixel

    (39) если еще актуально — приходите в ишузы на https://github.com/1c-syntax/vsc-language-1c-bsl или в телеграм-чат https://t.me/oscript_library

    Reply
  41. Oldsad

    скачал редактор VSC, в нем все на английском, а на скриншотах в статье все меню на русском, ЧЯНД?

    Reply
  42. spacecraft

    (41) установить пакет русской локализации.

    https://code.visualstudio.com/docs/getstarted/locales

    Если кратко, то:

    1. Ctrl+Shift+X Находим Russian Language Pack for VS Code. Устанавливаем.

    2. Ctrl+Shift+P Находим Configure Display Language. Вместо en записываем ru

    3. Перезагружаем VSC

    Reply
  43. Oldsad

    (42)

    спасибо, получилось )

    Reply
  44. Solikamsk

    Скачал змею. Запустил. А почему я точку останова не могу поставить?

    Reply
  45. Solikamsk

    Может всё-таки кто-нибудь подскажет почему я не могу отладку запустить? Как только вхожу в режим отладки в логах ошибка

    [2019-07-25 16:40:34.031] [renderer1] [error] net::ERR_NAME_NOT_RESOLVED: Error: net::ERR_NAME_NOT_RESOLVED

    Reply
  46. Solikamsk

    Я похоже на простой вещи туплю.. А как создаете .csproj ? Я его просто скопировал с типового HelloWorld. А иначе у меня вообще никак и никуда не двигалось..

    Reply
  47. Evil Beaver

    Вы чего то не то делаете, какой csproj?

    Reply
  48. vikad

    (46) Судя по скриншоту, вы не тот отладчик запускаете.

    Цитата из https://infostart.ru/public/791568/#_Toc508101026

    Для упрощения запуска и получения возможностей отладки, установим отладчик OneScript для Visual Studio Code. Если вы используете «стабильную» версию движка OneScript, то вы можете установить его через MarketPlace, встроенный в VSCode — имя пакета OneScript Debug. Если вы используете «ночную» версию движка, то необходимо скачать файл с расширением «vsix» со страницы http://oscript.io/downloads и установить его вручную через команду «Установка из VSIX» в VSCode

    Перечитайте статью по ссылке, начиная со слов

    Но мы же не просто так ставили отладчик?
    Reply
  49. Solikamsk

    (48)

    вы не тот отладчик запускаете

    Спасибо, заработало!

    Работа с отладчиком в создании библиотек. Я эту статью на потом оставил, оказалось вот оно что 🙂

    Reply
  50. NightBreez

    Подскажите пожалуйста, не получается подключить конфигурационный файл и перенастроить стандартные ограничения «maxMethodSize, maxLineLength». В инструкции сказано нужно создать файл «.bsl-language-server.json» и разместить его в рабочую область (я так понимаю в папку .vscode) примерно следующего содержания:

    {

    «diagnosticLanguage»: «ru»,

    «diagnostics»: {

    «LineLength»: {

    «maxLineLength»: 140

    },

    «MethodSize»: false

    }

    }

    Но даже при перезапуске отрабатывает стандартное ограничение.

    Reply
  51. zhenyat

    Коллеги подскажите, почему VSCode запускается только от админристратора?

    И после запуска в консоли появляются такие ошибки:

    [Info — 16:58:25] Connection to server got closed. Server will restart.

    [Info — 16:58:25] Connection to server got closed. Server will restart.

    [Info — 16:58:26] Connection to server got closed. Server will restart.

    [Info — 16:58:26] Connection to server got closed. Server will restart.

    [Error — 16:58:26] Connection to server got closed. Server will not be restarted.

    Reply
  52. zhenyat

    (51)Помогли разобраться в телеграмме https://t.me/oscript_library

    Reply
  53. Сто27001

    (51) для истории и тех, у кого нет телеги:

    1) VSC необходимо устанавливать под непривилегированным пользователем

    2) Необходимо установить Java JDK (не JRE)

    3) В переменной PATH добавить путь к in JDK, например «C:Program FilesJavajdk-13.0.1in»

    Тестировалось на Win10.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *