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

0. Андрей Овсянкин (Evil Beaver) 5107 09.02.18 23:10 Сейчас в теме
Разрабатывать веб-приложения должно быть просто. И для этого 1С-ник не должен страдать, изучая десятки и сотни побочных технологий. В конце прошлого года я анонсировал разработку движка веб-приложений на языке 1С. Я планирую выпустить серию статей, оформленных в виде книги, или серии блог-постов, в которых постепенно будут описаны методики разработки сайтов на нашем любимом языке программирования – 1С.

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

Вознаграждение за ответ
Показать полностью
Комментарии
1. П Ж (palsergeich) 12.02.18 13:31 Сейчас в теме
Продолжайте, интересно.
Думаю в течение месяца с головой погрузится в oscript, на горизонте маячат несколько задач....
Liris; dim9; user764938; Lyolik; +4 Ответить
2. Никита Грызлов (nixel) 485 12.02.18 14:26 Сейчас в теме
(1) погружайся, Паш, погружайся :) Там много интересного, как в веб-части, так и в более привычном девопсе
3. Евгений Мартыненков (JohnyDeath) 291 12.02.18 14:27 Сейчас в теме
Фундаментально!
В закладки и подписки!
4. Андрей Овсянкин (Evil Beaver) 5107 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. Oleg Space (spacecraft) 12.02.18 14:44 Сейчас в теме
Попытка скрестить asp.net core с onscript.
Смотрится не плохо.
А почему не взять в качестве frontend vue.js? А backend использовать onscript. И без прослойки asp.net. Вроде как более перспективное направление может получиться.
6. Андрей Овсянкин (Evil Beaver) 5107 12.02.18 14:52 Сейчас в теме
(5) Можно и взять. Почему сейчас нет - в статье написано.
7. Oleg Space (spacecraft) 12.02.18 15:07 Сейчас в теме
(6) я не про использование в качестве шаблонизатора. А как полноценный фреймворк.
На onscript попытаться сделать аналог nuxt.js. С серверным рендерингом.
10. Андрей Овсянкин (Evil Beaver) 5107 12.02.18 16:02 Сейчас в теме
(7) Можно, думаю. И серверсайд-рендер react тоже можно прикрутить, не вопрос. Там всего-лишь middleware добавить в цепочку обработки.
spacecraft; +1 Ответить
8. Plague Fox (A1ice1990) 94 12.02.18 15:33 Сейчас в теме
В целом здорово, в закладки, в частном - стоит сравнить под нагрузкой с питоном, node.js, ну или на худой конец с php.
Есть смутное подозрение, что дальше единичных http сервисов не требующих высокой нагрузки - заходить не стоит.

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

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

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

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

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

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

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

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

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

python интерпретирует не всегда. Как правило первый раз. И пытается этот код скомпилировать в си. Что при повторном использовании может быть быстрее java кода.
27. Plague Fox (A1ice1990) 94 13.02.18 15:53 Сейчас в теме
(25) Таких тонкостей не знаю, но вроде как в питоне надо явно задавать участки, что подлежат такой компиляции, все остальное статически компилируемое.
41. Владимир Бондаревский (bonv) 104 13.02.18 19:05 Сейчас в теме
(25) Наиболее распространенная реализация CPython компилирует код в байт-код.
JIT-компилятор, про который видимо идет речь, используется, например, в реализации PyPy, но она имеет свои ограничения.
31. Андрей Овсянкин (Evil Beaver) 5107 13.02.18 16:55 Сейчас в теме
(24)
Если в закладочках осталась статья со сравнением быстродействия на различных задачах - буду очень благодарен.

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

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

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

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

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

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

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

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

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

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

Просвяти где не прав.
33. Андрей Овсянкин (Evil Beaver) 5107 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. Plague Fox (A1ice1990) 94 13.02.18 17:31 Сейчас в теме
(33)
Начнем с того, что Питон и JS - это языки у которых несколько реализаций. Каждая реализация работает по-своему.
Наиболее популярная реализация Питона - это CPython. Я не очень хорошо ее знаю, в моей картине мира она компилируется в байт-код, который затем исполняется виртуальной машиной.


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

Зачем это?

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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