|
1C + сайт в реальном времени. | ☑ | ||
---|---|---|---|---|
0
gorden
14.03.13
✎
15:01
|
Добрый день. Есть самописная, очень легкая конфигурация 1С (номенклатура, поставщики, заказы, учет) + MSSQL. Подумываю завести ее на сайт для работы в реальном времени. Связка следующая:
ASP.NET (web страница) <-> V82.COMConnector <-> 1C <-> MSSQL COM обьект 1С используется в пуле соединений, т.е. при запросе с web страницы не создается каждый раз. Через ASP получаем доступ к обьектам, и функциям 1С. Подключение к 1С с web страницы делается от имени одного пользователя, предварительно созданного в 1С (или можно завести несколько, и в зависимости от продолжительности запросов переключаться между ними). Для теста, я завел около 70000 товарных позиций. Делаю поиск по названию товара (c ASP скрипта). Замеряю скорость выполнения страницы ~ 0.005 сек. Самый сложный документ (заказ + движения по номенклатуре, поставщику, плану сетов) проводится ~ 0.07 Есть ли смысл? Каковы возможные траблы? Что нужно учесть? Web-сервисы не предлагать. |
|||
1
MSII
14.03.13
✎
15:05
|
А почему не веб-клиент?
|
|||
2
НЕА123
14.03.13
✎
15:07
|
(1) лицензии
? |
|||
3
MSII
14.03.13
✎
15:12
|
(1) "В соответствии с действующим Лицензионным соглашением, использование программных или аппаратных средств, уменьшающих количество пользователей, которые имеют непосредственный доступ к "1С:Предприятию 8", не уменьшает количества требуемых лицензий. Организация должна приобрести Клиентские лицензии по количеству пользователей, в действительности одновременно работающих с системой "1С:Предприятие 8". " (с)
|
|||
4
MSII
14.03.13
✎
15:13
|
(3) к (2)
|
|||
5
rs_trade
14.03.13
✎
15:18
|
(0) Не проще ли, просто обмен 1с базы с базой сайта запилить? например на прямых запросах, каждые 2-3 минуты.
|
|||
6
Maxus43
14.03.13
✎
15:19
|
(5) на прямых - тоже нарушение лиц соглашения
|
|||
7
Ork
14.03.13
✎
15:23
|
(3) "которые имеют непосредственный доступ к "1С:Предприятию 8""
В слове "непосредственный" у вас встречаются китайские иероглифы? |
|||
8
gorden
14.03.13
✎
15:25
|
Одновременно всегда будет работать только один пользователь (назовем его 1СWebUser). Он держит одну сессию/соединение. Т.е. паралельного выполнения (одновременно работающих пользователей) нет. Сайт работает через этого пользователя. Скрипты выполняются в очереди. Если одного такого пользователя не достаточно, можно купить лицензии на 3-4 пользователя и давать ASP подключаться через разных пользователей (в зависимости от занятости). Если у меня на один запрос уходит 0.05 сек, то можно осуществить 200 запросов к 1С в секунду от имени одного пользователя. Т.е. пользователь работает как некий ОПЕРАТОР 1C
(1) Вот к примеру, вы пришли в магазин, там сидит продавец. Он подбирает вам товар, оформляет заказ, делает все необходимые проводки. Он - ОПЕРАТОР (пользователь). Покупатели стоят в очереди и обслуживаются последовательно. Если очередь длинная, то нанимаем еще одного продавца - оператора (т.е. уже 2 пользователя). Но мы ведь не покупаем лицензии на каждого покупателя? |
|||
9
Fragster
гуру
14.03.13
✎
15:26
|
веб сервисы круче и быстрее
|
|||
10
gorden
14.03.13
✎
15:27
|
(8) Извиняюсь, 20 (не 200)
|
|||
11
ptiz
14.03.13
✎
15:28
|
Всё логично.
|
|||
12
xReason
14.03.13
✎
15:28
|
(9) а веб-сервисы не "отъедают" также клиентскую лицензию на сервере, как и ком объект?
|
|||
13
MSII
14.03.13
✎
15:29
|
(7) Перечитай еще раз (3), медленно и вдумчиво.
|
|||
14
Maxus43
14.03.13
✎
15:29
|
(8) 1с безразницы на твои умозаключения, подпадаешь под (3) лицензионного соглашения с 1с. Считай что лицензия на раб место, если бы за одним компом по очереди вбивали данные - пожалуста
|
|||
15
gorden
14.03.13
✎
15:31
|
(9) Через веб сервисы не получится транзакций сайт-1с. Или я не прав? Так-же, веб сервисы надо парсить (в смысле данные). Вы уверены, что работа с ними быстрее?
|
|||
16
Fragster
гуру
14.03.13
✎
15:31
|
(15) что парсить?
|
|||
17
MSII
14.03.13
✎
15:32
|
(8) Нет такого пользователя - 1СWebUser. Есть конкретные Иванов, Петров, Сидоров. Если они работают втроем одновременно, нужны три лицензии, вне зависимости от того, какие прокладки между этими тремя уважаемыми людьми и информационной базой используются.
|
|||
18
gorden
14.03.13
✎
15:34
|
(17) А чем 1CWebUser не конкретный пользователь? У него есть свои права, привелегии, доступ к определенным обьектам.
|
|||
19
Maxus43
14.03.13
✎
15:37
|
(18) что кому ты тут хочешь доказать? Лицензионное соглашение однозначно. Спроси в поддержке 1с - ответят тоже самое
|
|||
20
alexkr
14.03.13
✎
15:41
|
(18) Внимательно читай лицензионное соглашение.
Тебе предлагают не веб сервисы, а веб интерфес, для своих справочников и документов делаешь управляемые формы, публикуешь базу на веб сервере и работаешь прямиком в базе без лишнего гемора. Насчет скорости не уверен что будет быстрее, но головняка так точно НАМНОГО меньше будет... |
|||
21
gorden
14.03.13
✎
15:41
|
(16) Web сервис - обмен XML данными, которые нужно сначала подготовить (сформировать), передать, а затем их распарсить (извлечь). Это ведь отнимает драгоценное время )))
|
|||
22
gorden
14.03.13
✎
15:45
|
(19) Я ничего не доказываю, а пытаюсь разобраться.
(20) Веб интерфейс - вы имеете в виду Web расширение? Нет, мне к сожалению не подойдет. |
|||
23
alexkr
14.03.13
✎
15:49
|
(22) нет, я имею в виду тонкий клиент используемый через браузер - тоесть веб клиент. в 8.2 такая весч появилась... Если база самописная и легкая ( 3 справочника, 2 документа)- то ее адаптировать будет легко и быстро...
|
|||
24
MSII
14.03.13
✎
15:50
|
||||
25
gorden
14.03.13
✎
15:52
|
(23) (24) Не подходит (((
|
|||
26
alexkr
14.03.13
✎
15:53
|
(25) почему?
|
|||
27
pessok
14.03.13
✎
15:55
|
(26) потому что он хочет интернет-магазин сделать :)
|
|||
28
gorden
14.03.13
✎
15:55
|
(26) Интернет магазин, со своим дизайном, логикой итд.
|
|||
29
gorden
14.03.13
✎
15:55
|
Лицензия 1С на сервер.
|
|||
30
MSII
14.03.13
✎
15:57
|
(29) Не обязательна.
|
|||
31
gorden
14.03.13
✎
15:58
|
Сайт работает как пользователь 1С.
|
|||
32
alexkr
14.03.13
✎
15:59
|
это из (8)
Вот к примеру, вы пришли в магазин, там сидит продавец. Он подбирает вам товар, оформляет заказ, делает все необходимые проводки. Он - ОПЕРАТОР (пользователь). Покупатели стоят в очереди и обслуживаются последовательно. Если очередь длинная, то нанимаем еще одного продавца - оператора (т.е. уже 2 пользователя). Но мы ведь не покупаем лицензии на каждого покупателя? Так какой же это интернет магазин? это рабочее место продавца в конторе. Если нужен именно инет магазин, возьмите любой стандартный движек сделайте на нем сайт и наладьте офлайн обмен с базой. |
|||
33
MSII
14.03.13
✎
16:04
|
(31) Оба варианта могут работать как с серверной, так и с файловой ИБ. Полагаю, работу с файловой ИБ ты не рассматриваешь. Тогда упоминание лицензии на сервер 1С ни к чему, его приобретать придется в любом случае.
Количество клиентских лицензий, которые тебе нужно будет приборести = числу живых людей, одновременно пользующихся твоим магазином. Из плюсов твоего варианта остается только дизайн. |
|||
34
gorden
14.03.13
✎
16:05
|
(32) Ну да, по логике получается, что так оно и есть - рабочее место продавца в конторе. Это и есть функция сайта. Я об этом и писал.
Обмен данными не интересен. Хочу получить работу в реальном времени и с транзакциями. Долго обьяснять механизм, но суть должна быть такова. |
|||
35
alexkr
14.03.13
✎
16:11
|
(0) ладно, пойду спать.
Не делайте одно универсальное решение на все случаи жизни - в результате получается откровенное го...но. Если нужны и сайт с инет магазином и рабочее место продавца в конторе (два, три... рабочих мест), то сделайте отдельно сайт, на нормальном, стандартном движке с офлайн обменом, и отдельно АРМ продавца с прямым доступом в базу. Такой вариант может местами и не удобен, но точно более практичен. А как говорится, зубов боятся в ... ну в общем есть какая то народная мудрость. Обмен это не так страшно, если он отлажен и корректно работает - то его перестаешь замечать и он вовсе не напрягает. |
|||
36
gorden
14.03.13
✎
16:19
|
(33) Так я это и пытаюсь понять. Не могли бы вы обьяснить, что значит "число живых" и "одновременно"? У меня есть пользователь/сеанс 1С. Через него сайт (ASP скрипт) обращается к 1С. Пусть это будет рабочее место. Пользователи сайта выстраиваются в очередь за этим рабочим местом, т.е. как бы работают последовательно, по очереди с одного рабочего места. Т.е. в один момент времени работает один живой человек.
Если пользователей сайта становится больше, можно добавить еще одну клиентскую лицензию, дабы распределить пользователей сайта по 2м рабочим местам для ускорения. И т.д. |
|||
37
ptiz
14.03.13
✎
16:27
|
(36) Тебе пытаются объяснить не про техническую часть, а про лицензионную.
Взять ту же самую 1С применительно к SQL-серверу. Несмотря на то, что коннект к SQL устанавливает одно приложение "сервер 1С" от имени одного юзера, лицензий на SQL надо купить столько, сколько "живых" юзеров работают с SQL через "сервер 1С". |
|||
38
Serginio1
14.03.13
✎
16:35
|
С точки зрения работа сайта с 1С через вэб сервисы проще разделять задачи для Вэб программиста и 1С программиста. Структуры генерятся автоматически. Единственный минус, это возможность разрыва соединения, когда напрмер метод создающий документ отработал послал ответ, а сайт его не получил. Были такие ситуации. Для этого нужно дополнительно отрабатывать такие ситуации.
|
|||
39
gorden
14.03.13
✎
16:38
|
(37) Я не могу найти в лицензионном соглашении 1С привязку к "живому" пользователю. Там речь идет о лицензиях на "рабочее место" и на "сеанс".
|
|||
40
gorden
14.03.13
✎
16:39
|
Сеанс у меня один. Рабочее место одно.
|
|||
41
fmrlex
14.03.13
✎
16:47
|
Интересно. Если конфа стоит на 1 компе и в конторе к компу в разное время подходят 10 человек и делают свои операции. Необходимо купить 10 лицензий?
|
|||
42
gorden
14.03.13
✎
16:47
|
(38) Как раз я и хочу разделить задачи. Т.е. в моем случае в 1С есть некий набор необходимых функций доступных через внешнее соединение. Что-то вроде своего мини API 1С-сайт. Скажем, создать заказ, провести оплату итд. В эти функции заложен весь внутренний алгоритм 1С (создание обьектов, проводки итд), скрытый для web программиста.
А Web программист спокойно обращается к этим функциям через ASP <-> COM, получая необходимые данные и визуализирует их как надо. |
|||
43
sda553
14.03.13
✎
16:48
|
(17) Правильно, если Иванов Петров и Сидоров распечатали себе отчет на бумагу, ушли домой и ночью решили этот отчет почитать, то независимо ни от чего, считается, что они пользовались 1С ночью
|
|||
44
gorden
14.03.13
✎
16:49
|
(41) Вот и я об этом-же!!!!!!
|
|||
45
sda553
14.03.13
✎
16:50
|
(43) +А не дай бог вы этот отчет в метро налепите на стену, на лицензиях разоритесь
|
|||
46
fmrlex
14.03.13
✎
16:50
|
"В соответствии с действующим Лицензионным соглашением, использование программных или аппаратных средств, уменьшающих количество пользователей, которые имеют непосредственный доступ к "1С:Предприятию 8", не уменьшает количества требуемых лицензий. Организация должна приобрести Клиентские лицензии по количеству пользователей, в действительности ОДНОВРЕМЕННО работающих с системой "1С:Предприятие 8". " (с)
Понятие одновременности есть в юриспруденции? |
|||
47
fmrlex
14.03.13
✎
16:54
|
Т.е. если я придумываю механизм НЕОДНОВРЕМЕННОЙ работы пользователей, то в случае судебных разберательств я смогу я могу аппеллировать к данному факту.
|
|||
48
fmrlex
14.03.13
✎
16:54
|
(47) "я смогу" - зачеркнуть
|
|||
49
fmrlex
14.03.13
✎
16:55
|
(47) S/аппелировать/апеллировать
|
|||
50
sda553
14.03.13
✎
16:56
|
(0) А по теме, тебе про веб сервисы дело говорят. Поднимаешь веб сервис на 1С и забудь о пулах ком объектов.
Сайт делает soap запрос на веб сервис 1С, получает ответ и радуется в соответствии со своей логикой. Либо в зависимости от бизнес деманда, если не нужна оперативность данных, можно сделать веб сервис у сайта. Тогда веб сервис 1С не нужен. 1С раз в сутки будет подключаться к веб сеовису сайта, сливать в его БД нужные данные и все опять счастливы |
|||
51
gorden
14.03.13
✎
16:57
|
(46) Я так полагаю, что даже если под словом "ОДНОВРЕМЕННО" понимается открытый сеанс пользователя, то в моем случае открытый сеанс будет ОДИН.
(46) Так-же, "НЕПОСРЕДСТВЕННОГО" доступа к 1С (как описано) в моем случае у пользователей сайта нет. Они работают с WEB сервером. |
|||
52
fmrlex
14.03.13
✎
16:59
|
(51) Я бы все-равно сначала получил бы консультацию юриста.
|
|||
53
gorden
14.03.13
✎
17:00
|
(50) Да, я знаком с веб сервисами и поднимал их уже. Но не устраивает отсутствие транзакционности и раздвоение логики (сайт-1С). К сожалению не могу все детально описать. Проект очень нестандартный.
|
|||
54
gorden
14.03.13
✎
17:04
|
(50) И к тому-же, например на один и тот-же запрос через COM и веб сервис в общей сложности уходит соответственно 0.005 сек (COM) и 0.5 сек (soap). Думаю разница очевидна.
|
|||
55
sda553
14.03.13
✎
17:17
|
(54) Ты тысячу запросов замерил?
|
|||
56
sda553
14.03.13
✎
17:17
|
Одновременных
|
|||
57
sda553
14.03.13
✎
17:19
|
Я конечно понимаю, что ком приложение поднятое в памяти отлично обработает 1 запрос, но тут речь идет о скорости обработки одновременных запросов
|
|||
58
Biker
14.03.13
✎
17:27
|
Выгрузи 1-раз себе эти 70000 поз, а после делай обмен только с изменениями. Постоянно таскать из 1с этот каталог некомильфо.
|
|||
59
gorden
14.03.13
✎
17:29
|
У меня в 1С есть функция доступная для внешнего соединения. В ней идет еденичный запрос к номенклатуре (поиск).
Если на ASP я обращаюсь через COM к 1С установленной на этом же сервере, то в общей сложности страница ASP c результатом запроса "отрабатывает" за 0.005 сек. Если же на ASP я обращаюсь к веб сервису (который в свою очередь в 1С обращается к этой же внутренней функции 1С)то ASP страница в среднем отрабатывает за ~ 0.05. Понятно, что в обоих случаях функция выполняется одинаково по времени, но формирование SOAP, далее IIS, потом парсинг SOAP на ASP дает о себе знать. Это исключительно мои замеры основанные на еденичных запросах. Насчет одновременно, надо поэксперементировать. |
|||
60
gorden
14.03.13
✎
17:29
|
(57) У меня в 1С есть функция доступная для внешнего соединения. В ней идет еденичный запрос к номенклатуре (поиск).
Если на ASP я обращаюсь через COM к 1С установленной на этом же сервере, то в общей сложности страница ASP c результатом запроса "отрабатывает" за 0.005 сек. Если же на ASP я обращаюсь к веб сервису (который в свою очередь в 1С обращается к этой же внутренней функции 1С)то ASP страница в среднем отрабатывает за ~ 0.05. Понятно, что в обоих случаях функция выполняется одинаково по времени, но формирование SOAP, далее IIS, потом парсинг SOAP на ASP дает о себе знать. Это исключительно мои замеры основанные на еденичных запросах. Насчет одновременно, надо поэксперементировать. |
|||
61
gorden
14.03.13
✎
17:31
|
(58) Почему?
|
|||
62
Biker
14.03.13
✎
17:37
|
(61) Ляжет такое творение при нагрузке от 100-ни и кста веб лучше отделить от 1с по соображениям сетевой безопасности.
|
|||
63
sikuda
14.03.13
✎
17:42
|
Правильно тебе написали насчет лицензий. И еще ты должен приобрести клиенских лицензий на MS SQL столько-же, или у тебя должна быть соответствующая версия ПО.(Там для 1С тоже всего три соединения используется)
В твоей связке 1С лишняя, расширь кругозор... |
|||
64
sikuda
14.03.13
✎
17:42
|
Очень популярное и даже старое решение
ASP.NET (web страница) <-> MSSQL |
|||
65
gorden
14.03.13
✎
17:44
|
(62) От сотни чего, запросов или пользователей?
Выше я описывал, что все работает из под одного пользователя 1С. Т.е. запросы с сайта к 1С идут последовательно (плюс кешируются). Если скрипт ASP, делающий запрос в 1С выполняется за 0.005 сек, то за секунду можно выполнить 200 запросов от имени одного и того-же пользователя 1С. Понятно что это грубо, и запросы могут быть разными. Можно завести 2, 3, 4 пользователя 1С и распределять нагрузку между ними. НО одновременно 100 пользователей 1С не будет. |
|||
66
Serginio1
14.03.13
✎
17:44
|
(42) Ну опять же для COM нужно что бы сайт и 1С были в одной локальной сети, либо VPN. С вэб сервисами ты не привязан. Опять же типизация (генерация классов)
(60) А зачем нужна такая скорость? Как правило запись документа значительно дольше. Да и пользователь заметит длительность как минимум 0.5 секунды. |
|||
67
Serginio1
14.03.13
✎
17:45
|
(63) Ему нужна лицензия на сессию. Он может ограничить пул по количеству ядер.
|
|||
68
samozvanec
14.03.13
✎
17:46
|
(42) чем твое решение принципиально от веб сервисов отличается? парсить? преобразовния будут в любом случае. с веб сервисами может даже технически проще выйти. уж не знаю, как по производительности.
|
|||
69
samozvanec
14.03.13
✎
17:48
|
(65) вот в (63) дело говорят. тебе вообще нафига там 1с?
|
|||
70
Serginio1
14.03.13
✎
17:49
|
68+ Я тоже сначала был за решение с комами, но в итоге мне понравился вариант с вэб сервисами. Там где нужна скорость можно использовать вариант с прямыми запросами.
|
|||
71
gorden
14.03.13
✎
17:51
|
(70) Транзакции!!!!!! Имеют большое для меня значение..
|
|||
72
gorden
14.03.13
✎
17:52
|
(70) Как можно работать с транзакциями используя веб сервисы?
|
|||
73
Serginio1
14.03.13
✎
17:52
|
(69) Не все так просто что можно вытащить одним запросом.
Я кстати так работал, Вэб программисты были в шоке от названий полей. |
|||
74
Serginio1
14.03.13
✎
17:54
|
(72) Можно. Кстати а какой механизм транзакций ты используешь с ком?
|
|||
75
gorden
14.03.13
✎
17:54
|
(73) Поля названы как следует. Решение англоязычное, поэтому все названия кратки и понятны.
|
|||
76
Serginio1
14.03.13
✎
17:56
|
(75) Это касалось прямых запросов к SQL базе.
|
|||
77
samozvanec
14.03.13
✎
17:57
|
(75) на (69) ответь. зачем тебе 1с?
|
|||
78
Serginio1
14.03.13
✎
18:01
|
(74) По поводу транзакция понятно.
Вернее не пробовал, но можно через База.НачатьТранзакцию() Здесь действительно ком предпочтительней. |
|||
79
gorden
14.03.13
✎
18:06
|
(77) Друзья, у каждого свои привычки и видение. Обьяснить почему мне надо именно так - вопрос долгого развернутого доклада и поверьте, на то есть причины. Да вы и не вдавайтесь. Просто я вас хотел спросить как вы смотрите на эту связку, хотел узнать реальный опыт. Спасибо за комменты.
|
|||
80
Эстет хренов
14.03.13
✎
18:24
|
(0) Битрикс не предлагать? или у вас свой путь?
|
|||
81
gorden
14.03.13
✎
18:26
|
(80) Битрикс не пойдет (((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |