Имя: Пароль:
1C
1С v8
Связь 1С и сайта
0 Telefon
 
03.11.12
08:56
Всем привет!
Подскажите, куда рыть в такой ситуации:
1. Есть сайт(сделан на php)
2. Есть 1с(возможные версии 8.0 и 8.1, 8.2)
3.Допустим посетитель сайта жмет кнопку "Купить товар"
4.В 1с должны делаться следующие действия, например, резервирование товара, выставление счета
Собственно вопрос:
как лучше(с учетом версии, см. пункт 2) лучше организовать связь логики сайта и 1С?Чтобы в 1С обработки вызывались при каких-либо действиях на сайте, какие технологии использовать?
1 zak555
 
03.11.12
08:59
> Есть сайт(сделан на php)

адрес
2 Telefon
 
03.11.12
09:20
(1) не выложили в сеть еще
а по теме?
3 Отладчик
 
03.11.12
09:21
(1) Впарь Битрикс.
4 foxruby
 
03.11.12
09:22
веб сервис
5 zak555
 
03.11.12
09:23
(2) можно бд с 1с выложить в доступ, но
минусы -- лицензии + сохранность БД

(3) не умею
6 Отладчик
 
03.11.12
09:24
(5) Опять не умеешь???
7 Telefon
 
03.11.12
09:24
(3) без битрикса
(4) 8.0 и 8.1 поддерживает веб сервисы?
8 Telefon
 
03.11.12
09:25
(4) как там по предельному числу пользователей с веб-сервисами?
9 zak555
 
03.11.12
09:25
(6) и не умел впаривать


(7) 8.0 -- нет, выше - да

чем 8.2 не нравится ?
10 Telefon
 
03.11.12
09:26
(9) у людей 8.0
11 zak555
 
03.11.12
09:28
(10) поставь им 8.2
12 ДенисЧ
 
03.11.12
09:28
(10) Обновляй и запуская веб-сервисы.
13 Отладчик
 
03.11.12
09:31
8.2 головного мозга... )
14 vs1c
 
03.11.12
12:26
(0) никаких бубнов(веб-сервисы, битриксы и пр.) не требуется и какая 8 по барабану. То что вы хотите реализуется парой скриптов на php (на сайте) и одной обработкой со стандартными функциями работы с Интернет (на стороне 1С). Запускаете ее как монитор и наслаждаетесь онлайном с сайтом. Что касается технологий для скриптов php - копать в сторону long polling.
15 Telefon
 
03.11.12
12:35
(14) а сколько сессий может выдержать такое? Сколько пользователей сможет с сайта запустить обработку 1С параллельно? Или надо шедуллер какой-то придумывать?
16 zak555
 
03.11.12
12:38
(15) обычное обращение к БД сайта
17 vs1c
 
03.11.12
12:45
(15) про сессии - вопрос к серверу. Обработка в 1С запущена одна и она мониторит сайт (с помощью ОДНОЙ копии скрипта с longpolling), ничего параллельно никакие пользователи  в 1С не  запускают. Она в онлайне видит происходящее на сайте и формирует необходимые документы в 1С.
18 Telefon
 
03.11.12
12:51
(17) Т.е. допустим два пользователя сайта нажали кнопку, например, купить, то эти два задания должны встать в очередь, а обработка их выполнить?
19 Amra
 
03.11.12
12:51
(18) Типа того
20 vs1c
 
03.11.12
12:52
(18) Да.
21 Telefon
 
03.11.12
12:58
(19),(20) а параллельности добиться можно как-нибудь?
просто заказчик хочет БЫСТРО.
22 vs1c
 
03.11.12
13:01
(21)Что значит быстро?
23 zak555
 
03.11.12
13:05
(21) в 1с пусть регламентное задание выполняется каждые 30 сек
24 Telefon
 
03.11.12
13:09
(22) несколько минут реагирование
25 vs1c
 
