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

Программирование - Практика программирования

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

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

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

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

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

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

После установки мы можем писать код в редакторе, который предоставляет пакет установки. Однако, на мой взгляд, он крайне неудобен и после первого скрипта я полез искать наиболее удобные редакторы. Неплохой вариант представлен в этой статье: //catalog.mista.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) Полезные ссылки

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

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

 

См. также

Комментарии
1. Сергѣй Батанов (baton_pk) 212 18.10.17 15:58 Сейчас в теме
Минусы:

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


https://code.visualstudio.com/download , а там:
Прикрепленные файлы:
JohnyDeath; DmitrySinichnikov; vikad; +3 Ответить
4. Дмитрий Синичников (DmitrySinichnikov) 102 18.10.17 17:23 Сейчас в теме
(1) Спасибо, поправил статью. Теперь это плюс)))
2. DenisCh Гейтс (DenisCh) 18.10.17 16:01 Сейчас в теме
А ванскрипт устанавливать не надо? Там админ нужен
3. Антон Степанов (Stepa86) 885 18.10.17 16:02 Сейчас в теме
(2) Не надо, так же можно в папочке оставить
5. Сергей Сизов (sssss_aaaaa_2011) 18.10.17 17:36 Сейчас в теме
Цитата из п.4
"Для "включения" подсветки необходимо сохранить файл с одним из расширений OneScript (*.bsl или *.os). После чего вы сразу же увидите раскраску синтаксиса."
Не совсем верно. Сохранять необязательно. Можно кликнуть по типу текста в правой части строки статуса (там все надписи кликабельны) и выбрать нужный из списка с контекстным поиском.
6. Дмитрий Синичников (DmitrySinichnikov) 102 18.10.17 22:56 Сейчас в теме
7. Андрей Овсянкин (Evil Beaver) 4390 19.10.17 11:33 Сейчас в теме
Там автор предлагает писать код в Notepad++. Идея неплохая, однако у Microsoft есть замечательный редактор кода


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

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

Вернемся, к статье. Спасибо, что написали, как раз не хватало такой, более современной. Теперь людям станет чуть проще начинать. Хотел бы, чтобы таких статей от вас стало еще больше. Нам, как авторам всего этого, часто сложно поставить себя на место человека, который все это видит в первый раз, т.к. у нас уже глаз замылился. Пишите еще!
Smirnov1980; +1 Ответить
9. Дмитрий Синичников (DmitrySinichnikov) 102 19.10.17 11:55 Сейчас в теме
(7) Спасибо за ваш комментарий. Я предполагал что на момент написания вашей статьи не было иных вариантов, специально смотрел дату публикации. Однако так как статья обновлялась решил не вдаваться в подробности и оставить ваш способ как аналогию, если мой вариант кому-либо не подойдет.
11. Uladzimir - (nvv1970) 19.10.17 13:11 Сейчас в теме
(9)
Visual Studio Code был анонсирован 29 апреля 2015 года компанией Microsoft
14 апреля 2016 года Visual Studio Code вышел из стадии бета-тестирования

VSC условно два года... Меньше, чем OS. VSC - приятная штучка.
8. Алексей _ (iolko) 160 19.10.17 11:51 Сейчас в теме
А есть ли возможность запустить отладку скрипта, просмотр значений переменных в отладке, если да то как это сделать. Все вышеперечисленное настроил и все работает как надо, но вот про отладку ни где не нашел.
10. Артур Аюханов (artbear) 894 19.10.17 12:04 Сейчас в теме
(8) Отладчик недавно заработал в ночной сборке.
Инструкции пока есть только где-то в основном чате проекта https://gitter.im/EvilBeaver/OneScript
12. Решитко Дмитрий (grumagargler) 328 19.10.17 17:55 Сейчас в теме
Парни, вопрос глупейший, но ответа не нашел, в двух словах – зачем оно? Ведь можно поставить стандартную 1С и возможностей будет существенно больше, работа с базой например. Если речь о стоимости лицензии – ну ведь можно учебную версию поставить. Если я сильно заблуждаюсь – ваш ответ будет полезен всем, у кого засел такой же вопрос.
13. Андрей Овсянкин (Evil Beaver) 4390 19.10.17 18:11 Сейчас в теме
(12) Ближайшая аналогия - bat файл. Или скрипт на питоне. Чтобы быстренько что-то автоматически сделать коротким куском кода. Например, отсортировать свои фотки и разложить по каталогам Год\Месяц

Ставить для этого учебную 1С с целой базой данных? Да ну, я лучше в блокнотике напишу маленький скрипт и выполню. И мне не придется учить питон или bat вспоминать, я напишу сразу на 1С
16. Решитко Дмитрий (grumagargler) 328 19.10.17 19:26 Сейчас в теме
17. Артур Аюханов (artbear) 894 19.10.17 19:50 Сейчас в теме
(16) Опять же, версионировать текстовые файлы намного проще, чем код в 1С.
Часто бывает легче подключить на новой машине и т.п.
18. Решитко Дмитрий (grumagargler) 328 19.10.17 20:24 Сейчас в теме
(17) у меня видимо задач таких не стояло. Да, есть конечно служебная конфигурация с обработками, но мне там данные как правило нужны, настройки всякие, нужна отладка, рефакторинг, журнал регистрации, и другие привычные вещи. Также, не нужно думать стоит ли на сервере .нет4, редакторы с плагинами, библиотеки скриптов. Версионировать не приходилось, простой выгрузки/загрузки всегда было достаточно, всё в одном месте, в одном файле.
Но еще раз, разработчики onescript проделали огромную работу и кажется, что потенциал у решения огромный, просто пока не возникало необходимости.
19. Андрей Овсянкин (Evil Beaver) 4390 19.10.17 21:35 Сейчас в теме
(18) Как это не возникало? А базы 1С-ные вы обновляете? Неужто руками?

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

