Имя: Пароль:
1C
1С v8
Механизм обмена 1С с сайтом
0 mzelensky
 
12.08.13
13:01
Доброго всем! Данную приблуду только планируем разрабатывать, а поэтому хочу посовтоваться, какой алгоритм лучше использовать.

Итак, имеется 1С-ка (мозговой центр) и сайт (т.е. красивая веб-морда для клиентов). Общий смысл в том, что клиенты на сайте формируют заказы (вбивают первичные данные), а мы производим расчет (в 1С-ке) и выдаем им пакет выходных документов (несколько десятков документов различных форматов). Самый распространенный способ это:

Клиент набивает заказ. Заказ падает в общий котел документов на вырузку. Раз в 10 минут (некий интервал обмена) с сайта выгружаются новые заказы (в виде внешних файлов) и забираются обработанные заказы (тоже в виде внешних файлов).

Это достаточно просто реализовать, НО мне не нравится скорость работы. Т.е. обмен будет идти раз в 10 минут (выгрузка с сайта) + у 1С-ки будет стоять регламентное задание (с определенным интервалом), которое будет забирать сброшенные заказы...ну, т.е. все это время.

Второй вариант делать нечто "спускового крючка". Т.е. сайт раз в 10 минут скидывает данные, забирает готовые данные и запускает в 1С-ке обработчки загрузки. Так убивается ожидание на стороне 1С.

Третий вариант производить обмен в реальном режиме. Т.е. как только клиент отправляет заказ, он тут же (без ожидания) скидывается в 1С-ку и как только 1С-ка обработает его, она сразу выгружает данные на сайт. Так будет работать максимально быстро, но нужно решать вопрос очереди поступления заявок.

Вопрос: как все-таки лучше организовать процесс обмена?
1 Fragster
 
модератор
12.08.13
13:01
я за вебсервисы 1с
2 mzelensky
 
12.08.13
13:02
(0) Знакомый делал некий обмен по третьему варианту. 1С-ка и сайт общались через ком-соединения (сайт самописка на ПХП). + Ставил какую-то приблуду для создания парралельных процессов на стороне 1С. Вроде как его тесты показывали нормальную работу, при 100 одновременных запросах с сайта.
3 mzelensky
 
12.08.13
13:03
(1) Чуть подробней плиз! Т.е. ты предлагаешь .чтобы 1С-ка рулила всем процессом? Забирала данные и выгружала на сайт?
4 Tatitutu
 
12.08.13
13:03
мало входных данных - количество заказов (сейчас, ожидаемо) может две три продажи в неделю
5 BigShmax
 
12.08.13
13:04
у нас  веб сервис.   клиент вбивает номер заказа  и получает сумму его из 1с  для оплаты через egopay
6 mzelensky
 
12.08.13
13:05
(4) ну, пусть будет 50 в день, для начала.

Время обработки на стороне 1С примерно минута (если все хорошо)
7 Fragster
 
модератор
12.08.13
13:05
(3) по зажатию на кнопку "сформировать заказ" на сайте сайт обращается в 1с по векб-сервису, в 1ске происходит расчет цен с учетм маркетинговой шелухи (например) и выдается результат на сайт. По кнопке "подтвердить" сайт опять обращается к 1с и документ в ней проводится.

У нас так (ну, немного более комплексно из-за РИБ) происходит.
8 Fragster
 
модератор
12.08.13
13:06
(2) ком-соединение не рулит
9 mzelensky
 
12.08.13
13:07
(8) а если 10 пользователей одновременно нажимают "Сформировать". Как будет происходить распределение?
10 Fragster
 
модератор
12.08.13
13:08
(9) а как происходит распределение, когда в 1ске 10 пользователей нажимают "Записать"? вот то же самое и будет...
11 mzelensky
 
12.08.13
13:10
(10) веб-сервисы позволяют организовывать двухсторонний обмен? Просто мне нужно чтобы клиент нажал "сформировать" - данные уходят в 1С. Обработка может занять некоторое время. чтобы юзер не просто ждал все это время, а мог работать. Затем 1с-ка заканчивает расчет и кидает данные обратно на сайт ,а там уже клиент видит что-то типа "пакет документов сформирован"
12 Fragster
 
модератор
12.08.13
13:10
(11) формирование документа в 1с и "некоторое время"? сколько?
13 alexei366
 
12.08.13
13:11
(6) Мож вообще по красоте, сайт делает запрос к 1С, та запускает фоновое задание и возвращает сайт ГУИДик. Затем сайт опрашивает 1С "ну чо готово", та ей отвечает к примеру 30%. И уж если готова то сайт запросом (получается уже третим) получает итоговые данные. ГУИДики держи в регистре сведений, соответственно ГУИД эт измерение и реквизит процент выполнения (ну и дату навсякий создания ГУИДика). А процент будет обновлять наше фоновое задание (я надеюсь у нас же сервер 1С есть)
14 mzelensky
 
12.08.13
13:11
(10) как лицензии 1С раздаются при использовании веб-сервисов?
15 Fragster
 
модератор
12.08.13
13:12
(14) хз, постоянно висит пара-тройка ws-соединений, при том, что поток запросов около 10-20 в минуту
16 mzelensky
 
12.08.13
13:12
(12) Если все ок и первичку перепроверять не нужно, то около минуты. Если что-то не так или проводятся доп. проверки, то это может занять и день (пока на нашей стороне разберутсся со всем, проверять, исправят что не так)
17 Скай
 
12.08.13
13:13
+1 к веб-сервисам
18 mzelensky
 
12.08.13
13:14
(13) но все это тоже веб-сервисами реализовывать?
19 Fragster
 
модератор
12.08.13
13:14
(16) а, так у вас вручную? ну так сделайте по нажатию "сформировать" формирование в 1с, а по проведению в 1с - вызов веб-сервиса сайта (ну или фоновое задание по отправке или еще что, чтобы асинхронность со стороны пользователя 1с добавить)
20 alexei366
 
12.08.13
13:14
(18) ага
21 mzelensky
 
12.08.13
13:16
(19) там будет что-то типа "полуавтоматического". Т.е. если система удачно все создает сама и у нее не возникает проблем, то она может автоматом в обратную бросить данные. А если возникли какие-то проблемы, то она будет сообщать оператору, чтобы тот разобрался.
22 mzelensky
 
12.08.13
13:18
(19) через веб-сервисы можно перебрасывать двоичные данные? Ну т.е .файлы таких форматов, как пдф, jpg, xml и т.д. ?
23 MaxisUssr
 
12.08.13
13:20
(0)
Третий вариант. Плюсы - не нужна база на стороне сайта. С помощью веб-сервисов все, что указано в (0), можно реализовать
24 Fragster
 
модератор
12.08.13
13:21
(21) короче, сначала тебе надо самому прикинуть диаграмму состояний и диаграмму последовательности, а дальше все понятно будет, что по каким кнопкам реализовывать
25 Cube
 
12.08.13
13:21
Тоже плюсую к web-сервисам.
26 Fragster
 
модератор
12.08.13
13:21
(22) ну, больше нескольких метров врядли получится
27 Cube
 
12.08.13
13:22
(22) Можно пробросить ссылку, а на php потом её обработать.
28 mzelensky
 
12.08.13
13:23
(23) база на стороне сайта будет в любом случае.
29 Cube
 
12.08.13
13:24
(28) И это правильно.
30 mzelensky
 
12.08.13
13:24
(26) ну, вот, например, тестовый пакет содержит 42 файла и все это весит 2,6 метра.
31 MaxisUssr
 
12.08.13
13:25
(22)
Если позволит тип String - можно в виде строки передать (нужно смотреть, сколько в string максимум символов влезет).
(28) А зачем, если есть веб-сервисы? Есил какие-то изменения в структуре данных - то это же и в 1С, и на стороне сайта нужно переделывать
32 alexei366
 
12.08.13
13:26
(26) у меня веб сервис помню тестился на 30 метров, роде пашет до сих пор
33 Fragster
 
модератор
12.08.13
13:26
(31) чтобы работать, если упал коннект до 1ски. например, выводить каталог каждый раз дергая 1ску - не оптимально.
34 mzelensky
 
12.08.13
13:26
(31) Базы будут взаимодополняться. Будет несколько крос-таблиц, через которые все будет работать. Там хитрая система :)
35 Cube
 
12.08.13
13:27
(31) "А зачем, если есть веб-сервисы?"
Время отклика страницы, надежность интернет-ресурса... Не слыхал? :)
36 alexei366
 
12.08.13
13:28
(34) Давай, давай хитрец, поковыряйся с веб-сервисом сначала))
37 Cube
 
12.08.13
13:29
(30) (32) Я думаю, что это от настроек хостинга зависит...
38 MaxisUssr
 
12.08.13
13:29
(35)
Я это понял, просто намекаю на то, что сложность всего механизма увеличивается
39 mzelensky
 
12.08.13
13:30
(36) Я буду к тебе приставать :)
40 alexei366
 
12.08.13
13:30
(37) Да шиш, вроде у 1С просто 50 метров ограничение, потомучто когда на шарпе писали веб сервис то там гдето эту штуку сами определяли
41 alexei366
 
12.08.13
13:31
(39) Воу воу воу, полегче парень
42 Cube
 
12.08.13
13:33
(40) Полезная инфа, надо запомнить.
43 alexei366
 
12.08.13
13:33
А прикинте мужики чо заметил: когда мы перезаписываем запись регистра сведений через МенеджерЗаписи то модуль набора записей вызывается 2 раза. 1 раз чтоб удалить а второй чтоб записать .
Корочь офигеть))
44 mzelensky
 
12.08.13
13:34
(43) это сейчас просто типа "полезная информация" была?
45 alexei366
 
12.08.13
13:34
(44) накипело!
46 Fragster
 
модератор
12.08.13
13:38
(43) баян
47 Fragster
 
модератор
12.08.13
13:39
(43) ты еще поснимай галочку "основной отбор" у пары измерений - вообще удивишься
48 alexei366
 
12.08.13
13:40
(46) да вроде не баян , у меня 8.3.3.687 стоит, так что приходиться для изменения записи использовать набор записей(((
49 alexei366
 
12.08.13
13:40
(47) Чот я уже очкую))))
50 Fragster
 
модератор
12.08.13
13:40
(48) в 8.0 также
51 alexei366
 
12.08.13
13:41
(50) 8.0 в глаза даж не видел, эт наверно к счатью)
52 WhiteCat
 
12.08.13
13:51
(0) Я когда делал подобное реализовал сразу оба варианта. При формировании заказа на сайте он дергает 1С за веб-сервис, 1Ска все формирует и тут же кидает ответ. На всякий случай формируются и файлы с данными, которые загружаются раз в 5 минут. Работает вся эта кухня уже год без сбоев. Скорость всех устраивает.