03.11.12
13:10
(23) Еще раз - регламентные задания НЕ НУЖНЫ. Обработка запускается, запускает скрипт с сайта и работает ОНЛАЙН - без задержек (ну кроме времени на передачу и пр.). Почитайте описание longpolling - просветление должно подойти почти сразу :)
26 Telefon
 
03.11.12
13:10
(22) а в параллель поставить можно как-то?
возможно ли параллельное выполнение обработок в 1С?
27 vs1c
 
03.11.12
13:10
(24) При изложенном подходе реагирование укладывается в секунды.
28 vs1c
 
03.11.12
13:11
(26) "параллельное выполнение обработок в 1С" - зачем?
29 Telefon
 
03.11.12
13:32
(28) допустим на сайте, одновременно, 1000 посетителей нажали кнопку "купить", если я поставлю в очередь 1000 заданий(я ведь правильно понял, что необходимо делать так), то один экземпляр обработки сможет быстро, допустим, зарезервировать товар на складе и счета выставить?Или лучше бы в параллель это выполнялось бы?
30 Telefon
 
03.11.12
13:33
(29) и еще там взаимодействие по сети предполагается для каждого задания в очереди
Такая распределенная системка
31 vs1c
 
03.11.12
13:38
(29)(30) " быстро, допустим, зарезервировать товар на складе и счета выставить" - прикиньте сколько это займет в 1С? Предложенная схема работает быстрее. Так что еще ускорять?
Про 1000 посетителей одновременно нажимающих кнопку Купить - это гипотеза или реал? Дайте угадаю - понты? Нет?
Одно резервирование при параллельном выполнении заказов - уже вынос мозга.
32 vs1c
 
03.11.12
13:39
(30) а "еще там взаимодействие по сети предполагается для каждого задания в очереди"-это про что?
33 Telefon
 
03.11.12
14:01
(31) про 1000 пользователей - реал.
(31) а почему быстрее?
задания то выставляются в очередь, а потом их 1С обрабатывает последовательно(где тут ускорение?)
(32) ситуация такая - человек жмет кнопку на сайте, предположим, купить.
тогда обработка должна зарезервировать в одной организации на складе товар, если его там нет(или количество мало) - обратиться по сети к 1с из другой организации(все это фирмы в одном холдинге) и там зарезервировать.Потом выставить счет потребителю.
34 Telefon
 
03.11.12
14:31
(31) я просто не пойму, где ускорение, в любом случае же будет резервирование...
35 vs1c
 
03.11.12
14:46
(34)  так про то и речь - чего гнать когда самое узкое место в 1С. Быстрее делать обмен смысла нет - 1С не успеет.
Про 1000 - одновременно нажимают купить? Простите, не верю.
36 Telefon
 
03.11.12
15:01
(35) ну про купить - это образно, другое жать будут
но порядок такой
я вот про это и говорю, как можно в 1С это ускорить?
может параллелизм какой возможен?
37 vs1c
 
03.11.12
15:04
(36) Так хочется устроить интерактив (проверка наличия на складах, резервирование и т.д.) в процессе оформления заказа на сайте?
38 Telefon
 
03.11.12
15:06
(37) да, своего рода
39 vs1c
 
03.11.12
15:16
(38) Ну вот, разобрались. Ну так та же технология может использоваться и для ваших хотелок. Хотя придется для начала продумать всю последовательность общения пользователя, сайта и 1С. Все реализуемо. Приведу пример. У меня был клиент, директор которого страсть как хотел через Инет запросы слать в свою 1С и отчеты всякие смотреть. Так озвученным способом мы ему такое дело прикрутили к его бухгалтерии - до сих пор кнопки там жмет. Кто-то сейчас начнет - УФ, веб-сервисы - отвечу просто - осчастливить дира вышло всего за 2 часа, из инструментов понадобился простенький хостинг, текстовый редактор и 1С. Разве это плохо? До сих пор перезваниваемся, а сколько он клиентов в мою сторону направил...
40 Telefon
 
