0. Evil Beaver 5370 09.02.18 23:10 Сейчас в теме

Веб-разработка на 1Script. Глава 1

Разрабатывать веб-приложения должно быть просто. И для этого 1С-ник не должен страдать, изучая десятки и сотни побочных технологий. В конце прошлого года я анонсировал разработку движка веб-приложений на языке 1С. Я планирую выпустить серию статей, оформленных в виде книги, или серии блог-постов, в которых постепенно будут описаны методики разработки сайтов на нашем любимом языке программирования – 1С.

Перейти к публикации

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо
1. palsergeich 12.02.18 13:31 Сейчас в теме
Продолжайте, интересно.
Думаю в течение месяца с головой погрузится в oscript, на горизонте маячат несколько задач....
Liris; dim9; user764938; Lyolik; +4 Ответить
2. nixel 536 12.02.18 14:26 Сейчас в теме
(1) погружайся, Паш, погружайся :) Там много интересного, как в веб-части, так и в более привычном девопсе
3. JohnyDeath 290 12.02.18 14:27 Сейчас в теме
Фундаментально!
В закладки и подписки!
4. Evil Beaver 5370 12.02.18 14:38 Сейчас в теме
Маленькое замечание: парсер инфостарта оборачивает гиперссылки в свой redirect.php. Поэтому код страницы _mainLayout.cshtml отображается искаженно.

<link rel="stylesheet" ref="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.13/semantic.min.css"/>


Вот правильный код линка (он же в исходниках гитхаба). Атрибут href пришлось переименовать, чтобы обмануть парсер :)
5. spacecraft 12.02.18 14:44 Сейчас в теме
Попытка скрестить asp.net core с onscript.
Смотрится не плохо.
А почему не взять в качестве frontend vue.js? А backend использовать onscript. И без прослойки asp.net. Вроде как более перспективное направление может получиться.
6. Evil Beaver 5370 12.02.18 14:52 Сейчас в теме
(5) Можно и взять. Почему сейчас нет - в статье написано.
7. spacecraft 12.02.18 15:07 Сейчас в теме
(6) я не про использование в качестве шаблонизатора. А как полноценный фреймворк.
На onscript попытаться сделать аналог nuxt.js. С серверным рендерингом.
10. Evil Beaver 5370 12.02.18 16:02 Сейчас в теме
(7) Можно, думаю. И серверсайд-рендер react тоже можно прикрутить, не вопрос. Там всего-лишь middleware добавить в цепочку обработки.
spacecraft; +1 Ответить
8. 🅵🅾️🆇 12.02.18 15:33 Сейчас в теме
В целом здорово, в закладки, в частном - стоит сравнить под нагрузкой с питоном, node.js, ну или на худой конец с php.
Есть смутное подозрение, что дальше единичных http сервисов не требующих высокой нагрузки - заходить не стоит.

ЗЫ: Да, Я знаю, что 1с код довольно странно компилируется в процессе, но как мне кажется, сравнивать стоит именно с интерпретируемыми языками, с байткодом точно не сравниться (да и в вебе мало бэкэнда на нем).
9. Evil Beaver 5370 12.02.18 16:00 Сейчас в теме
(8) Уже сравнивали. Скорость такая же как у ПХП. Питону тоже нет причин быть сильно быстрее. Нода применяет JIT-компиляцию в машинный код, поэтому будет наверняка побыстрее, но отдельно с нодой не сравнивали.

с байткодом точно не сравниться

Что вы понимаете под термином байткод? И у 1С, и у 1Скрипт, и у Питона, и у Java есть байткод. Вы про который байткод говорите?
24. 🅵🅾️🆇 13.02.18 15:37 Сейчас в теме
(9)
Уже сравнивали.

Если в закладочках осталась статья со сравнением быстродействия на различных задачах - буду очень благодарен.

Нода применяет JIT-компиляцию в машинный код

Слышал, что 1с делает также.

Что вы понимаете под термином байткод?

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

Питоша с JS - интерпретируются, Java исполняется на VM, у 1с, вроде как, препроцессор режет то что там наваяли в конфигураторе и отдает компилятору в реальном времени.
25. spacecraft 13.02.18 15:44 Сейчас в теме
(24)
Питоша с JS - интерпретируются

python интерпретирует не всегда. Как правило первый раз. И пытается этот код скомпилировать в си. Что при повторном использовании может быть быстрее java кода.
27. 🅵🅾️🆇 13.02.18 15:53 Сейчас в теме
(25) Таких тонкостей не знаю, но вроде как в питоне надо явно задавать участки, что подлежат такой компиляции, все остальное статически компилируемое.
41. bonv 114 13.02.18 19:05 Сейчас в теме
(25) Наиболее распространенная реализация CPython компилирует код в байт-код.
JIT-компилятор, про который видимо идет речь, используется, например, в реализации PyPy, но она имеет свои ограничения.
31. Evil Beaver 5370 13.02.18 16:55 Сейчас в теме
(24)
Если в закладочках осталась статья со сравнением быстродействия на различных задачах - буду очень благодарен.

Статьи нет, есть наш чат в gitter. Там обсуждалось.

Слышал, что 1с делает также.

Нет, не делает. Если я ошибаюсь - просьба дать пруфлинк.

Ну в данном случае я имел ввиду машинный код, который исполняется напрямую, то во что компилируют теже плюсы.

Машинный код <> Байткод. Принципиально разные вещи.

Питоша с JS - интерпретируются, Java исполняется на VM, у 1с, вроде как, препроцессор режет то что там наваяли в конфигураторе и отдает компилятору в реальном времени.

Вот это - тотальная абракадабра и незнание матчасти.
32. 🅵🅾️🆇 13.02.18 16:57 Сейчас в теме
(31)

Машинный код <> Байткод. Принципиально разные вещи.

Описочка, очевидно имел ввиду машинный.

Вот это - тотальная абракадабра и незнание матчасти.

Просвяти где не прав.
33. Evil Beaver 5370 13.02.18 17:12 Сейчас в теме
(32)
Питоша с JS - интерпретируются, Java исполняется на VM, у 1с, вроде как, препроцессор режет то что там наваяли в конфигураторе и отдает компилятору в реальном времени.


Начнем с того, что Питон и JS - это языки у которых несколько реализаций. Каждая реализация работает по-своему.
Наиболее популярная реализация Питона - это CPython. Я не очень хорошо ее знаю, в моей картине мира она компилируется в байт-код, который затем исполняется виртуальной машиной. Точно так же делает 1С, PHP, Ruby и 1Script.

JS имеет также несколько реализаций, современные из которых (скажем V8 от Google) сначала также компилируются в промежуточный код, а он, в свою очередь - превращается в машинный код, там где это возможно. Это называется JIT-компиляцией. По тому же принципу работает C# и Java. В результате, современные JS-программы работают довольно шустро. Но это заслуга реализации движка. Запустите этот же код на старых реализациях JS и никакой скорости не будет, хотя "язык" - один и тот же. Node.JS использует, насколько я знаю, движок V8, хотя, вроде как, туда можно поставить Chakra или еще что-то. Не в курсе на 100%.

Теперь насчет 1С. Что-то такое мелькало про JIT в 1С, но я так и не понял - было это в реале или мне приснилось.

Примененный термин "VM" для Java справедлив в равной степени для всех скриптовых языков, в т.ч. и для 1Script. Чистых "интерпретаторов", которые бы не использовали промежуточное представление в виде байт-кода, сейчас среди мейнстримных скриптовых движков нет, насколько мне известно.
38. 🅵🅾️🆇 13.02.18 17:31 Сейчас в теме
(33)
Начнем с того, что Питон и JS - это языки у которых несколько реализаций. Каждая реализация работает по-своему.
Наиболее популярная реализация Питона - это CPython. Я не очень хорошо ее знаю, в моей картине мира она компилируется в байт-код, который затем исполняется виртуальной машиной.


Начнем с того, что вот этот ваш CPython и есть ИНТЕРПРЕТАТОР. Он читает что вы там написали и прям в процессе транслирует в байткод и исполняет.
Собстно это и называется ИНТЕРПРЕТАЦИЕЙ. А уже КОМПИЛЯЦИЕЙ называют когда программулина сначало перегоняется целиком в машинный код, а затем уже исполняется.

Так что зря вы так грубо и с плеча дураком обзываетесь)))

