|
Как реализовыать связи между контрагентами | ☑ | ||
---|---|---|---|---|
0
2307861c
06.11.11
✎
23:21
|
Нужно реализовать связи между контрагентами. Указываем Пупкин друг Иванова, а у Иванова друг Петров и когда заходим в карточку Пупкина то видим список Иванов, петров и друзья Петрова и друзья друзей Петрова... Вобщем если кратко то вот так. Кто-то делал подобное?
|
|||
1
Armando
06.11.11
✎
23:23
|
Ну сделай регистр сведений
|
|||
2
МихаилМ
06.11.11
✎
23:24
|
таблица перекрестных ссылок (рс)
|
|||
3
2307861c
06.11.11
✎
23:26
|
(1) То что регистр то понятно, а вот как данные быстро выбирать?
(2)А подробнее можно? |
|||
4
МихаилМ
06.11.11
✎
23:30
|
ссылка1,ссылка2 измерения
+ доп индекс ссылка2,ссылка1 или дубль записи |
|||
5
2307861c
06.11.11
✎
23:33
|
(4)Честно говоря тяжело понять, а как потом тянуть данные что б всех вытянуло?
|
|||
6
2307861c
06.11.11
✎
23:34
|
(4)Я впринцепе сдела регистр сведений с измерениями Контрагент1, Тип связи, Контрагент 2
|
|||
7
2307861c
06.11.11
✎
23:35
|
А вто как правильно сделать алгоритм для вытяжки всех связей, вот это вопрос.
|
|||
8
дущ
06.11.11
✎
23:37
|
(7) какой же вопрос. Это на втором курсе института проходят. Называется "Рекурсивные алгоритмы". Одна масенькая процедура.
З.Ы. А прикольные у вас там "Одноклассники". |
|||
9
Evpatiy
06.11.11
✎
23:38
|
(7) Как там... Все люди на планете знакомы через шестерых? Я это к тому что скорее всего можно ограничиться несколькими уровнями без ущерба для функционала.
|
|||
10
дущ
06.11.11
✎
23:40
|
(9) Ну да, кстати, если ограничиться каким-нибудь количеством вложений, то можно даже одним запросом их всех вынимать.
|
|||
11
Evpatiy
06.11.11
✎
23:43
|
+(10) И скорость выполнения будет тухнуть в геометрической прогрессии к объему данных при бесконечном количестве уровней.
|
|||
12
Armando
06.11.11
✎
23:44
|
(6) "Тип связи" тоже измерение? Сделай его ресурсом. Или у вас логика такая?
Академики со мной могут не согласится, но все же: Проще всего делать двойную запись в регистр. Например, Вася, Петя; Друзья Петя, Вася; Друзья И выбирать запросом типа выбрать СвязиКонтрагентов.Контрагент2 из РестрСведений.СвязиКонтрагентов где СвязиКонтрагентов.Контрагент1 = &Контрагент1 |
|||
13
Armando
06.11.11
✎
23:48
|
Извиняюсь, про "друзья друзей его друзей" не заметил(
|
|||
14
МихаилМ
06.11.11
✎
23:58
|
есть нет ограничений файловой
тупо пишите все комбинации либо проверяйте максимальный уровень связей и пишите его в константу например и выбирайте с помощью N левых джоинов. + тогда проверка на зацикленность при записи. |
|||
15
Mikhail Volkov
07.11.11
✎
00:03
|
(0) А партнеры в УТ11 не то?
|
|||
16
2307861c
07.11.11
✎
00:05
|
(15) Думаю что нет, здесь закручено.
|
|||
17
2307861c
07.11.11
✎
00:05
|
(14)Да походу так и буду делать
|
|||
18
МишельЛагранж
07.11.11
✎
00:06
|
ставь первичные связи между пупкиными (Пупкин - Иванов, Иванов - Петров и т.д.), и при открытии чего-там-тебе-нужно шерстишь всех кнтриков и нинизываешь цепочку "связей" (можно с указанием кто-кого друг).
|
|||
19
acsent
07.11.11
✎
00:06
|
Соцсеть: Контрагенты?
|
|||
20
МишельЛагранж
07.11.11
✎
00:08
|
это задание от 1С: кто еще не охвачен 1С? (будут правым соединением с базой МВД определять..)
|
|||
21
дущ
07.11.11
✎
00:21
|
(17) Ага, только если так делать, ты спроси вначале у заказчика не будет ли ситуации "А вот Иванов больше не дружит с Петровым"? По варианту в (14) раздружить их будет ой как тяжело.
|
|||
22
2307861c
07.11.11
✎
00:23
|
(21)Уже есть механизм раздруживания реквизит булево Актуальность Записи
|
|||
23
2307861c
07.11.11
✎
00:24
|
(21) Тоесть через левое соединение выбирать актуальные записи
|
|||
24
МихаилМ
07.11.11
✎
00:33
|
||||
25
Diversus
07.11.11
✎
00:44
|
Хранить в регистре сведений, использовать рекурсию при выборке данных.
Другой вариант сложно придумать... |
|||
26
2307861c
07.11.11
✎
00:44
|
(24)Вот вроде неплохо расписано
|
|||
27
Wingless
07.11.11
✎
00:52
|
Какие нахер регистры, графы и n левых соединений...
Задача спокойно решается доработкой отчета по структуре подчиненности, чтобы для справочников умел работать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |