В статье рассмотрены:
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) Полезные ссылки
- Формы для 1script. Ссылка: //infostart.ru/public/540284/
- OneScript SQL — работа с СУБД. Ссылка: //infostart.ru/public/672461/
- Сайт Ушакова Сергея, интересный ресурс автора вышеописанных библиотек. Ссылка: http://itpath.ru
П.С. Список ссылок маловат, перечислил те, что лично меня очень заинтересовали. Если у вас интересные предложения, пишите в комментарии, статья будет обновляться.
Список ресурсов:
- Сайт проекта. Ссылка: http://oscript.io
- Установка OneScript. Ссылка: http://oscript.io/docs/page/install
- Решение повседневных задач с помощью OneScript. Ссылка: //infostart.ru/public/327581/
- Visual Studio Code. Ссылка: https://code.visualstudio.com
- Запуск скриптов из VS Code. Ссылка: https://github.com/xDrivenDevelopment/vsc-language-1c-bsl/wiki/Запуск-скриптов-.os-.bsl-с-помощью-OneScript
- Документация по запуску скриптов. Ссылка: http://oscript.io/docs/page/running
— Необходимы права администратора для установки
А ванскрипт устанавливать не надо? Там админ нужен
(2) Не надо, так же можно в папочке оставить
(1) Спасибо, поправил статью. Теперь это плюс)))
Цитата из п.4
«Для «включения» подсветки необходимо сохранить файл с одним из расширений OneScript (*.bsl или *.os). После чего вы сразу же увидите раскраску синтаксиса.»
Не совсем верно. Сохранять необязательно. Можно кликнуть по типу текста в правой части строки статуса (там все надписи кликабельны) и выбрать нужный из списка с контекстным поиском.
(5) Спасибо, поправил.
Отличная ремарка! Стоит, правда, заметить, автор этой статьи (он же автор 1script, то есть я) предлагал использовать N++, только потому, что ничего другого на тот момент не было. И именно поэтому, в сообществе родилась идея сделать полноценный редактор, который с блеском сделали @bambr1975 и @nixel2007.
Кстати, только что поймал себя на мысли, что у них у обоих в никах есть год. Забавное совпадение, да?
Вернемся, к статье. Спасибо, что написали, как раз не хватало такой, более современной. Теперь людям станет чуть проще начинать. Хотел бы, чтобы таких статей от вас стало еще больше. Нам, как авторам всего этого, часто сложно поставить себя на место человека, который все это видит в первый раз, т.к. у нас уже глаз замылился. Пишите еще!
А есть ли возможность запустить отладку скрипта, просмотр значений переменных в отладке, если да то как это сделать. Все вышеперечисленное настроил и все работает как надо, но вот про отладку ни где не нашел.
(7) Спасибо за ваш комментарий. Я предполагал что на момент написания вашей статьи не было иных вариантов, специально смотрел дату публикации. Однако так как статья обновлялась решил не вдаваться в подробности и оставить ваш способ как аналогию, если мой вариант кому-либо не подойдет.
(8) Отладчик недавно заработал в ночной сборке.
https://gitter.im/EvilBeaver/OneScript
Инструкции пока есть только где-то в основном чате проекта
(9)
14 апреля 2016 года Visual Studio Code вышел из стадии бета-тестирования
VSC условно два года… Меньше, чем OS. VSC — приятная штучка.
Парни, вопрос глупейший, но ответа не нашел, в двух словах – зачем оно? Ведь можно поставить стандартную 1С и возможностей будет существенно больше, работа с базой например. Если речь о стоимости лицензии – ну ведь можно учебную версию поставить. Если я сильно заблуждаюсь – ваш ответ будет полезен всем, у кого засел такой же вопрос.
(12) Ближайшая аналогия — bat файл. Или скрипт на питоне. Чтобы быстренько что-то автоматически сделать коротким куском кода. Например, отсортировать свои фотки и разложить по каталогам ГодМесяц
Ставить для этого учебную 1С с целой базой данных? Да ну, я лучше в блокнотике напишу маленький скрипт и выполню. И мне не придется учить питон или bat вспоминать, я напишу сразу на 1С
(12) 1С запускается долго, даже файловая база на ССД 🙁
скрипты работают намного быстрее.
(14) я к тому и веду. Скрипты — это простые текстовые файлы, которые можно запустить сразу же. Им не нужно создавать проект в IDE, не нужно запускать 1С… Написал и сразу запустил.
(13) (14) Понял, спасибо.
(16) Опять же, версионировать текстовые файлы намного проще, чем код в 1С.
Часто бывает легче подключить на новой машине и т.п.
(17) у меня видимо задач таких не стояло. Да, есть конечно служебная конфигурация с обработками, но мне там данные как правило нужны, настройки всякие, нужна отладка, рефакторинг, журнал регистрации, и другие привычные вещи. Также, не нужно думать стоит ли на сервере .нет4, редакторы с плагинами, библиотеки скриптов. Версионировать не приходилось, простой выгрузки/загрузки всегда было достаточно, всё в одном месте, в одном файле.
Но еще раз, разработчики onescript проделали огромную работу и кажется, что потенциал у решения огромный, просто пока не возникало необходимости.
(18) Как это не возникало? А базы 1С-ные вы обновляете? Неужто руками?
А ведь можно готовый инструмент взять на 1script и, попивая чай, наблюдать за процессом обновления.
И релизы свежие качать самому, да в папки складывать не пристало дворянину. Пусть
крепостныероботы занимаются.(19) имеется ввиду, что не требовалось версионировать сами скрипты (в моем случае — обработки). Они делают свою работу, да и всё. Если нужно что-то доработать — в этой служебной базе и дорабатывается. Там же и расписание делается. Всё топорно надо сказать, нет у меня разветвленной разработки служебных обработок, но нам пока хватает.
(19)
Вероятно целевая аудитория функционально сильно разнится. Программисты, админы… Часто делят эти обязанности по разворотам баз, обновлениям тестовых и т.п. И в итоге оказывается, что «обновлениями» и прочей рутинной работой занимаются админы, знающие скрипты, но далекие от 1с. А программисты если занимаются какими либо «обновлениями», то это чаще может быть ручная работа, по выборочному переносу объектов и пр. Как-то так в жизни сложилось ( хотя у всех очень по разному.
Я вот облизываюсь функционалом, интересно, а применить негде и некогда…
«Чай пить и смотреть» ? ))) Грустно рассмешили. Обычно автоматизируемся, не для того, чтобы больше отдыхать, а для того, чтобы еще больше работать (((
Ну почему негде применить?
для разработчика также полно задач.
1 Прогнать локальную сборку — собрать пустую тест.базу из исходников или из хранилища,
выполнить начальное заполнение для БСП-совместимых баз, выполнить первоначальное заполнение тестовыми данными,
выполнить прогон тестов (дымовые, приемочные и т.п.), получить успех/неуспех тестов, выполнить статический анализ кода,
получить нормальный отчет о тестировании.
2 синхронизировать хранилище 1С с гитом, чтобы получить всякие фишки — и связь с трекером задач, и статический анализ кода, и код-ревью, и т.п. и т.д.
3 запустить инструменты разработчика для нужной базы в нужном клиентском режиме с отключением ненужных вопросов
и т.п. и т.д.
(22) т.е. сделать это на 1С, без onescript было бы невозможно?
Небольшое уточнение: мой изначальный вопрос был технологический, т.е. есть зачем onescript нужен как таковой, и ответ на этот вопрос я уже получил.
(23) возможно, только это вопрос можно задать любому языку. Зачем на вообще что-то еще если есть c++.
Везде есть свою бонусы, тут кстати проще всего выполнить задачи, описанные Артуром.
(24) Конечно можно, только я не об этом говорю. Если бы я разработал свой компилятор к языку с++, я был бы готов к вопросам — а зачем вы это сделали? И ответ я получил — «наш компилятор лучше-выше-бестрее». А то, что на нем написаны библиотеки, уже немного не то, ведь их поидее, можно запускать и под обычной 1С (перевести в формат обработок).
(25) Приведу свои примеры.
https://infostart.ru/public/635970/ .Т.к. в оскрипте отладчика еще нет, то я разрабатывал все форматирование в обычной обработке, а затем тупо копипастил в файл .os . И один и тот же код в скрипте отрабатывает значительно быстрее, чем в обработке. Да и не смог бы форматирование я сделать чисто на 1Ске — это или экземпляр держать, куда слать данные, либо каждый раз стартовать 1Ску, что несколько долго
https://infostart.ru/public/617478/ которые очень помогают. Чтоб развернуть свежую копию из рабочей базы — мне нужно сделать двойной клик по одному ярлыку. И так же выкатывается обновление на рабочую базу
1) ОСкрипт работает значительно шустрее, чем аналогичный код в обработке. Я это хорошо прощупал при разработке
2) Код в оскрипте это может быть один файл, который можно открыть любым редактором и который просто замечательно версионируется. Самая простая обработка раскладывается просто в кучу файлов, в которых значительно сложнее ориентироваться. Тут опять приходится запускать 1Ску и только 1Ску и смотреть, чо там.
3) Для околопрограммистких штук оскрипт подходит просто идеально. Я на нем написал скрипты по деплою и разворачиванию базы
4) Стрельнуло тут получать в 1Ску данные из скуда оперативно по пикам с конкретного приемника. Админы не очень умеют в программирование, а программисты 1С не очень умеют в скуд. Нашли выход — на той машине, где крутится скуд валяется батничек от оскрипта. скуд его запускает и передает ИД карты и ИД приемника. Скрипт делает http-запрос в 1Ску и там уже нужная логика отрабатывает. Да, это все велосипеды и костыли, но было написано, запущено в бой и закрыло проблему за полдня.
Кстати, да, код 1скрипта работает значительно шустрее кода 1С 🙂
И это даже без доп.затрат на запуск самой простой базы 1С.
Проект конечно интересный, но меня все равно не отпускает мысль почему бы для этого всего не использовать Python. Который имеет овердофига открытых библиотек по работе со всем чем только можно. А при желании можно было просто написать новый пакет для упрощения подключенияработе с 1С. Сам язык наипростейший и учится за пару вечеров.
(28)
ну так почему бы и не использовать?
(28) Использовать можно, но кто, кроме автора, в дальнейшем сможет сопровождать/поддерживать/дорабатывать.
У нас уже есть такой опыт.
Ответ — никто 🙁
Вышел новый релиз плагинаhttps://github.com/xDrivenDevelopment/vsc-language-1c-bsl/releases/tag/v1.10.0
Теперь, находясь в открытом os-файле достаточно просто нажать F1 — выбрать команду «Задачи:Выполнить задачу» (или даже сразу нажать комбинацию Ctrl+Shift+B, если нужно выполнить задачу запуска os-файла) и будет выведен выпадающий список, где доступны все основные команды запуска и обработки os-файлов
https://code.visualstudio.com/docs/editor/tasks
P.S. Есть тонкость — в каталоге .vscode открытой папки не должно содержаться файла task.json, где в качестве версии указана версия 0.1.0 — в этом случае новое API не срабатывает и отрабатывают задачи, указанные в файле task.json.
P.P.S. Более подробно о новом TasksApi VSCode можно прочитать по ссылке
(31) Спасибо, ознакомлюсь и поправлю статью
Прикольная штука. Начал по инструкции, запутался, как то сам случайно поставил. Текст подсвечивается, код исполняется, отладчик останавливается на точке. В экзешник пока не разобрался как компилить, но это особо то и не важно. при необходимости в командной строке можно сделать.
Спасибо за интересный инструмент. Во вложении картинка чего устанавливал и какой результат в открытой папке получился.
Здравствуйте.
Помогите пожалуйста.
Про попытке закпуска скрипта выходит алерт (слева внизу).
Скрипт не исполняется.
(34)
Terminal with ID 1 does not exist (has it already been disposed?)
Error: Cannot read property ‘provideBslScripts’ of undefined
(35) Так и что это? Выяснили?
(36) Возможно в PATH не прописан путь к
C:Program Files (x86)OneScriptin (ну или какая там у вас директория)
(37) у меня прописано, но ошибка есть. Напрямую в консоли скрипты выполняются
Подскажет ли кто-нибудь как получить подсказки по синтаксису установленных библиотек? oscript-config я вроде поставил (насколько могу судить). Или хотя бы направьте где искать или где задавать вопрос. Очень тяжело ориентироваться в этом всем почему-то….
(39) если еще актуально — приходите в ишузы наhttps://github.com/1c-syntax/vsc-language-1c-bsl или в телеграм-чат https://t.me/oscript_library
скачал редактор VSC, в нем все на английском, а на скриншотах в статье все меню на русском, ЧЯНД?
(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
(42)
спасибо, получилось )
Скачал змею. Запустил. А почему я точку останова не могу поставить?
Может всё-таки кто-нибудь подскажет почему я не могу отладку запустить? Как только вхожу в режим отладки в логах ошибка
[2019-07-25 16:40:34.031] [renderer1] [error] net::ERR_NAME_NOT_RESOLVED: Error: net::ERR_NAME_NOT_RESOLVED
Я похоже на простой вещи туплю.. А как создаете .csproj ? Я его просто скопировал с типового HelloWorld. А иначе у меня вообще никак и никуда не двигалось..
Вы чего то не то делаете, какой csproj?
(46) Судя по скриншоту, вы не тот отладчик запускаете.
https://infostart.ru/public/791568/#_Toc508101026
Цитата из
Перечитайте статью по ссылке, начиная со слов
(48)
Спасибо, заработало!
Работа с отладчиком в создании библиотек. Я эту статью на потом оставил, оказалось вот оно что 🙂
Подскажите пожалуйста, не получается подключить конфигурационный файл и перенастроить стандартные ограничения «maxMethodSize, maxLineLength». В инструкции сказано нужно создать файл «.bsl-language-server.json» и разместить его в рабочую область (я так понимаю в папку .vscode) примерно следующего содержания:
{
«diagnosticLanguage»: «ru»,
«diagnostics»: {
«LineLength»: {
«maxLineLength»: 140
},
«MethodSize»: false
}
}
Но даже при перезапуске отрабатывает стандартное ограничение.
Коллеги подскажите, почему 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.
(51)Помогли разобраться в телеграммеhttps://t.me/oscript_library
(51) для истории и тех, у кого нет телеги:
1) VSC необходимо устанавливать под непривилегированным пользователем
2) Необходимо установить Java JDK (не JRE)
3) В переменной PATH добавить путь к in JDK, например «C:Program FilesJavajdk-13.0.1in»
Тестировалось на Win10.