Про 1с мне точно также приснилось, про что и написал.
Как это вижу Я: препроцессор режет наши писульки в соответсвии с дерективами, переводит в некое промежуточное состояние и отдает кусочки в процессе такому же сорту CPython'а, который, когда от него требуется, уже компилирует и исполняет.
39. Evil Beaver 5370 13.02.18 18:37 Сейчас в теме
(38) у меня несколько иная терминология. Интерпретатор сразу исполняет код, не создавая никакого кода для машины (обычной или виртуальной). Меня так учили и то же самое читал в книжках. В любом случае, это всего лишь вопрос терминологии. Я поясняю свою, чтобы меня правильно можно было понять.

Компилятор - это создатель другого представления исходного кода, которое затем исполняет машина (реальная или нет).

В такой терминологии Питон, 1С и 1Скрипт - это НЕ интерпретаторы
42. 🅵🅾️🆇 13.02.18 19:14 Сейчас в теме
(39) Придеться вас огорчить)

Может тут и правда есть различные мнения, но вообще, где бы я не встречал упоминания питонов-яваскриптов, всегда где то рядом есть слово "интерпретатор".
43. spacecraft 13.02.18 19:29 Сейчас в теме
(42) не смущает, что в приведенной статье сплошные противоречия?

Этак можно прийти к тому, что и С++ это интерпретатор компилируемого типа. Ведь программа выполняется "виртуальной машиной" (операционной системой).
Evil Beaver; +1 Ответить
49. Evil Beaver 5370 13.02.18 23:22 Сейчас в теме
(43) Ага, отличный пример бредовых ГОСТ-ов, прямо вспомнил лекции в институте, которые устарели за 10 лет до моего туда поступления.
44. spacecraft 13.02.18 20:48 Сейчас в теме
(42)
где бы я не встречал упоминания питонов-яваскриптов, всегда где то рядом есть слово "интерпретатор".

уникальность именно python в том, что он разрывает шаблон устоявшихся понятий чистых компилятор/интерпретатор.
Он одновременно может быть чистым интерпретатором. В прямом смысле этого слова. Прямо в консоле можно писать код построчно и он будет выполняться.
В тоже время позволяет и скомпилировать в байт-код, для более быстрого выполнения.
86. minimajack 52 16.03.18 12:44 Сейчас в теме
(44)
Он одновременно может быть чистым интерпретатором. В прямом смысле этого слова. Прямо в консоле можно писать код построчно и он будет выполняться

как и многие другие включая и javascript и java
48. Evil Beaver 5370 13.02.18 23:20 Сейчас в теме
(42) Я может чего не понял, но приведенная статья подтверждает мою терминологию, а не опровергает ее. Что конкретно в ней должно было меня огорчить?
40. spacecraft 13.02.18 18:53 Сейчас в теме
(38)
Начнем с того, что вот этот ваш CPython и есть ИНТЕРПРЕТАТОР. Он читает что вы там написали и прям в процессе транслирует в байткод и исполняет.
Собстно это и называется ИНТЕРПРЕТАЦИЕЙ. А уже КОМПИЛЯЦИЕЙ называют когда программулина сначало перегоняется целиком в машинный код, а затем уже исполняется.


Даже классический CPython, который не имеет встроенного JIT-компилятора, имеет оптимизатор, который сохраняет в байт-код (расширения .pyc). И уже повторно запускается именно байт-код.
13. bonv 114 12.02.18 22:07 Сейчас в теме
(8)
В целом здорово, в закладки, в частном - стоит сравнить под нагрузкой с питоном, node.js, ну или на худой конец с php.
Есть смутное подозрение, что дальше единичных http сервисов не требующих высокой нагрузки - заходить не стоит.

В сервисах с высокой нагрузкой, как правило сервера приложений (python, noda.js и т.д.) напрямую никто не выставляет. Поднимают несколько серверов приложений и проксируют их через nginx (или ему подобные). Таким образом можно повысить производительность и надежность.

Опять же время выполнения кода на питоне или на 1С принципиально не отличается. Основное время затрачивается на операции ввода-вывода. И вот здесь уже асинхронные сервера могут существенно вырваться вперед.
kuntashov; 🅵🅾️🆇; artbear; Evil Beaver; +4 Ответить
18. Evil Beaver 5370 13.02.18 08:33 Сейчас в теме
(13) еще бы 1С выпустила гуманный API для асинхронных операций...
neikist; bonv; artbear; +3 Ответить
19. artbear 1097 13.02.18 11:53 Сейчас в теме
(18)
гуманный API для асинхронных операций