03.11.12
15:32
(39), ну мне вот понятно, что можно задачи в очередь поставить, можно потом по этой очереди бежать и выполнять задания, но, как Вы написали, 1С - здесь узкое место, а вот если бы обрабатывать очередь в несколько потоков...
такое возможно?
41 oleg_km
 
03.11.12
15:52
(40) Ну а почему нет. Запускайте сразу пять заданий 1С, пусть все они просматривают очередь команд, просто обрабатываемая команда должна помечаться, чтобы сразу несколько экземпляров не начали обрабатывать. Или веб-сервер для каждой 1С заводит очереди и распределяет задания сам по 1С-кам
42 kiruha
 
03.11.12
16:08
(18)
Самая простая реализация (работала вживую еще на 7.7)
каталог на сервере сайта
в этот каталог кидались xml файлики заказа, по файлу на заказ
обработка(одна) сканировала каждые 3 мин каталог , подключение по ftp
считывала файлики и формировала автоматически заказ
при считывании велся лог в текстовом файлике - начала транзакции и окончания
После окончания файлики в архив
синхронизация по ценам/клиентам/номнклатуре

На 8 можно регламентное задание вместо обработки
43 Telefon
 
03.11.12
17:31
(39) а можно подробнее про технологию?
(41) а несколько 1С-ок могут работать с одной базой?
(42) ну да это и есть шедуллинг в какой-то мере, вопрос в другом, как ускорить это? возможно ли обработка очереди в несколько что-ли потоков?
44 Юрий Лазаренко
 
03.11.12
18:46
(42) Можно еще проще - при формировании заказа кидать его на мыло, 1Ской открывать письма и формировать в ней заказы.
(43) "возможно ли обработка очереди в несколько что-ли потоков "- да, возможна
45 vs1c
 
03.11.12
18:52
(43) "а можно подробнее про технологию" - а что мы тут до этого обсуждали, в (17) например. Детали и варианты реализации - в гугл и яндекс. Хотя судя по вопросу "а несколько 1С-ок могут работать с одной базой" - вам лучше начать с 1С, а еще лучше найти спеца и не тратить зря свое время, а также нервы и деньги клиента. Без обид. Хоте если он хочет быть кроликом...
46 bodik911
 
03.11.12
18:56
Да в чем хочешь написать можно (Рекомендую формат xml или csv)
47 bodik911
 
03.11.12
18:57
Битрикс тяжелый
48 kiruha
 
03.11.12
22:42
(45)
>>возможно ли обработка очереди в несколько что-ли потоков<<
Можно несколько сеансов выделить и в каждой обработку запускать.
Только при записи и проведении  уже в самой 1С ке блокировки накладываются.

>>Можно еще проще - при формировании заказа кидать его на мыло<<
Это долго (работа с почтой) и лишнее звено

P>S> а какая хоть нагрузка планируется - неужели сотни в минуту ?
49 vs1c
 
04.11.12
12:50
(48) Мне это не нужно - вы автору топика это объясняйте.
"а какая хоть нагрузка планируется - неужели сотни в минуту" - какой там - 1000 одновременно (см.(33)).
50 kiruha
 
04.11.12
13:53
(49) Промахнулся ссылкой
>> 1000 одновременно

тогда вообще не понимаю как к такому имеет отношение "простая" реализация

Под такую нагрузку нужна либо отдельная прога только на заказы, потом обменивающаяся с 1С, или распределенка, каждая обслуживающая свой поток

Но что то подсказывает, что при этом работала целая команда без вопросов на мисте )
51 Telefon
 
