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

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

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

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

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. palsergeich 12.02.18 13:31 Сейчас в теме
Продолжайте, интересно.
Думаю в течение месяца с головой погрузится в oscript, на горизонте маячат несколько задач....
portwein; Liris; dim9; user764938; Lyolik; +5 Ответить
2. nixel 902 12.02.18 14:26 Сейчас в теме
(1) погружайся, Паш, погружайся :) Там много интересного, как в веб-части, так и в более привычном девопсе
3. JohnyDeath 297 12.02.18 14:27 Сейчас в теме
Фундаментально!
В закладки и подписки!
4. Evil Beaver 6746 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 6746 12.02.18 14:52 Сейчас в теме
(5) Можно и взять. Почему сейчас нет - в статье написано.
7. spacecraft 12.02.18 15:07 Сейчас в теме
(6) я не про использование в качестве шаблонизатора. А как полноценный фреймворк.
На onscript попытаться сделать аналог nuxt.js. С серверным рендерингом.
10. Evil Beaver 6746 12.02.18 16:02 Сейчас в теме
(7) Можно, думаю. И серверсайд-рендер react тоже можно прикрутить, не вопрос. Там всего-лишь middleware добавить в цепочку обработки.
spacecraft; +1 Ответить
8. 🅵🅾️🆇 12.02.18 15:33 Сейчас в теме
В целом здорово, в закладки, в частном - стоит сравнить под нагрузкой с питоном, node.js, ну или на худой конец с php.
Есть смутное подозрение, что дальше единичных http сервисов не требующих высокой нагрузки - заходить не стоит.

ЗЫ: Да, Я знаю, что 1с код довольно странно компилируется в процессе, но как мне кажется, сравнивать стоит именно с интерпретируемыми языками, с байткодом точно не сравниться (да и в вебе мало бэкэнда на нем).
9. Evil Beaver 6746 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 1050 13.02.18 19:05 Сейчас в теме
(25) Наиболее распространенная реализация CPython компилирует код в байт-код.
JIT-компилятор, про который видимо идет речь, используется, например, в реализации PyPy, но она имеет свои ограничения.
31. Evil Beaver 6746 13.02.18 16:55 Сейчас в теме
(24)
Если в закладочках осталась статья со сравнением быстродействия на различных задачах - буду очень благодарен.

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

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

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

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

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

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

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

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

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

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

Просвяти где не прав.
33. Evil Beaver 6746 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 6746 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 6746 13.02.18 23:22 Сейчас в теме
(43) Ага, отличный пример бредовых ГОСТ-ов, прямо вспомнил лекции в институте, которые устарели за 10 лет до моего туда поступления.
44. spacecraft 13.02.18 20:48 Сейчас в теме
(42)
где бы я не встречал упоминания питонов-яваскриптов, всегда где то рядом есть слово "интерпретатор".

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

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


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

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

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

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

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

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

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

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

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


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

Зачем это?

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

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

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

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

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

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

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

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

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

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


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

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

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

Микроконтроллер с кодом на bsl отправляет телеметрию на сервер который написан на OScript откуда 1С Предприятие забирает данные уже не звучит как фантастика.
Evil Beaver; artbear; +2 Ответить
34. Evil Beaver 6746 13.02.18 17:15 Сейчас в теме
(21) Сюда Филиппов сейчас тоже вставит картинку с троллейбусом :)
45. bulpi 174 13.02.18 21:47 Сейчас в теме
Автор, не знаю, куда это писать. Начиная с версии 1.0.18 1script не работает на win32 . Это так и должно быть ?
46. nixel 902 13.02.18 22:24 Сейчас в теме
(45) на какой из win32?
для работы 1.0.18 и старше требуется .Net Framework >= 4.5.2. Как следствие в трубу улетела Windows XP
47. baton_pk 401 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 902 14.02.18 16:00 Сейчас в теме
(51) дык там низом и есть ASP.Net
52. Nenaviju1C 14.02.18 08:39 Сейчас в теме
Вопрос снят, выше увидел коммент по .net
54. Evil Beaver 6746 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 6746 15.02.18 10:52 Сейчас в теме
60. stilet 50 15.02.18 16:47 Сейчас в теме
А как отлаживать код? Здесь все понимают, что 50% работы с кодом (более менее сложным) - это отладка.
61. Evil Beaver 6746 15.02.18 16:58 Сейчас в теме
(60) Отладчик пока не включен в веб-движок. Стандартный 1script отлаживается, здесь на данный момент еще не реализовано.
62. Evil Beaver 6746 15.02.18 17:17 Сейчас в теме
Вознаграждение в пользу yuraer
63. yuraer 39 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 4 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 6746 20.02.18 11:03 Сейчас в теме
(64) Не затруднит ли вас отправить данные доработки пулреквестом вот сюда: https://github.com/EvilBeaver/odminus ?

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

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

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

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

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

Все примерно одного уровня достоверности.
pvlunegov; bulpi; Berckk; +3 Ответить
79. dumsik 23 26.02.18 14:59 Сейчас в теме
(78) Спасибо, пошел смотреть docker. За oscript спасибо отдельное, разработчики 1с очень быстро привыкают к автоматизации своей деятельности с его помощью. Oscript-web тоже сразу всем понравился из-за легкого старта. В общем очень нужное дело делаете.
nixel; Evil Beaver; JohnyDeath; +3 Ответить
80. Evil Beaver 6746 26.02.18 16:07 Сейчас в теме
(79) И вам спасибо за отзыв!
81. bulpi 174 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 6746 11.03.18 09:18 Сейчас в теме
(81) это какие-то системные ругательства. .NET Framework точно хороший стоит? И приложение откуда брали - скачивали или из исходников собирали?
83. bulpi 174 11.03.18 12:48 Сейчас в теме
(82) Все делал по инструкции.
choco install –y dotnet4.6.1
Приложение и движок скачивал в архивах и распаковывал.
Возможно, дело в системе windows7. Вы ведь не под ней делали ?
84. Evil Beaver 6746 11.03.18 22:52 Сейчас в теме
(83) не под ней, но вряд ли причина в этом. Скорее всего, не подхватился нужный фреймворк или он как-то криво установился. Это системная ошибка, не относящаяся по большому счету к 1Script.

Бинарники 1script сами собирали, или скачанные?
85. bulpi 174 12.03.18 10:06 Сейчас в теме
(84)
Все скачанное. Да ладно, не заморачивайтесь. Либо эта ошибка проявится у многих, либо , значит, карма у меня такая.
88. ilyav 25.05.18 15:03 Сейчас в теме
(81) Такая же ошибка на windows server 2012 r2
89. Evil Beaver 6746 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 6746 24.10.18 14:55 Сейчас в теме
(91) конечно можно и нужно всем использовать только тот язык, который вы считаете нужным.

Пардон за наброс, просто я регулярно слышу этот вопрос и много раз на него отвечал в Интернетах и лично.
Irwin; JohnyDeath; +2 Ответить
93. koln 27.05.19 13:25 Сейчас в теме
Прорабатывал данный пример и заметил, что процедуру
Процедура Записать(Знач ТЗ) Экспорт

	Текст = Новый ЗаписьТекста(мПутьКФайлуНастроек);
	Запись = Новый ПарсерJSON;
	Текст.Записать(Запись.ЗаписатьJSON(ТЗ));
	Текст.Закрыть();
	мСодержимое = Неопределено;

КонецПроцедуры
Показать

необходимо размещать до раздела "Полноценный CRUD", т.к. без нее не происходит запись о новом сервере (вываливает ошибку).
94. Evil Beaver 6746 27.05.19 17:48 Сейчас в теме
(93) Поясните, пожалуйста, что значить "До раздела Полноценный CRUD"?
95. koln 28.05.19 05:55 Сейчас в теме
(94) По тексту, в модуле "ЦентральныеСерверы" до раздела "Полноценный CRUD" описаны только два метода:
Функция Add() Экспорт

	Если ЗапросHttp.Метод = "POST" Тогда
		ТЗ = ЦентральныеСерверы.ПолучитьСписок();
		Элемент = ТЗ.Добавить();
		ЗаполнитьДанные(Элемент);
		ЦентральныеСерверы.Записать(ТЗ);
		Возврат Перенаправление("/agents/index");
	КонецЕсли;
	
	Возврат Представление("Item");

КонецФункции

Процедура ЗаполнитьДанные(Знач Элемент)
	
	ДанныеФормы = ЗапросHttp.ДанныеФормы;
	Элемент.Идентификатор = ДанныеФормы["Идентификатор"];
	Элемент.СетевоеИмя = ДанныеФормы["СетевоеИмя"];
	Элемент.Порт = ДанныеФормы["Порт"];
	Элемент.Режим = "RAS";

КонецПроцедуры
Показать

Ниже в демонстрации идет пример, где записываются данные при создании нового "Агента кластера". Однако сам метод "Записать" реализован по тексту уже ниже, в разделе "Полноценный CRUD".
96. Evil Beaver 6746 28.05.19 10:15 Сейчас в теме
(95) Возможно. У меня предложение - оформлять замечания сразу в виде улучшений пуллреквестами на гитхаб. Тогда сообщество сможет обсудить и прокомментировать конкретные строки кода и принять их в общий продукт. Репо Одминуса на гитхабе: https://github.com/EvilBeaver/odminus
97. user848544 29.06.19 00:10 Сейчас в теме
Прошу помощь.
Возникает ошибка при запуске opm

PS E:\GITS\ServersConsole\webapp-template-master\src> opm install -l
ПРЕДУПРЕЖДЕНИЕ - При локальной установке параметр -dest игнорируется
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files (x86)\OneScript\lib\opm\src\core\Классы\ОписаниеПакета.os /
Ошибка в строке: 66 / Не задана версия пакета}
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

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

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

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

Ведущий программист 1С (УТ 11)
Москва
зарплата до 200 000 руб.
Полный день