Yep Cart. Пишем интернет-магазин на http-сервисах OneScript

0. blackhole321 1179 13.04.18 16:00 Сейчас в теме
В статье описана демонстрационная конфигурация, реализующая простейший интернет магазин на http-сервисах OneScript, интегрированный с 1С:Предприятие.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
6. Lapitskiy 982 20.04.18 10:45 Сейчас в теме
Ничего не нашел в статье про безопасность скриптов и т.п.
jquery и прочие - регулярно выпускают обновления безопасности, а как обстоят дела с этим делом в OneScript ?
Когда используем локально - проблем как бы нет, но когда выходим в открытый интернет, то надо быть готовыми к угрозам.
7. blackhole321 1179 20.04.18 10:56 Сейчас в теме
(6)
выпускают обновления безопасности, а как обстоят дела с этим делом в OneScript ?
Когда используем локально - проблем как бы нет, но когда выходим в открытый интернет, то надо быть готовыми к угрозам.

Полностью с Вами согласен.
Поскольку jquery является отдельной библиотекой и не является частью OneScript, ее обновление ложится на Ваши плечи. Собственно аналогичным образом обстоят дела и с другими продуктами (не OneScript). Конечно, некоторые включают автоматическое обновления, в некоторых, как источник используется CDN.
8. Maxisussr 24.05.18 16:35 Сейчас в теме
(0)
Не совсем понял, в проекте по сути есть 3 блока

1. Скрипты на php + web-сервер
2. СУБД MySQL/SQLLite
3. 1С (конфа + СУБД).

верно? и данные хранятся и в БД "1С" (назовем ее так, хотя там по сути конфа + своя СУБД, постгрес или скуль), и в MySQL/SQLLite для интернет-магазина для того, чтобы из php их читать.
где хранится "морда" сайта - все в п.1?
если так - то зачем тогда OneScript, что он делает?

если не так - просьба пояснить подробнее.
9. blackhole321 1179 24.05.18 16:39 Сейчас в теме
(8) Не совсем правильно поняли.
Никаких скриптов php нет, в качестве php выступает OneScript.
Из проекта на php взяты html формы.
10. FreeArcher 98 25.05.18 07:09 Сейчас в теме
Мне кажется интересным был бы магазин, который забирал данные именно из 1С. Т.е. по сути 1С так же бы оставалась учетной системой в компании, а интернет-магазин был всего лишь frontend во внешний мир.
Я так понимаю, рано или поздно к этому придет проект или идею другая все же?
11. blackhole321 1179 25.05.18 07:25 Сейчас в теме
(10)Если делать без промежуточной локальной базы на сайте то получаем следующие проблемы:
Количество клиентских лицензий 1с должно быть равно количеству одновременно работающих с базой пользователей. Если их зашло 100 надо 100 лицензий. Это будет дороговато :)
Если Ваш сайт подвергся ddos атаке подверглась атаке и Ваша учётная система, что как-то не очень.
Если Вы обновляете конфигурацию, платформу - сайт недоступен.
Если Вы не храните локальную копию данных, а получаете из 1с онлайн - Вы ограничены пропускной способностью канала сайт-1с.

В данном примере 1с и так является учётной системой, а onescript frontendом с промежуточной бд, в которой есть часть необходимых данных. И онлайн репликация между ними.

Поэтому по моему мнению лучше иметь локальную копию и репликацию
starik-2005; +1 Ответить
12. FreeArcher 98 25.05.18 09:17 Сейчас в теме
(11)
оличество клиентских лицензий 1с должно быть равно количеству одновременно работающих с базой пользователей. Если их зашло 100 надо 100 лицензий. Это будет дороговато :)

Про это я забыл. Это действительно проблема.

Остальные проблемы с приставкой "если".

(11)
В данном примере 1с и так является учётной системой, а onescript frontendом с промежуточной бд, в которой есть часть необходимых данных. И онлайн репликация между ними.