И релизы свежие качать самому, да в папки складывать не пристало дворянину. Пусть крепостные роботы занимаются.
20. Решитко Дмитрий (grumagargler) 328 19.10.17 22:10 Сейчас в теме
(19) имеется ввиду, что не требовалось версионировать сами скрипты (в моем случае - обработки). Они делают свою работу, да и всё. Если нужно что-то доработать - в этой служебной базе и дорабатывается. Там же и расписание делается. Всё топорно надо сказать, нет у меня разветвленной разработки служебных обработок, но нам пока хватает.
21. Uladzimir - (nvv1970) 19.10.17 23:52 Сейчас в теме
(19)
Как это не возникало? А базы 1С-ные вы обновляете? Неужто руками?
Вероятно целевая аудитория функционально сильно разнится. Программисты, админы... Часто делят эти обязанности по разворотам баз, обновлениям тестовых и т.п. И в итоге оказывается, что "обновлениями" и прочей рутинной работой занимаются админы, знающие скрипты, но далекие от 1с. А программисты если занимаются какими либо "обновлениями", то это чаще может быть ручная работа, по выборочному переносу объектов и пр. Как-то так в жизни сложилось ( хотя у всех очень по разному.
Я вот облизываюсь функционалом, интересно, а применить негде и некогда...
"Чай пить и смотреть" ? ))) Грустно рассмешили. Обычно автоматизируемся, не для того, чтобы больше отдыхать, а для того, чтобы еще больше работать (((
14. Артур Аюханов (artbear) 894 19.10.17 19:01 Сейчас в теме
(12) 1С запускается долго, даже файловая база на ССД :(
скрипты работают намного быстрее.
15. Андрей Овсянкин (Evil Beaver) 4390 19.10.17 19:23 Сейчас в теме
(14) я к тому и веду. Скрипты - это простые текстовые файлы, которые можно запустить сразу же. Им не нужно создавать проект в IDE, не нужно запускать 1С... Написал и сразу запустил.
22. Артур Аюханов (artbear) 894 20.10.17 00:30 Сейчас в теме
Ну почему негде применить?
для разработчика также полно задач.
1 Прогнать локальную сборку - собрать пустую тест.базу из исходников или из хранилища,
выполнить начальное заполнение для БСП-совместимых баз, выполнить первоначальное заполнение тестовыми данными,
выполнить прогон тестов (дымовые, приемочные и т.п.), получить успех/неуспех тестов, выполнить статический анализ кода,
получить нормальный отчет о тестировании.
2 синхронизировать хранилище 1С с гитом, чтобы получить всякие фишки - и связь с трекером задач, и статический анализ кода, и код-ревью, и т.п. и т.д.
3 запустить инструменты разработчика для нужной базы в нужном клиентском режиме с отключением ненужных вопросов
и т.п. и т.д.
23. Решитко Дмитрий (grumagargler) 328 21.10.17 04:35 Сейчас в теме
(22) т.е. сделать это на 1С, без onescript было бы невозможно?
Небольшое уточнение: мой изначальный вопрос был технологический, т.е. есть зачем onescript нужен как таковой, и ответ на этот вопрос я уже получил.
24. Дмитрий Синичников (DmitrySinichnikov) 102 21.10.17 06:57 Сейчас в теме
(23) возможно, только это вопрос можно задать любому языку. Зачем на вообще что-то еще если есть c++.
Везде есть свою бонусы, тут кстати проще всего выполнить задачи, описанные Артуром.
25. Решитко Дмитрий (grumagargler) 328 21.10.17 16:02 Сейчас в теме
(24) Конечно можно, только я не об этом говорю. Если бы я разработал свой компилятор к языку с++, я был бы готов к вопросам - а зачем вы это сделали? И ответ я получил - "наш компилятор лучше-выше-бестрее". А то, что на нем написаны библиотеки, уже немного не то, ведь их поидее, можно запускать и под обычной 1С (перевести в формат обработок).
26. Антон Степанов (Stepa86) 885 21.10.17 17:28 Сейчас в теме
(25) Приведу свои примеры.
1) ОСкрипт работает значительно шустрее, чем аналогичный код в обработке. Я это хорошо прощупал при разработке https://infostart.ru/public/635970/ .Т.к. в оскрипте отладчика еще нет, то я разрабатывал все форматирование в обычной обработке, а затем тупо копипастил в файл .os . И один и тот же код в скрипте отрабатывает значительно быстрее, чем в обработке. Да и не смог бы форматирование я сделать чисто на 1Ске - это или экземпляр держать, куда слать данные, либо каждый раз стартовать 1Ску, что несколько долго
2) Код в оскрипте это может быть один файл, который можно открыть любым редактором и который просто замечательно версионируется. Самая простая обработка раскладывается просто в кучу файлов, в которых значительно сложнее ориентироваться. Тут опять приходится запускать 1Ску и только 1Ску и смотреть, чо там.
3) Для околопрограммистких штук оскрипт подходит просто идеально. Я на нем написал скрипты по деплою и разворачиванию базы https://infostart.ru/public/617478/ которые очень помогают. Чтоб развернуть свежую копию из рабочей базы - мне нужно сделать двойной клик по одному ярлыку. И так же выкатывается обновление на рабочую базу
4) Стрельнуло тут получать в 1Ску данные из скуда оперативно по пикам с конкретного приемника. Админы не очень умеют в программирование, а программисты 1С не очень умеют в скуд. Нашли выход - на той машине, где крутится скуд валяется батничек от оскрипта. скуд его запускает и передает ИД карты и ИД приемника. Скрипт делает http-запрос в 1Ску и там уже нужная логика отрабатывает. Да, это все велосипеды и костыли, но было написано, запущено в бой и закрыло проблему за полдня.
Evil Beaver; grumagargler; +2 Ответить
27. Артур Аюханов (artbear) 894 21.10.17 22:09 Сейчас в теме
Кстати, да, код 1скрипта работает значительно шустрее кода 1С :)
И это даже без доп.затрат на запуск самой простой базы 1С.
28. - - (komradz) 54 23.10.17 14:40 Сейчас в теме
Проект конечно интересный, но меня все равно не отпускает мысль почему бы для этого всего не использовать Python. Который имеет овердофига открытых библиотек по работе со всем чем только можно. А при желании можно было просто написать новый пакет для упрощения подключения\работе с 1С. Сам язык наипростейший и учится за пару вечеров.
29. Сергѣй Батанов (baton_pk) 212 23.10.17 14:57 Сейчас в теме
(28)
почему бы для этого всего не использовать Python

ну так почему бы и не использовать?
30. Артур Аюханов (artbear) 894 23.10.17 15:45 Сейчас в теме
(28) Использовать можно, но кто, кроме автора, в дальнейшем сможет сопровождать/поддерживать/дорабатывать.

У нас уже есть такой опыт.
Ответ - никто :(
31. Виктория Дорохина (vikad) 72 23.10.17 20:09 Сейчас в теме
Теперь необходимо нажать "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
Kosstikk; artbear; +2 Ответить
32. Дмитрий Синичников (DmitrySinichnikov) 102 24.10.17 00:13 Сейчас в теме
(31) Спасибо, ознакомлюсь и поправлю статью
Оставьте свое сообщение