В мемориз :)
26. 🅵🅾️🆇 13.02.18 15:48 Сейчас в теме
(13)
В сервисах с высокой нагрузкой, как правило сервера приложений (python, noda.js и т.д.) напрямую никто не выставляет. Поднимают несколько серверов приложений и проксируют их через nginx (или ему подобные).

Благодарю за ликбез. Но при неудачном выборе инструмента, все одно дорого по железу/потдержке выходит наверное?

И вот здесь уже асинхронные сервера могут существенно вырваться вперед.

С асинхронностью у 1с бяда, особенно на стороне клиента. Пока есть только для файловых потоков и обработчик ожидания.
Вчера потребывалось из формы списка попадать в форму элемента и выделять нужную строку табличной части, в итоге решилось подвешиванием таймера в 0,25 сек на процедуру ПриОткрытии() и уже по его истечению устанавливать фокус.
Ничего лучше подобного костыля не придумал, а решения в гугле для УФ в принципе нет.

Скрытый текст
50. bonv 114 14.02.18 02:12 Сейчас в теме
(26)
Благодарю за ликбез. Но при неудачном выборе инструмента, все одно дорого по железу/потдержке выходит наверное?

Железо - зависит от задачи. Возможно бэкенд на С/С++ будет лучшим решением.


Вчера потребывалось из формы списка попадать в форму элемента и выделять нужную строку табличной части, в итоге решилось подвешиванием таймера в 0,25 сек на процедуру ПриОткрытии() и уже по его истечению устанавливать фокус.
Ничего лучше подобного костыля не придумал, а решения в гугле для УФ в принципе нет.

Зачем это?

Можно же сразу в ПриСозданииНаСервере установить строку
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("НомерСтроки") Тогда
		НомерСтроки = Параметры["НомерСтроки"];
		Элементы.Оборудование.ТекущаяСтрока = Объект.Оборудование[НомерСтроки].ПолучитьИдентификатор();
	КонецЕсли;

КонецПроцедуры
Показать
53. 🅵🅾️🆇 14.02.18 10:19 Сейчас в теме
(50) При создании на сервере и при открытии (до того как форма отрисовалась у клиента) "ТекущаяСтрока" еще не установлена и находиться в значении "Неопределено". Установить значение то можно, но толку от этого будет 0 и все одно после открытия перезапишется единицей.
Вот такие вот неожиданные костыли))) Честное слово, Я не был пьян, когда ваял сей велосипед)))

55. bonv 114 14.02.18 11:47 Сейчас в теме
(53) Ну собственно я тоже попробовал прежде, чем писать (пробовал на 8.3.12)
56. 🅵🅾️🆇 14.02.18 14:23 Сейчас в теме
(55) Странные дела.
8.3.11, Вин сервер 2008, УФ, Тонкий клиент, Такси, Самописная конфигурация на базе БСП.

При создании & открытии формы ну никак не хотело, причем гуглинг дал таких же несчастных и решения для обычных форм.
Пришлось выдумывать такой велосипед.
11. Boris_1c 39 12.02.18 20:08 Сейчас в теме
Круто-круто. Следим за проектом затаив дыхание!
12. bonv 114 12.02.18 21:37 Сейчас в теме
(0) Сервер синхронный и/или асинхронный?
16. Evil Beaver 5370 13.02.18 08:28 Сейчас в теме
(12) сервер асинхронный, но код конкретного контроллера выполняется в одном потоке на http-запрос. Асинхронный io с НачатьЧтение в стиле 1С можно сделать хоть сейчас, но у меня рука не поднимается копировать этот сатанизм.
14. comol 3704 12.02.18 22:53 Сейчас в теме
(0)
Soloist; ALagutin; pfilyk; klimsrv; TreeDogNight; tsukanov; Stylo; max_st; +8 Ответить
17. Evil Beaver 5370 13.02.18 08:31 Сейчас в теме
(14) я ждал этой картинки! Редко встретишь ее на инфостарте. Считаю за комплимент )
Irwin; Labotamy; yuraer; +3 Ответить
15. CSiER 22 13.02.18 03:02 Сейчас в теме
Спасибо, статья навеяла воспоминания по студенческим каникулам - php, smarty, борьба с ТТУК :)
20. tsukanov 66 13.02.18 11:57 Сейчас в теме
Плюсую за творческую упоротость, но идея не очень непонятна )
В целом думаю эта работа положительно отразится на сообществе одинэсников, т.к. в очередной раз поднимает планку.
Народу хочешь не хочешь придется шевелиться, наблюдая как его знания обесцениваются.

