|
Какую лучше сделать структуру хранения? | ☑ | ||
---|---|---|---|---|
0
zAngrYz
19.12.12
✎
18:07
|
Поставили задачку:
Нужно вести в программе учет маршрутов торговых представителей. 1) За одним клиентом закреплено несколько торговых, по 1 по каждой группе товаров (подразделению). 2) Нужно вести историю, т.е. нужно узнать на определенный момент какие торговые были за клиентом. 3) Маршруты регулярно перекраиваются 2 раза в год серьезные изменения. Проще забить весь маршрут с 0. И если клиент не указан у всех торговых одной группы товаров, то по данным у клиента не должно быть ответственного по этой группе. 4) 1 торговый может ездить к клиенту несколько раз в неделю. Не могу придумать адекватную схему БД. Варианты использованные раньше рушатся с каждым условием. |
|||
1
Нуф-Нуф
19.12.12
✎
18:09
|
периодический регистр сведений, ептыть
|
|||
2
pessok
19.12.12
✎
18:09
|
РС
|
|||
3
exwill
19.12.12
✎
18:10
|
(1) Он разрушится.
|
|||
4
shuhard
19.12.12
✎
18:10
|
(1) + 1
да ещё подчиненный Рг |
|||
5
Нуф-Нуф
19.12.12
✎
18:12
|
(3) сделать запасной
|
|||
6
Нуф-Нуф
19.12.12
✎
18:12
|
(4) и хранить их в периферийных базах
|
|||
7
Нуф-Нуф
19.12.12
✎
18:12
|
не, ну правда ведь мы песдаты адинеснеги :)
|
|||
8
pessok
19.12.12
✎
18:13
|
(7) нету на мисте больше специалистов. одни тролли!
|
|||
9
Нуф-Нуф
19.12.12
✎
18:14
|
(8) ответ на сабж дан в (1) а дальше не грех и потроллить :)
|
|||
10
pessok
19.12.12
✎
18:15
|
(9) эээ, я ж про (13) из v8: Управляемые формы, обработка активизации строки таблицы на сервере.
|
|||
11
NcSteel
19.12.12
✎
18:17
|
А лучше регистр накопления остаточный. И делать приход маршрута, когда добавили контрагента в маршрут. И расход , когда убрали контрагента с маршрута.
|
|||
12
Нуф-Нуф
19.12.12
✎
18:19
|
(10) ну там то откровенный тупизм. ему мягким по теплому написано "В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере" - нет он продолжает долбить клювом. хотя полоска под ником не маленькая
|
|||
13
zAngrYz
20.12.12
✎
11:02
|
(1) Периодический регистр это первое, что приходит на ум, но... нужны уточнения
Маршрут не может меняться чаще чем 1 раз вдень (на самом деле ещё реже) Как отразить, что торговый не ходит больше к клиенту? И в этот же день другим документом, что к этому клиенту ходит другой торговый |
|||
14
zAngrYz
20.12.12
✎
11:03
|
Хотелось бы предложение по структуре регистра. Уже 3 раз приходится переделывать(((
|
|||
15
zAngrYz
21.12.12
✎
18:17
|
Ясно, по троллили, по ржали, а советов 0.
Может, всё таки у кого-нибудь, будет идея внятной и рабочей схемы? |
|||
16
FIXXXL
21.12.12
✎
18:52
|
(13) делай адекватную периодичность
"больше не ходит" - срез последних с сравнением по дате |
|||
17
mistеr
21.12.12
✎
21:30
|
(15) Может все-таки кто-то сперва представит свой вариант и пояснит что не срослось?
|
|||
18
zAngrYz
21.12.12
✎
22:08
|
(17) Попытка улучшить, обычно хуже свежего взгляда, но вот вариант:
РС, периодичность день Измерения: Клиент Подразделение Ресурс Торговый День посещения Документ назначение маршрута, при проведении проверяется маршрут с предыдущим, если клиент больше не включен в маршрут, то для (клиент, подразделение), торговый заполняется пустым значением Хорошо: 1) По клиенту видим всех его торговых (бывших и текущих) 2) По торговому видим всех клиентов, с днем посещения. 3) Если назначить в маршруте клиента, который закреплен ранее за другим ТП, клиент переходит к другому торговому, автоматически. Плохо: 1) Нельзя сделать несколько раз в неделю 2) Нельзя отметить, что к клиенту торговый ходит раз в 2 недели 3) Если сделать 2 документа установки маршрута с переходом 1 клиента от 1 торговому к другому, то второй документ не проводится, т.к. запись в регистре с такими ключевыми записями существует. |
|||
19
mistеr
21.12.12
✎
22:39
|
(18) Недостатки 1 и 2 легко устранить, если выделить график посещения в отдельную сущность. И заполнять наперед, как в ЗУПе. Тем более, если меняются раз в полгода.
По 3-му: а зачем два документа, почему не одним? |
|||
20
zAngrYz
22.12.12
✎
00:53
|
(19) Как?
Пробовал посмотреть в документе - регистраторе, мягко сказать не удобно. Вторая мысль - справочник с табличной частью, тут не уверен что всплывет. Раз в пол года стабильная ремаршрутизация, но в любое время может добавиться-уйти отдельный клиент, перенестись на другое время, изменится график посещений и пр. Как 1-м документом? По задумке 1 документ - 1 маршрут. |
|||
21
mistеr
22.12.12
✎
02:15
|
(20) >Как?
Как лучше описать график, зависит от характера данных. Как вариант, посмотрите на графики в том же ЗУПе - справочник с ТЧ-шаблоном + РС с заполнением на каждый день. Это хорошо работает, если вариантов этих шаблонов существенно меньше, чем представителей. Типа "понедельник-среда-пятница" или "1-е и 15-е число месяца" и т.д. >Как 1-м документом? >По задумке 1 документ - 1 маршрут. Ну и в чем проблема? Одним документом устанавливаем, что с 1 января к этому клиенту ходит Петров. Другим устанавливаем, что с 1-го июня будет ходить Васечкин. Каждый док сделает по одной записи в РС. |
|||
22
zAngrYz
24.12.12
✎
09:45
|
(21) Тогда получается, надо заполнять гафик, как календарь. Т.е. посещаем клиента по таким то числам, но тогда придется регулярно продлевать этот график, что не удобно.
Как обработать такую ситуацию: Петров ходит с 1-го января, а с 1-го июня не ходит? Т.е. получается период, когда к клиенту не ходит никто. И как полученное решение срастется с Вашим вариантом. |
|||
23
AnKa4
24.12.12
✎
10:17
|
(0) Касательно п. 2. Т.е. система должна знать на указанную дату перечень торговых, закрепленных за клиентом (в независимости от дня недели посещения и периодичности посещения)? Или система должна знать какие торговые посещают клиента на указанную дату?
|
|||
24
mistеr
24.12.12
✎
10:33
|
>Петров ходит с 1-го января, а с 1-го июня не ходит? Т.е. получается период, когда к клиенту не ходит никто.
Торговый = пустая ссылка, например. |
|||
25
zAngrYz
24.12.12
✎
14:36
|
(24) Так и сделано, но если вводится в один день маршрут сначала Петрова, потом Васечкина. Тогда Маршрут Васечкина не проводится, т.к. запись с такими ключевыми полями существует.
|
|||
26
zAngrYz
24.12.12
✎
14:42
|
(23) Не совсем понял, это одно и то же. Если торговый закреплен за клиентом, то он (торговый) к этому клиенту и ходит.
1) Нужно знать, что на 23 ноября, у клиента "ООО Ромашка" по "газ воде" ответственный Пупкин 2) Нужно знать, что по состоянию на 23 ноября Пупкин посещает "ООО Ромашка" по понедельникам четной недели и четвергам нечетной, т.е. следующие посещения: 29 ноября и 3 декабря. |
|||
27
zAngrYz
24.12.12
✎
14:43
|
(26) т.е. наоборот 24 и 6
|
|||
28
mistеr
24.12.12
✎
15:08
|
(25) Ну, правильно. И что не нравится?
|
|||
29
zAngrYz
24.12.12
✎
16:29
|
(28) Не нравится, то, что не проводится документ.
|
|||
30
mistеr
24.12.12
✎
16:40
|
(29) Так в учете косяк, потому и не проводится! Не фиг в один день двоих назначать. А если этот день с посещением, то придут двое один за другим, представь. То что в ЗУПе нельзя человека в один день два раза на другую должность перевести, не смущает?
Обойти-то можно (периодичность - секунда), но это себе бомбу заложить на будущее. |
|||
31
zAngrYz
24.12.12
✎
19:14
|
(30) Так то логических нарушений нет. У одного убрали клиента, другому добавили.
В чем проблема? Другие есть варианты построения регистров? Чтобы не наступать на эти грабли |
|||
32
AnKa4
25.12.12
✎
03:25
|
(26)Тогда один из вариантов
1) график посещения: Измерения: Клиент Подразделение ДатаПосещения - можно использовать Период, если не требуется хранить дату вступления графика в силу Ресурсы: Торговый 2)Изворачиваться с указанием всего необходимого для расчета даты на основании начальных данных: Измерения: Клиент Подразделение ДеньНеделиПосещения - номер дня недели ПериодичностьПосещения - Перечисление КаждуюНеделю, КаждуюЧетнуюНеделю, КаждуюНечетнуюНеделю. Ресурсы: Торговый 3) Есть начальные данные для расчета как в 2), на основании их заполняется график, например каждый месяц как в 1), который можно подкорректировать. В итоге все данные будут браться из графика. |
|||
33
AnKa4
25.12.12
✎
03:29
|
(31) Не надо убирать клиента явно. Просто с какой-то даты назначаем нового торгового клиенту. С этой даты Срез последних регистра будет показывать уже нового торгового у клиента.
|
|||
34
zAngrYz
25.12.12
✎
08:30
|
(33) А тогда как быть с если у торгового просто убирается клиент, например закрылся. Тогда этот клиент всё равно будет в маршруте
|
|||
35
AnKa4
25.12.12
✎
09:09
|
(34) Например. Есть запись в регистре что с 01.12.12 торговым агентом, который посещает ООО Ромашка по газ. воде по четвергам каждую неделю, является Иванов.
Если с 01.01.13 торговым агентом, который посещает ООО Ромашка по газ. воде по четвергам каждую неделю, станет Петров, то просто вносится запись: 01.01.13, ООО Ромашка, Газ. вода, четверг, КаждуюНеделю, Петров. Т.е. если набор значений измерений записи одинаковый, то срез последних на этот набор измерений покажет Иванова с 01.12.12; Петрова - на дату с 01.01.13. Просто так работает периодический РС. |
|||
36
AnKa4
25.12.12
✎
09:10
|
(35) Невнимательно прочитал вопрос в (34).
|
|||
37
AnKa4
25.12.12
✎
09:25
|
(34) Если надо закрыть клиента, то тогда вытаскиваем запросом последние данные по этому клиенту
ВЫБРАТЬ НашРССрезПоследних.ДеньНеделиПосещения, НашРССрезПоследних.ПериодичностьПосещения ИЗ РегистрСведений.НашРС.СрезПоследних(&Дата, Клиент = &Клиент И Подразделение = &Подразделение) КАК НашРССрезПоследних Перебираем все эти варианты и для них устанавливаем на дату &Дата ресурс Торговый пустым значением. |
|||
38
zAngrYz
25.12.12
✎
10:19
|
(37) и снова возвращаемся к (25)
|
|||
39
AnKa4
25.12.12
✎
10:33
|
(38) У вас (25) ссылается на структуру описанную в (18). Измерений там не достаточно. Т.е. ключ точно определяет конкретный маршрут.Если использовать структуру из (32) под 2) то такого быть не должно. Естественно, с учетом периодичности РС День, торговый на один и тот же маршрут не должен назначаться чаще чем один раз в день.
|
|||
40
AnKa4
25.12.12
✎
10:41
|
(39) + Торговый может быть равен как конкретной ссылке на объект так и пустой ссылке. Это ничего не меняет. Просто пустая ссылка будет говорить, что на маршрут не назначен ни один торговый.
(38) Если в (25) описан случай при котором сначала на маршрут назначили (ввели документ №001) с 26.12.12 Иванова, а потом передумали и решили поставить с этой даты Петрова и пытаются ввести документ №002 от 26.12.12 уже на Петрова, то тогда второй документ не проведётся. Для того чтобы провёлся №002 надо распроводить №001 и это правильно. |
|||
41
zAngrYz
25.12.12
✎
11:26
|
(40) "Если в (25) описан случай при котором сначала на маршрут назначили (ввели документ №001) с 26.12.12 Иванова"
Не назначили Иванова, а сняли с маршрута. ", а потом передумали и решили поставить с этой даты Петрова и пытаются ввести документ №002 от 26.12.12 уже на Петрова, то тогда второй документ не проведётся. Для того чтобы провёлся №002 надо распроводить №001" А вот Петрову как раз назначили. И с точки зрения задачи - это не верно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |