0. Evil Beaver 6001 20.05.19 18:10 Сейчас в теме

1Script.Web. Интернет-приложения на языке 1С

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

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

Комментарии
Избранное Подписка Сортировка: Древо
1. tusv 158 20.05.19 19:21 Сейчас в теме
Когда то игрался с v7script.dll Елы палы работал и без 1с
2. blackhole321 990 20.05.19 20:22 Сейчас в теме
3. FreeArcher 83 21.05.19 06:03 Сейчас в теме
Может я пропустил, но что будет web сервером выступать IIS или Nginx+PHP тоже можно, какие модули потребуются?

У вас нет образа docker (раз его упоминали) чтобы развернуть быстро и посмотреть действительно это того стоит?
5. ltfriend 306 21.05.19 08:35 Сейчас в теме
(3) причём тут вообще PHP? А пропустили последний пункт в конце статьи из списка «Зачем все это нужно?». Как я понял, сделано это все на .net core, а там используется свой кроссплатформенный веб-сервер Kestrel. В итоге, как в статье и было сказано, можно использовать хоть на кофеварке. Доп. софта ни какого не нужно. Как вариант, можно дополнительно использовать nginx в качестве обратного прокси для повышения производительности.
Кстати вопрос к автору: как с производительностью?
25. ArchLord42 68 23.05.19 02:50 Сейчас в теме
(5) запросы обрабатываются примерно с такой же скоростью как и чистый asp.net core. Производительность oscript в целом приблизительно равна c#, но не во всех случаях)
28. Perfolenta 19 25.06.19 13:02 Сейчас в теме
(25) ну, это вы серьезно загнули, на счет производительности сравнимой с C#....
8. sikuda 577 21.05.19 09:37 Сейчас в теме
(3) Для любителей PHP лучше транслятор 1С-PHP php1c.ru ;)
10. JohnyDeath 293 21.05.19 10:19 Сейчас в теме
(3) Советую ознакомиться с подробным примером от автора: https://infostart.ru/public/783435/
azhilichev; +1 Ответить
4. insurgut 197 21.05.19 06:15 Сейчас в теме
Что-то я с типичным примером не понял - а что мешает HTTP-сервис 1С поднять, который будет доступен "по всему миру"?
7. azhilichev 146 21.05.19 08:50 Сейчас в теме
(4) Наверное, ограничения по лицензиям 1С.
YPermitin; JohnyDeath; +2 Ответить
11. FreeArcher 83 21.05.19 11:01 Сейчас в теме
(7) Не понятно в чем ограничение? Лицензия задействуется только на момент соединения, это меньше секунды. Как правило через http сервисы делают для личных кабинетов, где количество одновременно работающих пользователей очень небольшое. А если ещё использовать схему когда раз получаются данные и потом просто используются, то лицензия и вовсе не надолго занята будет. Вобщем это не должно быть проблемой.
12. YPermitin 2624 21.05.19 12:52 Сейчас в теме
(11) Вы говорите про технический аспект лицензирования.

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

Так что придется в этом случае лицензии все же покупать и договариваться с фирмой "1С".

Пруф: http://v8.1c.ru/predpriyatie/questions_licence.htm#mvv
azhilichev; +1 Ответить
13. FreeArcher 83 21.05.19 13:04 Сейчас в теме
(12)
В соответствии с действующим Лицензионным соглашением, организация должна приобрести такое количество клиентских лицензий, сколько в действительности пользователей одновременно работают с системой "1С:Предприятие 8".


Так одновременно будет работать 1-2 клиента по 1 секунде, на них и будет выдана лицензия. И при использование 1Script.Web ничего не меняется ведь, схема забора лицензий такая же, что и если бы запирал сервер на PHP или на чем то другом.
YPermitin; +1 1 Ответить
14. YPermitin 2624 21.05.19 13:07 Сейчас в теме
(13)
Так одновременно будет работать 1-2 клиента по 1 секунде, на них и будет выдана лицензия. И при использование 1Script.Web ничего не меняется ведь, схема забора лицензий такая же, что и если бы запирал сервер на PHP или на чем то другом.


Лицензия выдается на пользователей, а не на клиентов и соединения.

Если нет доверия к моим словам, то Вы можете написать в саппорт фирмы "1С", описав ситуацию.
Возможно, их ответ Вас очень удивит.
15. FreeArcher 83 21.05.19 13:25 Сейчас в теме
(14) Да я не то что не доверяю, я хочу понять. Просто нельзя учесть сколько пользователей работают в момент времени.

Да и что значит пользователей. Например их всего 1000. Сегодня работает 10 сколько нужно лицензий? 10 верно ведь?
Так получается если из этих 10 в данную секунду работает только 1, то и нужно 1 лицензию?

Это в компании число пользователей условно постоянно, а как только выходим в веб оно становится постоянно меняющимся.
16. acanta 56 21.05.19 13:32 Сейчас в теме
(15) точно. Представим себе Гугл, который взимает плату с владельца сайта в интернете за каждого пользователя, который на него зашёл из поисковика.
Причем для доступа пользователя требуется внесение аванса в пользу гугля от владельца сайта.
При отсутствии аванса Гугль не открывает страницу результата поиска и пишет пользователю сообщение что у владельца сайта закончились деньги.
Внесённый аванс наш Гугль не возвращает, но если владелец хочет сделать ещё один сайт, то можно получить скидку при условии замены старого сайта на новый.
17. YPermitin 2624 21.05.19 13:32 Сейчас в теме
(15) вот тут то и нужно идти в фиому 1С для обсуждения сотрудничества.

Ситуация схожа с лицензированием мобильной платформы. Почти.
22. Darklight 17 22.05.19 13:46 Сейчас в теме
(12)Да, с лицензированием web-среды в 1С всё очень туго. Увы. В этом плане - OneSncript.Web - это как глоток свежего воздуха свободы. Но, чтобы был целый зелёный сад свежего воздуха тут конечно в комплекте должен быть и фроентэнд и бакэнд, понятный 1С-снику (об этом я ниже в отдельном комментарии надписал, т.к. это уже за рамками данного контекста).

Ещё в пользу OneScript.Web - развернуть его в стороннем облаке гораздо дешевле и проще чем, чем всю платформу 1С (в силу его легковестности, кроссплатформенности и, главное, независимости от установки лицензионных ключей - которые ставить в облаке очень сложно). В общем - проморгала 1С целый рынок, ну есть конечно 1С-Битрикс - но это всё-таки уже для крупных компаний, это не дешёвое решение, и требующее отдельно обученных специалистов. Да и в облаков с развёрнутым 1С-Битрикс не та уж много существует и не дёшёвы они (ну я предполагаю - не ручаюсь за достоверность - не сталкивался лично).
9. FreeArcher 83 21.05.19 10:13 Сейчас в теме
(4) Как я понял это замена прослойки (проксирующего веб сервера, например php, не важно). Т.е. фронтенд пишется на JS, но из JS достучатся до http сервиса 1С с авторизацией проблематично. А например из PHP вобще без проблем. Т.е. как работаю личные кабинеты в интернет магазинах например: JS=>PHP=>1C и обратно. По скольку на PHP писать 1С-ники не хотят, они могут заменить эту прослойку на 1Script.Web.
Пусть автор поправит.

(5) Спасибо за пояснения.

(6) Кстати я уже попробовал пример из другой статьи работает. Вот только после изменения кода приходится перезапускать 1Script.Web, не привычно. Ну и конечно, вроде бы от знания PHP избавляет, но боюсь на начальном этапе потребуется знать С# разбираться в исходниках, решать какие то вопросы и расширять функционал.
18. Evil Beaver 6001 21.05.19 18:39 Сейчас в теме
(9)
после изменения кода приходится перезапускать 1Script.Web, не привычно

Платформу 1С тоже приходится перезапускать после изменения кода, и ничего. В девелопе уже лежит fast-reload версия для контроллеров, но она только в исходниках.