Данная схема классическая. Так работают все интернет-магазины, тот же Битрикс. И узким местом в этой схеме становится обмен. Т.к. структура данные в 1С и на сайте сильно отличается, бизнес-логика так же отличается. Из-за этого не получается удобной работы сайт->1C->сайт. Т.е. на выходе все равно 2 разные системы и посредник.

Мне кажется, если решить первую проблему с лицензиями, то схема с 1С в качестве БД и логики будет интересной. Сайт и 1С могут располагаться на одном физическом сервере. Проблему изоляции можно решить полным РИБ с базой, которая будет в офисе, если заворачиваться на безопасность.
13. blackhole321 1179 25.05.18 10:48 Сейчас в теме
(12)
И узким местом в этой схеме становится обмен. Т.к. структура данные в 1С и на сайте сильно отличается, бизнес-логика так же отличается.

Это потому, что используемые системы изначально ничего не знают об 1С и по большей части ориентированы на создание блогов.
В данном случае у Вас есть все возможности реализовать бизнес-логику и данные таким образом, чтобы они максимально соответствовали потребностям. Соответственно программирование и поддержка резко упрощаются. Данная конфигурация содержит по моему 4 или 5 таблиц. В принципе не ахти как много.

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

И иметь один сервер СУБД :) и тогда проблемы производительности станут общими и для сайта и для учетной системы.

Проблему изоляции можно решить полным РИБ с базой

Опять тот же самый обмен :), xml-файлы etc.
Не надо кикаких РИБ. В демо-конфигурации реализован обмен в реальном времени с использованием http-сервисов 1С и json.

И к тому-же Вы не сможете разместить сайт вовне, скажем на хостинге.
15. Prometeus2011 97 27.05.18 11:44 Сейчас в теме
Ну вот проталкивают этот OneScript прямо очень агрессивно. Что не обзор, то обязательно что-то на этой платформе.
Допустим, вы директор по развитию предприятия. У вас есть задача: сделать портал с каким-нибудь сервисом.
Выбор путей решения:
1. Нанять толкового net. программиста, чтобы запилить этот портал на технологии, на которой весь мир это делает + куча всяких жирных плюшек от Майки (кучу библиотек, отчеты красивые всякие, огромный коммьюнити и т.д.). Причем, net. программисты стоят сейчас даже дешевле 1сников (по понятным и оправданным, кстати, причинам).
2. Нанять аутсорсера, который сделает все это на web (в случае интернет-магазина).
3. Использовать среду разработки третьего поколения, которая тащит за собой кучу dependencies, интерпретирует часть функционала в net., часть - в 1с, скорость работы безопасность тоже не понятны. И все равно под поддержку продукта (по-нормальному) тоже придется брать отдельного 1с программиста, который еще разбирается в смежных областях, т.к. куча сопряжений технологий, которые не известно как будут работать в разных условиях и их надо постоянно контролировать и решать возникающие проблемы. Такой спец дорогой очень.
Ну я-бы не рискнул в это окунаться.
1с - платформа для разработки учетных систем! Все, что не связано с учетом - у нее получается плохо (медленно и технически не красиво).
Ну и бабло 1сники любят, очень любят. Отсюда все в лицензиях. Мы-же ведь все честные люди.
16. blackhole321 1179 27.05.18 12:42 Сейчас в теме
(15)
Ну вот проталкивают этот OneScript прямо очень агрессивно

Да никто его не проталкивает :) Мне например, неудобно писать большие статьи, поэтому получается часто и по немногу.
Пункты 1,2: Все дело в том, что портал как и интернет-магазин по большей части не существуют сами по себе, а как правило являются частью информационной системы предприятия. В нашей стране так исторически сложилось, что основой этой самой информационной системы как правило является 1С:Предприятие. Это ни хорошо и не плохо, это данность. Поэтому все эти порталы и интернет-магазины должны взаимодействовать с 1С, причем порой, достаточно тесно. И здесь встают вопросы, связанные с интеграцией этих систем, а также их доработкой т.к. все течет, все изменяется. Нанять программиста . Net как и аутсорсера php конечно можно, однако у Вас возникнут дополнительные накладные расходы на коммуникации между специалистами. К примеру, Вам нужно будет обяснять условному аутсорсеру, что такое цены номенклатуры, почему иногда их лучше выгрузить заранее, оговорить форматы, составить ТЗ etc. И так каждый раз даже при небольшх изменениях. И неизвестно, что в итоге дешевле и эффективнее.
Пункт 3.
Скорость и безопасность Вы можете протестировать. Если что-то непонятно и есть конкретные вопросы - welcome.