04.11.12
16:19
(45)я неправильно может выразился про несколько 1С - ок, я имел ввиду не клиентов, а вот именно серверов 1С, допустим одна база MS Sql, и несколько серверов 1с на разных машинах
(44) т.е. в 1С возможна многопоточность? если да, то куда копать
(48) несколько сеансов - не совсем то, хотя тоже вариант, хотелось бы классическую многопоточность, там пул потоков и т.д.
(50) я думал над этим, что если сделать отдельную прогу с бд и настроить своего рода репликацию на базу 1С, то там да
но меня смущает вопрос того, что будет и оффлайн работа, а синхронизация бд - дело не очень благодарное, хотелось бы проще как можно это сделать
(50) возможно ли в 1С создание распределенных систем( в плане балансировки нагрузки)?
(50) система пока не создана, есть только сайт, сейчас прорабатываю варианты с выбором софта на котором строить процессинг заявок, естественно бухгалтерия на 1с, хотелось бы сделать на ней по-максимуму
52 Telefon
 
05.11.12
10:11
(45)без обид, понимаете, мы только прорабатываем возможные варианты решения ситуации, если мы поймем, что сделаем это на 1С мы это сделаем, поэтому и обратились сюда, что бы люди, у которых, возможно, есть опыт, сориентировали нас

Кстати, а вот прямые запросы, если мы напишем прогу, которая будет осуществлять процессинг заявок, при этом фигача в базу 1с прямые запрсы это выход?
53 oleg_km
 
05.11.12
11:19
(52) прямые запросы - это INSERT и UPDATE, в типовую торговлю? Ну попробуйте
54 Telefon
 
05.11.12
11:59
(53) там не типовая,а в чем проблема в запросах? все же в конце концов заканчивается записями в бд, аргументируйте пожалуйста, ато голословное заявление...
55 pumbaEO
 
05.11.12
12:02
(54) ну например колонка с типом булево от 1С, не то же самое что в таблице sql с типом булево.
56 Telefon
 
05.11.12
12:41
(56) задача прямых запросов уже была(решал для упп) решилась успешно, поэтому это как бы не задача:)
57 Telefon
 
05.11.12
12:45
мы все как-то отошли от темы:)
может кто-то поделится опытом интеграции 1С и сайта с учетом быстрого онлайн процессинга и наботки в несколько потоков.
Пока, вижу два решения:
1.сайт формирует очередь, которую обрабатывают много сессий
2.отдельную бд, которая актуализируется из 1с с определенным интервалом,и работа с ней, если можно выразиться так, своего рода прокси из бд
Может кто-то еще подскажет?
58 zladenuw
 
05.11.12
12:55
(57) ну так ты все правильно написал. чего ждешь ? разрешения ? :). даю добро
59 Telefon
 
05.11.12
12:59
(58) спасибо, жду мож, кто элегантней решение придложит
60 Фрэнки
 
05.11.12
13:10
(59) максимально элегантные решения от 1С ? или может быть от Битрикса, ... ? А если напрямую соединяться с базой, но без использования средств из коробок 1С, то это прямо запрещено в лицензиях. Сам запрет - дело десятое, но его наличие означает отсутствие "элегантных" решений, если они не из коробки с лейбом 1С.
61 Telefon
 
05.11.12
14:34
(60) максимально элегантное решение в принципе.
сайт сделан не на битриксе(а в нем что есть такого?)
может кто-то делал что-то такое прямо классное в похожей ситуации
мои решения этой проблемы(см. (57)), на мой взгляд, костыльные какие-то...
62 DitriX
 
05.11.12
15:44
(0) решили аналогичную ситуацию - путем использования веб сервисов.
Т.е. на сайте хранится общая инфа по человеку (ФИО и % скидки), а вот когда он жмет накорзину - идет запрос в 1С.
Так же  в 1с выгружаются все данные по рейтингам, ожиданиям, и т.д.

Очень удобно. Для этих целей была сделана транзитная база 1С. Она подключена к центральной через внешние источники, и оттуда берутся регистры.
Операторы работают в транзитной. Там по факту подтверждения товара - в ЦБ создается документ резерва. И в конце дня - документ перемещения. Продажи с транзитной грузятся в ЦБ одним ОоРП за день.

Схема простая, позволила подключить 3 ИМ, легко обновляется.
Так же в 1С пишут новость - и 1С подключаясь по соап передает ее на сайты.
Т.е. на сайте бэкэнд юзает только админ.
Та и никто не боится что утащат базу с сайта, так как на сервере подня  тунель к базе 1С. В случае ДДОСа - просто блокируется ключ.