Т.е. как работаю личные кабинеты в интернет магазинах например: JS=>PHP=>1C и обратно. По скольку на PHP писать 1С-ники не хотят, они могут заменить эту прослойку на 1Script.Web.

Ну так тоже можно, а можно и JS не писать, а делать олдскульный HTML с минимумом jQuery/bootstrap, тогда кубиков будет два: OsWeb=>1C

боюсь на начальном этапе потребуется знать С# разбираться в исходниках, решать какие то вопросы

Не бойтесь. C# это такой же 1С, только на английском. Все классы похожи на 1С. И потом, изучив C# вы автоматически изучите синтаксис JavaScript, PHP, Java, Groovy и C++ Радикальный рост компетенций и зарплаты в перспективе!

И все это легко, т.к. там учить то и нехер, на самом деле. Одну-две книжки в метро зачитать.

Бесплатный секрет вот вам рассказал, если чо.
Darklight; JohnyDeath; +2 Ответить
6. azhilichev 146 21.05.19 08:49 Сейчас в теме
Был на Хакатоне-2019 от "Серебряной пули". Алексей Лустин на мастер-классе показывал пример разработки на 1Script.Web. Прикольно. Но нужна документация.
Darklight; JohnyDeath; +2 Ответить
19. Glebis 11 22.05.19 10:24 Сейчас в теме
Midleware. Шоколадка за лучший перевод на русский.

Софтосредник.
Где могу забрать шоколадку?
20. YPermitin 2624 22.05.19 12:45 Сейчас в теме
(19) прокладка или костыль еще можно перевести :)
21. Darklight 17 22.05.19 13:36 Сейчас в теме
(19)"Посредник" проще (ну или "Посредник бизнес логики" - но это уже слишком длинно), ну можно ещё "Сервиспосредник"
23. Darklight 17 22.05.19 14:12 Сейчас в теме
Очень интересное решение - пока никак не доходя руки пощупать. Но всё-таки без фронтэнда и бакэнда которые были бы реализованы в аналогичном понятном, 1С-разработчику, ключе - данное решение очень ограничено в применении. Ну если опять-таки - не учить разработчика 1С разработке WEB-приложений, да ещё и языку C# и работе с базами данных, пусть хоть и через фреймворки - но это всё будут другие фреймворки, целая туча различных фреймворков - да ещё и на английском - в общем далеко не всем 1С-разработчикам это подсилу - так что пока обойти "Вы говорите – тогда нужно на Python или на NodeJS писать – я это не умею" - не эти, так другие сторонние и чуждые 1С-нику концепции разработки всё-равно ему придётся изучать.

Вот хорошо было бы если для:
Фронтенда - можно было бы набрасывать Web-морду хоть в том же конфигураторе 1С (или EDT) как это привычно 1С-разработчику - а потом выгружать её в XML (хоть тот же 1С-вский от выгрузки метаданных) и уже на основе этого XML - генерировать свою HTML страницу (напрямую или через конвертирование в другой фремворк, да хоть в тот же RAZR), если не целиком, то хоть ограничено (и имметь готовые web-компоненты для этого, на JavaScript). Ну и код алгоритмов формы 1С конвертировать в JavaScript как это делает платформа 1С для WEB-Клиента (ну хотя бы тоже ограничено). Вот это было бы мощное решение. И нет тут ничего не выполнимого - всё это можно сделать и в одиночку (базиз), и потом потихоньку развивать OpenSoure сообществом.

Бакэнд - аналогично тоже нужен фремворк, понятный 1С-разработчику. В первую-очередь - это просто доступ к СУБД, в терминах платформы 1С. Да, я не спорю, что в мире .NET есть свои фремворки для работы с СУБД, и может даже более мощные, чем 1С Предприятие 8, но их концепция далека от привычной. Иметь привычный фремворк для работы с СУБД - тоже очень хорошо. Причём саму СУБД так же можно спроектировать через 1С конфигуратор (или EDT) - выгрузить проект в xml файл, и на его основе сгенерировать набор классов в DotNET - а-ля структура метаданных 1С Предприятие 8, подключить это всё к OneScript как библиотеку - и использовать эти объекты метаданных доступа к СУБД почти так же как и в "родной" среде 1С Предприятие 8.

Такой бакэнд - я, кстати, уже разрабатываю, но у меня не так много времени на это - так что не ждите скоро...
В проекте по фронтэнд я бы тоже потом поучаствовал бы - но я далёк от web-разработки - хотя содействие в конвертации xml-форм 1С Предприятие 8 оказать бы тоже смог - у меня тут тоже есть один проект, находящийся в процессе разработки - фреймы для 1С, там есть разбор xml-форм 1С Предприятие 8.

Ну и сам по себе OneScript.Web мне тоже интересен, т.к. есть у меня и Мобильный 1С проект, требующий наличия web-сервера, способного обслуживать тысячи одновременных обращений (ну, я так предполагаю), при сотнях тысяч пользователей, а лицензионная политика 1С мне такое не позволяет сделать, даже если я бы купил несколько тысяч лицензий - и даже это очень дорого для такого проекта. А OneScript.Web это позволил бы сделать, правда не знаю - справился бы он технически с нагрузкой в 10К-соединений в секунду! Ну тут я лукавлю - конечно же, для такой нагрузки полюбому придётся делить рабочее серверное пространство на несколько параллельных blade-стеков обслуживания (иначе будет не оправдано дорого). Но 1000 одновременных соединений - на сервер - это необходимый минимум!


В общем - OneScript.Web проект очень интересный и перспективный! Автору большой респект!
24. SkyHunter 22.05.19 19:27 Сейчас в теме
Бизнес говорит – ну придумай что-нибудь, ты же 1С-ник, ты должен уметь все.


Опять исход от неверной посылки, что 1Сник должен уметь всё, быть этаким человеком-оркестром. Опять это желание сэкономить на количестве спецов.

А правильный ответ -- этим должны заниматься специально обученные люди, использующие нативные, проверенные годами и опытом инструменты.
Elisy; acanta; +2 Ответить
26. Elisy 927 23.05.19 07:58 Сейчас в теме
Подход интересный. Инструмент полезен для мелких ненагруженных систем.
К сожалению, не может конкурировать со связкой Asp.Net MVC + 1С.

Что произойдет при увеличении нагрузки? 1С станет слабым звеном.

Вижу нерешаемые структурные проблемы
1. Сам по себе скрипт 1С медленный.
2. Нет многопоточности
3. Коммьюнити раз в 100000 меньше, чем у C# Asp.Net MVC.

Что планируется делать с частыми задачами Asp.Net MVC? Переписывать средствами 1С?
1. OAuth авторизация
2. Обработка ошибок 404, 500
3. Кэширование
4. Сокеты
5. Настройка допустимых сиволов URL, максимального тела запроса,
6. https- www-редиректы
7. Bundle-минифицирование css и js
8. Управление заголовками
27. Evil Beaver 6001 30.05.19 17:34 Сейчас в теме
Сам по себе скрипт 1С медленный

Можно замеры конкретных кусков кода 1Script в сравнении с 1С, на основании которых вы сделали такой вывод? 1Script не медленнее 1С.

Нет многопоточности

Откуда такой вывод? В Node.js, кстати говоря, ее тоже нет. И ничего, пишут промышленные сервера :) А в 1Script.Web есть потоки на уровне Kestrel.

Что планируется делать с частыми задачами Asp.Net MVC
1. OAuth авторизация
2. Обработка ошибок 404, 500
3. Кэширование
4. Сокеты
5. Настройка допустимых сиволов URL, максимального тела запроса,
6. https- www-редиректы
7. Bundle-минифицирование css и js
8. Управление заголовками


Планируется дать примерно те же средства, которые дает платформа 1С. Что-то позволить, а что-то спрятать в платформу/опции Kestrel
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

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


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

Консультант ERP-систем
Москва
Временный (на проект)