Непонятно следующее:
Какая целевая аудитория?
Ведь это решение за пределами экосистемы 1С и разработчику на платформе оно ничего не дает.
Ну а если речь о полноценной веб-разработке, то язык 1С как он есть, для этого имхо слабо подходит.

Любая технология призвана решать четкую конкретную задачу.
Какую задачу решает эта технология? И если решает, то в чем преимущество перед другими технологиями?

ps Не исключаю что уже объяснялось. Возможно пропустил
22. Evil Beaver 5370 13.02.18 14:07 Сейчас в теме
(20) эта технология решает целый спектр задач. Перечислять поленюсь. Например, одна из них: Я (персонально я) смогу писать веб-приложения, получая удовольствие от процесса. Сейчас ни на одной из тех экосистем, которые я пробовал, этого не происходит. Если за мной это смогут делать другие 1С-ники - то задача уже будет выполнена выше плана.

И это только одна из целей.
dumsik; sumaueev; Peleng; Shrayky2; JohnyDeath; +5 Ответить
23. tsukanov 66 13.02.18 14:25 Сейчас в теме
(22) А ну если джаст фо фан, то почему бы и да )
30. Evil Beaver 5370 13.02.18 16:51 Сейчас в теме
(23) just for fun - наиболее доходчивое объяснение для скептиков вроде тебя )

Прагматические цели тоже есть.
35. tsukanov 66 13.02.18 17:19 Сейчас в теме
(30) Ну если берешься защищать цели, то нужно их озвучивать ) Или тупо сразу говорить, что делаешь джаст фо фан, чтоб не парили мозг.
Объяснять полезность чего-то сложно, да. Иногда даже самому себе )

ps Не обращай внимание на мои придирки. Дотошность мое проклятье.
36. Evil Beaver 5370 13.02.18 17:21 Сейчас в теме
(35)
Или тупо сразу говорить, что делаешь джаст фо фан, чтоб не парили мозг.

ты меня раскусил ))
37. tsukanov 66 13.02.18 17:30 Сейчас в теме
(36) будто кто-то иначе делает )))
28. comol 3704 13.02.18 16:35 Сейчас в теме
(22)
Я (персонально я) смогу писать веб-приложения


Андрей ты нас обманываешь :), если осилил свой хм... интерпретатор? Написать, то уж web приложение явно проблем не вызовет :)
29. Evil Beaver 5370 13.02.18 16:42 Сейчас в теме
(28) жабоскрипт ацтой. Не люблю на нем писать
87. pfilyk 25.03.18 14:16 Сейчас в теме
(29) согласен, но есть же еще TypeScript как пример
21. infosoft-v 289 13.02.18 12:24 Сейчас в теме
Огромное уважение к автору этого проекта и ко всей "команде oScript". Коллеги, вы всегда меня вдохновляете. Спасибо вам.

После того, как язык bsl укоренился на десктопе, на сервере, в мобилках и в вебе, может быть попробовать исполнить его на embedet платформах?

Как пример, есть такой проект Espruino (JavaScript на микроконтроллерах)

Микроконтроллер с кодом на bsl отправляет телеметрию на сервер который написан на OScript откуда 1С Предприятие забирает данные уже не звучит как фантастика.
Evil Beaver; artbear; +2 Ответить
34. Evil Beaver 5370 13.02.18 17:15 Сейчас в теме
(21) Сюда Филиппов сейчас тоже вставит картинку с троллейбусом :)
45. bulpi 137 13.02.18 21:47 Сейчас в теме
Автор, не знаю, куда это писать. Начиная с версии 1.0.18 1script не работает на win32 . Это так и должно быть ?
46. nixel 536 13.02.18 22:24 Сейчас в теме
(45) на какой из win32?
для работы 1.0.18 и старше требуется .Net Framework >= 4.5.2. Как следствие в трубу улетела Windows XP
47. baton_pk 376 13.02.18 22:24 Сейчас в теме
(45) https://github.com/EvilBeaver/OneScript/issues
сюда писать. Если там молчим, не стесняться напоминать.
Ещё сюда: https://gitter.im/EvilBeaver/OneScript