1с - платформа для разработки учетных систем! Все, что не связано с учетом - у нее получается плохо (медленно и технически не красиво).

Я и не призываю делать сайты на 1с :) для этого можно задействовать OneScript
17. starik-2005 2196 27.05.18 13:59 Сейчас в теме
(16)
Я и не призываю делать сайты на 1с :) для этого можно задействовать OneScript
Правильно ли я понимаю, что ванскрипт - это отдельная программа-интерпретатор кода 1С и для нее есть к апачу либа?
18. blackhole321 1179 27.05.18 14:25 Сейчас в теме
(17)
Ванскрипт - это интерпретатор и среда выполнения, написанная на c#. Язык OneScript практически идентичен языку 1с:Предприятие синтаксически, что позволяет выполнять код 1С в ванскрипте методом ctrl+c ctrl + v. В данном конкретном случае используется библиотека aspnethandler. Это обычный обработчик web - запросов asp.net, который использует класс интерпретатора ванскрипт для генерации ответа. Фактически это обычный asp.net сайт, который может выполнять текстовые файлы, написанные на языке 1с. Конечно, Вы можете писать свои библиотеки на c# и использовать их внутри интерпретатора. Как к примеру используете в 1с com объекты или внешние компоненты, только более гибко. Работает все это на windows под iis и на linux под апачем или xsp. В данном случае, среда 1с:предприятие используется как среда разработки, в которой Вы пишете и отлаживается код. Потом выгружает конфигурацию в файлы и формируете само web-приложение (сайт).
Ссылки по теме:
Что такое ванскрипт:
Http://onescript.io
Публикации по теме http сервисов можете найти у меня в профиле.
19. blackhole321 1179 27.05.18 14:29 Сейчас в теме
(18)Прошу меня извинить, правильная ссылка:
http://oscript.io
20. starik-2005 2196 27.05.18 14:34 Сейчас в теме
(19) почитал - интересная тема. Надеюсь, 1С возьмет у вас синтаксис для работы с регулярными выражениями, а то уж больно без них местами не просто )))
21. blackhole321 1179 27.05.18 14:39 Сейчас в теме
(20)Ну это штатный синтаксис и классы ms. Если это проблема - есть com объекты или написать обёртку на native api если для linux
22. baton_pk 401 27.05.18 19:44 Сейчас в теме
(15)
Допустим, вы директор по развитию предприятия. У вас есть задача: сделать портал с каким-нибудь сервисом.

допустим, вы простой смертный одинэсник, который хочет упорядочить бардак в своей работе, и у вас есть задача: админка для типовых рутинных задач. В большее односкрипт пока не рвётся.
23. blackhole321 1179 28.05.18 08:17 Сейчас в теме
(22)Ну почему не рвется? Если инструмент нормальный - почему бы не создать портал или сайт?
27. baton_pk 401 28.05.18 11:04 Сейчас в теме
(23)
не создать портал или сайт?

безопасность и быстродействие - две вещи, до сих пор окутанные туманом. Внутренний - да, торчащий наружу - уже со скрипом.
28. blackhole321 1179 28.05.18 11:29 Сейчас в теме
(27) А что конкретно окутано туманом, по сравнению с сайтом, написанном на c# по классической технологии ASP.NET? Собственно это он и есть.
И что не так с производительностью? На запросах типа "Hello world", как показали мои замеры - производительность чуть лучше, чем у php, поставленном по умолчанию. И это как-бы не секрет.
30. baton_pk 401 28.05.18 11:53 Сейчас в теме
(28)
На запросах типа "Hello world"

запросы типа хеллоуворлд не показатель совсем. Кэширование, работа под нагрузкой - много вещей, где можно просесть.
32. blackhole321 1179 28.05.18 12:00 Сейчас в теме
(30)Полностью согласен, можно. Можно просесть и на php и на c# и на java. Я привел пример, как отправную точку. Иначе нет смысла этим заниматься. По моим первичным оценкам - вполне годно, по крайней мере для сайта или портала - не уровня facebook или yandex. К тому-же есть горизонтальное масштабирование (но это история уже для среднего бизнеса).
34. starik-2005 2196 28.05.18 12:56 Сейчас в теме
(32) горизонтальное масштабирование везде кроме 1С есть )))
35. blackhole321 1179 28.05.18 13:21 Сейчас в теме
(34)А в 1С рабочие сервера это не оно?
36. starik-2005 2196 28.05.18 13:34 Сейчас в теме
(35) не совсем оно, ибо основной элемент нагрузки - СУБД. Количество записей в СУБД при этом ограничено. В практике разработки высоконагруженных решений существует два вида масштабирования: вертикальный и горизонтальный шардинг для данных, когда данные разбиваются на части и хранятся в разных узлах СУБД. Также есть кешеры - мемкеш, рэдис, тарантул и просие NoSQL-inmemory-решения, позволяющие создать промежуточную прослойку между реляционной СУБД и объектной моделью данных.

Рабочие сервера 1С - это механизм избыточности, служащий для повышения стабильности работы, но не ее скорости, т.к. для синхронизации блокировок между рабочими серверами требуются некоторые ресурсы, а ожидание, как известно, чаще всего возникает на этих самых блокировках, Таким образом нередки случаи, когда увеличение количества серверов в кластере снижает производительность, ибо возникает проблема самого слабого звена...
24. TODD22 19 28.05.18 08:24 Сейчас в теме
(22)
В большее односкрипт пока не рвётся.

А статья вроде как говорит об обратном :)
25. blackhole321 1179 28.05.18 08:50 Сейчас в теме
(24)Ну статья - это отражение моего личного видения области применения OneScript. У Сергея может быть другое видение. Это нормально. Сила в многообразии :)
26. baton_pk 401 28.05.18 11:02 Сейчас в теме
(24) статья говорит "смотри, как я умею!". Если приору занизить и поставить туда трубу широченную, это не значит, что автоваз рвётся в спорткары :)
Энтузиазм - это здорово, но к моему великому сожалению энтузиастов пока слишком мало, чтобы говорит о чём-то.
29. blackhole321 1179 28.05.18 11:48 Сейчас в теме
(26)На мой взгляд аналогия не совсем корректная. Тогда уж мы взяли деталь от "АвтоВАЗа" и использовали в другом автомобиле. Если деталь нормальная, то почему бы и нет? Кстати такая практика в автомобилестроении достаточно распространена.
31. baton_pk 401 28.05.18 11:58 Сейчас в теме
(29)
то почему бы и нет?

да я-то только за.
33. blackhole321 1179 28.05.18 12:02 Сейчас в теме
39. Aleksey81 1034 16.12.18 16:46 Сейчас в теме
Уважаемый автор, очень не хватает описание шагов для запуска проекта. Просто восстановить базу и опубликовать на веб сервере ведь мало? Надо ставить OneScript? Как-то заполнять константы?
Очень-очень нужен мануал "для чайника".
40. blackhole321 1179 16.12.18 20:58 Сейчас в теме
(39)Вся информация по настройке и развертыванию изложена в статье:
https://infostart.ru/public/789679/
Вышеуказанная конфигурация является базовой, для этой статьи и все настройки etc. также справедливы и для этой публикации, за исключением прикладного кода, который описан в настоящей публикации.
Если возникнут вопросы - пишите, с удовольствием отвечу.
Aleksey81; +1 Ответить
41. Aleksey81 1034 16.12.18 21:02 Сейчас в теме
Оставьте свое сообщение
Вопросы с вознаграждением