Вообщем если интересно пишите на [email protected]. Может что то подскажу :)
А то я так смотрю - тут все думают на уровне 90х годов :)
Файлики, хмл, фтп, и пр. Если нужна база онлайн - то таким методом этого не добьешься. Ну или прийдется всю базу держать на вебе. А согласитесь, что отчет на 1С (или схему бизнес процесса) проще и быстрее изменить, чем на пхп.
63 Прохожий
 
05.11.12
15:54
(36) "другое жать будут" - приложение для КПК пишешь - онлайн убийца Оптимы?
64 Прохожий
 
05.11.12
15:55
Если резервирование - стопудово ванселлинг...
65 Прохожий
 
05.11.12
15:55
преселлинг т.е.
66 Маленький Вопросик
 
05.11.12
16:06
Интересно, сколько готов заплатить за решение задачи автор?
67 Telefon
 
05.11.12
16:53
(62) Спасибо! интересно очень, хорошая информация для размышления.
Я недавно имел дело веб-сервисами - интересная идея.Но вопрос - а если допустим 1000 человек нажмет на кнопку на сайте, и сервис, допустим дернет функцию(функция трудная и тяжелая), то как это повлияет на интерактивность(пользователь номер 1000) долго ждать будет ответа на сайте?

(66) я - нисколько
68 Telefon
 
05.11.12
16:56
(63) оптима - это котрую в Нижнем делают? - не тут другая идея
69 Рамиль Маугли
 
05.11.12
17:02
Данная ветка в который раз показывает, как же далеки 1с ники от интернет технологий.
70 kiruha
 
05.11.12
17:15
(67)
>> - а если допустим 1000 человек нажмет на кнопку на сайте<<

Вот тут то она придет Ж-а
распараллеливать надо
71 Telefon
 
05.11.12
17:21
(70) да-да вот именно, а вопрос - существуют ли в 1С адекватные механизмы расспараллеливания?(в контексте данной задачи)
72 Alex11
 
05.11.12
17:46
(0) Реализовал подобное на своем проекте.
Заказы сбрасываются в Mysql таблицу.
в 1С на регламенте висит обработка, которая подключается к базе mysql и дергает новые заказы.
При получении нового делает следующее:
Создает нового контрагента (если контрагент такой есть, то находит), затем создает документ заказ покупателя, с резервированием
Информирует менеджера (отправка уведомления на почту, можно при желании и смс прикрутить)
Отправляет покупателю отчет о заказе, с указанными позициями (хотя это может делать сайт, но решил, что так удобней, по скольку контролируется остаток, и уведомление уходит с учетом наличия продукции)
73 kiruha
 
05.11.12
17:46
Одна центральная, несколько работают с сайтом
74 kiruha
 
05.11.12
17:46
к (71)
75 Telefon
 
05.11.12
18:19
(72) спасибо, буду иметь в виду(очередной интересный вариант шедулинга)
(74) да, так оно и есть
76 sttt
 
05.11.12
18:33
помню в 90х на сайте мне к заказу всякие счета и заказы формировало и оператор оперативно откликался...
77 sttt
 
05.11.12
18:35
(72) остатки тоже на сайте можно хранить, синхронизировать
78 Telefon
 
05.11.12
19:35
(76) а какая нагрузка в плане активных потребителей была на сайте?
79 Юрий Лазаренко
 
07.11.12
14:51
(62) Хороший вариант, но менее надежный чем "файлики". Что произойдет, если транзитная база в момент совершения заказа не приняла запрос? Заказ не состоится? А файлик всегда можно подгрузить повторно.
Этот вариант хорош, если на сайте надо оперативно показывать текущие остатки товара и брать их напрямую из 1С, без временных лагов. А так тут транзитная база не нужна, на файликах будет и проще, и быстрее, и надежней.