отказались от поддержки винХР - это было. а от вин32 не отказывались.
Evil Beaver; +1 Ответить
51. Nenaviju1C 14.02.18 08:35 Сейчас в теме
Что то навеяло asp.net ...
На чем реализован механизм?
57. nixel 536 14.02.18 16:00 Сейчас в теме
(51) дык там низом и есть ASP.Net
52. Nenaviju1C 14.02.18 08:39 Сейчас в теме
Вопрос снят, выше увидел коммент по .net
54. Evil Beaver 5370 14.02.18 11:45 Сейчас в теме
Между тем, призовой фонд в 20 sm до сих пор не разыгран
58. VRStalker 14.02.18 17:00 Сейчас в теме
Ошибка (закладка?) в статье, приводящая к ошибке...

Создадим файл ЦентральныеСерверы.os в папке src/model/classes.


Правильно в src/model/modules
Evil Beaver; yuraer; +2 Ответить
59. Evil Beaver 5370 15.02.18 10:52 Сейчас в теме
60. stilet 50 15.02.18 16:47 Сейчас в теме
А как отлаживать код? Здесь все понимают, что 50% работы с кодом (более менее сложным) - это отладка.
61. Evil Beaver 5370 15.02.18 16:58 Сейчас в теме
(60) Отладчик пока не включен в веб-движок. Стандартный 1script отлаживается, здесь на данный момент еще не реализовано.
62. Evil Beaver 5370 15.02.18 17:17 Сейчас в теме
Вознаграждение в пользу yuraer
63. yuraer 38 15.02.18 23:46 Сейчас в теме +20 $m
(62) Моё решение.
В файле src/views/agents/Index.cshtml добавляем кнопку в таблицу
<tr>
            <td><a asp-action="edit" asp-route-id="@row.Идентификатор">@row.Идентификатор</a></td>
            <td>@row.СетевоеИмя</td>
            <td>@row.Порт</td>
            <td>@row.Режим</td>
            <td><a asp-action="delete" asp-route-id="@row.Идентификатор"><i class="remove icon"></i></a></td>
        </tr> 


где указываем вызов функции "delete" и значение маршрута "@row.Идентификатор"

и название колонки
 <tr>
        <th>Идентификатор</th>
        <th>Сетевое имя</th>
        <th>Порт</th>
        <th>Режим</th>
        <th>Удалить</th>
    </tr>



и добавляем функцию удаления в src/controllers/agents.os

Функция Delete() Экспорт		

	Идентификатор = ЗначенияМаршрута["id"];
	Если Идентификатор = Неопределено Тогда
		Возврат Перенаправление("/agents/index");
	КонецЕсли;

	ТЗ      = ЦентральныеСерверы.ПолучитьСписок();
	Элемент = ТЗ.Найти(Идентификатор, "Идентификатор");

	Если Элемент = Неопределено Тогда
		Возврат КодСостояния(404);
	КонецЕсли;

	ТЗ.Удалить(Элемент);	
	ЦентральныеСерверы.Записать(ТЗ);
	
	Возврат Перенаправление("/agents/index");

КонецФункции
Показать
Liris; artbear; JohnyDeath; +3 Ответить
64. Hokum 1 18.02.18 14:05 Сейчас в теме
Git не захотел коммитить первоначальный образ, оказалось что его надо как минимум настроить.
открываем git-bash , добавляем пару строчек
git config --global user.name "Мое имя"
git config --global user.email мое.мыло@gmail.com


Запилил функцию удаления, получилось почти так же как в решении выше.
Потом подумал, что одно неосторожное движение и мы удалили запись.
Сделал еще формочку с подтверждением.


С интересом жду продолжения.
Прикрепленные файлы:
bulpi; artbear; Evil Beaver; JohnyDeath; baton_pk; +5 Ответить
65. Evil Beaver 5370 20.02.18 11:03 Сейчас в теме
(64) Не затруднит ли вас отправить данные доработки пулреквестом вот сюда: https://github.com/EvilBeaver/odminus ?

Здесь будет разрабатываться конечное приложение.
66. Hokum 1 20.02.18 14:44 Сейчас в теме
(65) Я пока не знаю как это делается. В ближайшее время разберусь и отправлю.
69. dumsik 8 24.02.18 13:43 Сейчас в теме
Андрей, возможность запуска веб-движка в виде службы windows в будущем будет предусмотрена?
67. Rashid80 23 22.02.18 09:51 Сейчас в теме
Отличное пособие, осталось понять - для кого оно?
Типичный 1С-ник очень далек от Web и MVC-концепции (которая к слову уже не так актуальна). Т.е. да, он будет писать русские комманды, но по факту это просто обертка над ASP.NET MVC.
Те кто хоть немного знакомы с веб-разработкой, для чего им писать на этой обертке? Проще взять Питон или Го и ОЧЕНЬ быстро получить бэкенд. Без всяких Model View Controller. Роутинг там реализован без всяких созданий подпапок и конкретных имен файлов с конкретными методами - т.е. гибко
tsukanov; pfilyk; +2 Ответить
68. JohnyDeath 290 22.02.18 13:17 Сейчас в теме
(67) по-моему всё 1С строится на MVC. Нет?

Т.е. да, он будет писать русские комманды, но по факту это просто обертка над ASP.NET MVC.

Так и сама 1С - это просто обертка над С++

Я - один из тех "для кого это". И я также активно использую oscript движок как язык для сценариев больших и не очень.
Мне в свое время надоело каждый раз при написании какой-то консольной утилиты или плеваться на cmd или вспоминать как оно там в PowerShell сделано. А здесь - знакомый до боли язык и обороты, который плюс ко всему легко переносится из платформы в скрипт.
Irwin; pvlunegov; Evil Beaver; +3 Ответить
71. Evil Beaver 5370 24.02.18 21:01 Сейчас в теме
(67) Евгений ниже ответил, я вряд-ли смогу лучше. Да, это обертка над Х. И 1Script это обертка над Y. Да, можно взять Питон, Павершел, VBScript, Батники. Но зачем?
75. Rashid80 23 26.02.18 10:34 Сейчас в теме
(71)
1)Чтоб не переключаться постоянно с русского на английский и обратно
2)Обертка не дает всего что дает исходный ASP.NET MVC. Т.е. придется ждать пока в обертку добавят еще одну обвязку или же дергать .net классы напрямую. Но зачем тогда вообще обертка?
76. Evil Beaver 5370 26.02.18 10:39 Сейчас в теме
(75) Затем же, зачем и весь 1script вообще. Для удобства. Как уже писал выше - в первую очередь меня лично, а вообще - для любого 1С-ника.
70. dumsik 8 24.02.18 13:45 Сейчас в теме
Возможность запуска веб-движка в виде службы windows в будущем будет предусмотрена?
72. Evil Beaver 5370 24.02.18 21:03 Сейчас в теме
(70) Нет. А зачем это нужно? Внутри веб-сервера это работает иначе. И вообще, предполагается контейнеризация. Для чего нужна именно служба?
73. dumsik 8 25.02.18 12:50 Сейчас в теме
(72) тогда наверное я не совсем до конца понял как все будет работать. Я думал, что web-движок oscript это отдельный web сервер запускаемый через OneScript.WebHost.exe и тогда логично, что OneScript.WebHost.exe должен уметь стартовать как служба потому-что он должен стартовать при старте системы и служба подходит для этого идеально. Получается я не прав и теперь предполагаю, что web-движок oscript будет работать под IIS. Можете подробнее рассказать как будет разворачиваться web-движок oscript в продуктиве, вот хотя бы на примере "odminus".
74. Evil Beaver 5370 26.02.18 09:12 Сейчас в теме
(73) я предпочитаю разворачивать в docker. А так - гуглить на тему aspnet core + iis
77. dumsik 8 26.02.18 13:12 Сейчас в теме
(74) и в продуктиве тоже docker?
78. Evil Beaver 5370 26.02.18 14:10 Сейчас в теме
(77) Есть ряд устойчивых отраслевых мифов:

* Java тормозит
* Плазма падает
* На 1С нельзя сделать {enter your text}
* Docker не готов к продуктиву
* Венде капец

Все примерно одного уровня достоверности.
pvlunegov; bulpi; Berckk; +3 Ответить
79. dumsik 8 26.02.18 14:59 Сейчас в теме
(78) Спасибо, пошел смотреть docker. За oscript спасибо отдельное, разработчики 1с очень быстро привыкают к автоматизации своей деятельности с его помощью. Oscript-web тоже сразу всем понравился из-за легкого старта. В общем очень нужное дело делаете.
nixel; Evil Beaver; JohnyDeath; +3 Ответить
80. Evil Beaver 5370 26.02.18 16:07 Сейчас в теме
(79) И вам спасибо за отзыв!
81. bulpi 137 10.03.18 19:29 Сейчас в теме
Git не захотел коммитить первоначальный образ, оказалось что его надо как минимум настроить.
открываем git-bash , добавляем пару строчек
git config --global user.name "Мое имя"
git config --global user.email мое.мыло@gmail.com


Увы, даже после этих действий у меня движок не запустился.
D:\MyProg\1script\ServersConsole\src>d:\MyProg\1script\osweb\OneScript.WebHost.exe

Необработанное исключение: System.TypeInitializationException: Инициализатор типа "System.Diagnostics.DiagnosticSourceEventSource" выдал исключение. ---> System.MissingMethodException: Метод не найден:
"Void System.Diagnostics.Tracing.EventSource..ctor(System.Diagnostics.Tracing.EventSourceSettings)".
в System.Diagnostics.DiagnosticSourceEventSource..ctor()
в System.Diagnostics.DiagnosticSourceEventSource..cctor()
--- Конец трассировки внутреннего стека исключений ---
в System.Diagnostics.DiagnosticListener..ctor(String name)
в Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices()
в Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
в OneScript.WebHost.Program.Main(String[] args)
82. Evil Beaver 5370 11.03.18 09:18 Сейчас в теме
(81) это какие-то системные ругательства. .NET Framework точно хороший стоит? И приложение откуда брали - скачивали или из исходников собирали?
83. bulpi 137 11.03.18 12:48 Сейчас в теме
(82) Все делал по инструкции.
choco install –y dotnet4.6.1
Приложение и движок скачивал в архивах и распаковывал.
Возможно, дело в системе windows7. Вы ведь не под ней делали ?
84. Evil Beaver 5370 11.03.18 22:52 Сейчас в теме
(83) не под ней, но вряд ли причина в этом. Скорее всего, не подхватился нужный фреймворк или он как-то криво установился. Это системная ошибка, не относящаяся по большому счету к 1Script.

Бинарники 1script сами собирали, или скачанные?
85. bulpi 137 12.03.18 10:06 Сейчас в теме
(84)
Все скачанное. Да ладно, не заморачивайтесь. Либо эта ошибка проявится у многих, либо , значит, карма у меня такая.
88. ilyav 25.05.18 15:03 Сейчас в теме
(81) Такая же ошибка на windows server 2012 r2
89. Evil Beaver 5370 25.05.18 16:43 Сейчас в теме
(88) Вы движок из исходников собираете или с гитхаба берете готовый?
90. ilyav 26.05.18 01:02 Сейчас в теме
(89) Разобрался и дам всем совет на будущее, на windows server по умолчанию стоят две версии net framework 3.5 и 4.5 , удалил версию 3.5 и все запустилось. Видимо по умолчанию скрипт запускается под 3.5 почему то.
baton_pk; +1 Ответить
91. markgenuine 23.10.18 19:18 Сейчас в теме
А почему не использовать язык Golang с шаблонами, там все проще и быстрее.
Тем более Docker написан на нем.
92. Evil Beaver 5370 24.10.18 14:55 Сейчас в теме
(91) конечно можно и нужно всем использовать только тот язык, который вы считаете нужным.

Пардон за наброс, просто я регулярно слышу этот вопрос и много раз на него отвечал в Интернетах и лично.
Irwin; JohnyDeath; +2 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Старший Программист 1С НОВОСИБИРСК
Новосибирск
зарплата до 130 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 75 000 руб.
Полный день



Руководитель проектов 1С
Санкт-Петербург
По совместительству