|
v7: Бонусная система в розничной торговле | ☑ | ||
---|---|---|---|---|
0
anten
14.10.14
✎
19:11
|
Розничный магазин. На кассах стоят компы, на каждой своя база (только для набивания чеков). Есть еще общая база в которой ведется учет. понадобилось написать систему начисления и оплаты покупки бонусами. Вот теперь думаю - где хранить остаток по бонусным карточкам? Лепить еще одну базу карточек в sql и писать прямые запросы из каждой базы? Подскажите как такое лучше реализовать.
|
|||
1
Фокусник
14.10.14
✎
19:21
|
(0) "на каждой своя база"
В этих базах "как-то" номенклатура обновляется? ИМХО, вариант: грузить "одновременно с номенклатурой" данные по бонусным картам. |
|||
2
France
14.10.14
✎
19:21
|
Начнем с того, 1с ли, и если да - конфы и релиз
|
|||
3
anten
14.10.14
✎
19:45
|
номенклатура обновляется. перекидываю те, что поменялись через дбф-ку. подгружаются автоматом в паузах между чеками. конфа самописная. везде 1с.
|
|||
4
anten
14.10.14
✎
19:47
|
(1) проблема в том, что остаток бонусов на карточке нужен во всех кассовых базах. т.е. если перекидывать с касс в основную движения по ним, то потом надо будет на каждую закидывать остатки по ним. как-то много движений.
|
|||
5
anten
14.10.14
✎
19:49
|
к примеру, такой случай. покупатель рассчитывается бонусами под ноль, выходит, заходит и рассчитывается на другой кассе.
|
|||
6
snegovik
14.10.14
✎
19:53
|
(5) Центральная база и кассовые базы территориально в одном месте?
|
|||
7
mehfk
14.10.14
✎
19:53
|
>> Лепить еще одну базу карточек в sql и писать прямые запросы из каждой базы? Подскажите как такое лучше реализовать.
Отдельную базу 1С с нужным функционалом. Обращаться через OLE. |
|||
8
anten
14.10.14
✎
19:54
|
(6) в одной локальной сетке.
|
|||
9
abfm
14.10.14
✎
19:54
|
Внешняя база sql.
И типа как то так. Соединение = СоздатьОбъект("ADODB.Connection"); АДОДБ_УстановитьСоединение(Соединение); Команда = СоздатьОбъект("ADODB.Command"); Команда.ActiveConnection=Соединение; |
|||
10
anten
14.10.14
✎
19:54
|
(7) OLE глючное.
|
|||
11
mehfk
14.10.14
✎
19:55
|
(7)+ или в ней "...общая база в которой ведется учет..."
|
|||
12
mehfk
14.10.14
✎
19:55
|
(10) Плохому танцору ...
|
|||
13
anten
14.10.14
✎
19:55
|
(9) т.е. всё-таки прямыми запросами? sql 2000 подойдет ?
|
|||
14
snegovik
14.10.14
✎
19:56
|
А почему не хотят сделать единую базу?
|
|||
15
anten
14.10.14
✎
19:56
|
(12) да нет. писал я под OLE. хреново ошибки отлавливать. чуть что и зависла в памяти.
|
|||
16
anten
14.10.14
✎
19:56
|
(14) на кассах будет тупить.
|
|||
17
anten
14.10.14
✎
19:57
|
(14) а так на кассах база из одного справочника и одного документа.
|
|||
18
abfm
14.10.14
✎
20:01
|
Проверяем карту если в sql есть заводим на кассе новую. Начисляем или списываем бонус, удаляем. Всё!
|
|||
19
Elf_80_lvl
14.10.14
✎
20:02
|
У меня такая же задача была когда-то, несколько точек общепита. В итоге решил работать единую бонусную базу с веб сервисами.
|
|||
20
anten
14.10.14
✎
20:02
|
(18) т.е. начислили - прописали в sql движение, списали - прописали в sql движение.
|
|||
21
anten
14.10.14
✎
20:04
|
(19) sql не проще будет? просто я прямыми запросами никогда не пользовался. думаю, может есть какой-то вариант попроще.
|
|||
22
abfm
14.10.14
✎
20:04
|
Работает не первый год.
|
|||
23
anten
14.10.14
✎
20:04
|
(22) прямыми запросами?
|
|||
24
Elf_80_lvl
14.10.14
✎
20:07
|
(21) Прошу прощения не до конца прочитал вашу ситуацию. У нас все точки не в одной локальной сети естественно. В вашем случаи хз, скорость что Sql что веб сервиса примерно одинаковая, но первый вариант несколько проще.
|
|||
25
anten
14.10.14
✎
20:12
|
1с++?
|
|||
26
abfm
14.10.14
✎
20:16
|
Там 3 момента 1: получить баланс 2: начислить бонус 3: списать бонус. В пределах одного региона у разных провайдеров с статичным ip проблем нет. 1с++ нет.
|
|||
27
anten
14.10.14
✎
20:57
|
(26) у меня всё в локалке. а где почитать про прямые запросы?
|
|||
28
mehfk
14.10.14
✎
20:58
|
1cpp.ru/forum
|
|||
29
anten
14.10.14
✎
22:27
|
ок. буду курить форум. спасибо.
|
|||
30
Chameleon1980
14.10.14
✎
23:59
|
(16) скока их?
|
|||
31
Chameleon1980
15.10.14
✎
00:01
|
(28) +1 и все в ваших руках
|
|||
32
Злой Бобр
15.10.14
✎
03:23
|
(0) Все зависит от того что вы там за систему бонусов напридумывали. Вариантов, как вы понимаете (надеюсь), очень много. Соответственно и решений вопроса может быть несколько.
Да, придется делать БД в скуле в которой и хранить данные по бонусам. Опять таки - что хранить, зависит от того что вы напридумывали. БД синхронизировать средствами СУБД через определенное время. Недостатки отсутствия связи думаю сами понимаете ... |
|||
33
Il19
15.10.14
✎
06:16
|
как вариант он-лайн: основная база слушает tcp порт, а кассы (при наличии связи) получают и пишут что надо в осн.базу. если нет связи, то сделать очередь и при появлении только дописывать бонусы.
по работе 1с с tcp/ip куча инфы (есть и внешн. компоненты: RiK_Inet, NetaInet и т.д.). |
|||
34
anten
15.10.14
✎
10:18
|
(30) две.
|
|||
35
anten
15.10.14
✎
10:20
|
(32) главный вопрос где хранить остатки по бонусам. как их начислять - это отдельный вопрос (тариф "простой", логарифмическая линейка для расчета остатка в подарок:). хранить нужно номер карты и движения по ним с привязкой к номеру чека.
|
|||
36
anten
15.10.14
✎
10:21
|
(33) стабильно работает?
|
|||
37
Злой Бобр
15.10.14
✎
12:13
|
(35) Ну тогда ответ я вам дал. Берите тот же экспресс от мелкомягких и делайте БД. Там по сути пара-тройка таблиц будет, если все так как вы сказали.
|
|||
38
Il19
16.10.14
✎
05:39
|
(36) Это будет зависить от стабильности самой 1С. если осн. база перестанет "слушать" порт - то увы, но это проверяется любыми системами контроля. Либо если сетка глючная.
По организации структуры бд: можно в 1с-ии, можно на стороних бд - это уже зависит от фантазии разраба... но, как я думаю, поддерживать проше ту систему, которая более однородна, а не состоит из кучи разномастных костылей. если управляющая 1С - то проше остальное, по возможности, прикручивать от 1С и средствами 1С, если 1с сильно тупит - то 1с++. |
|||
39
Il19
16.10.14
✎
05:44
|
(38) ну и в продолжения огр.структуры (по своему опыту):
если допил одноразовый "на сейчас" то проще в стороней бд, если на перспективу, долгосрочный или периодически будет использоваться - то в 1с. |
|||
40
vis_tmp
16.10.14
✎
07:35
|
А что будет когда у вас появится второй магазин?
|
|||
41
anten
16.10.14
✎
14:30
|
(35) а почему экспресс? просто основная база на 2000-м крутится.
|
|||
42
anten
16.10.14
✎
14:34
|
(40) навряд ли. скорее эти закроются :)
|
|||
43
Злой Бобр
16.10.14
✎
15:11
|
(41) Вероятно потому что вы изначально указали что кассы работают каждая со своей базой. Бред конечно, но это ваш вазелин - мне не жалко.
Соответственно на том же экспрессе наваять пару-тройку табличек будет быстрее. Плюс синхронизация на уровне СУБД. Плюс все легально. Плюс ... |
|||
44
anten
16.10.14
✎
15:27
|
(43) если бы всё было в одной базе - было бы проще. но отказоустойчивость бы сильно пострадала. а так сервер отрубился - кассы работают. сеть упала - кассы работают. плюс скорость работы в одной базе значительно бы упала. насколько я знаю, крупные сети так и поступают: на каждой кассе своя база, синхронизация с основной по расписанию . а вот бонусы надо чтоб сразу синхронизировались.
|
|||
45
anten
16.10.14
✎
15:46
|
мне было бы проще писать через ОЛЕ. примерно такой алгоритм:
1. при запуске базы на кассе, подключение к общей базе через ОЛЕ. 2. при оплате или начислении бонуса - проведение в общей базе движения по карточке с привязкой к номеру чека. 3. обработка ошибок: если ошибка в ОЛЕ (нету связи, не удалось провести документ), запись в константу факта сбоя, начисление бонусов оставить, списывать не давать. 4. при повторном открытии читаем константу, если был сбой - перепроверяем что провели по бонусам в общей базе ( за сегодня). ну как-то так. попахивает каким-то колхозом :) |
|||
46
anten
16.10.14
✎
15:49
|
(45)+ хотя лучше не общую, а в отдельную. а так смысл тот же.
|
|||
47
Злой Бобр
16.10.14
✎
17:54
|
(44-46) Это не колхозом попахивает, а отсутствием опыта. Касательно (44) - у нормальных людей бек и фронт разделены. И разделены не по причине нагрузки на сервер, а как раз по причине обеспечить автономную работу в случае форс-мажора. Там простой выйдет дороже чем потратиться на обеспечение бесперебойной работы.
Что касается вас - я предложил вариант. Ну а вам уже решать - подходит или нет. P.S. Если это 1 торговая точка то я б все вел в одной скульной базе и незаморачивался. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |