![]() |
|
Как правильно обойти элементы в связке многие-ко-многим? | ☑ | ||
---|---|---|---|---|
0
1сПупс
26.05.25
✎
15:28
|
привет!
Есть табличная часть документа Заказ в производство (в которой есть колонки ID и значение), и есть массив значений ( содержащий только ID). Как правильно обойти элементы ТЧ чтобы все строки с совпадающими ID получили значение 1 (скрин)? Если бы табличная часть сравнивалась с одним элементом массива, была бы связь один ко многим (один элемент массива к строкам ТЧ). Тут все легко. А Как действовать в случае связи многие ко многим? Обходить ТЧ и внутри каждого элемента ТЧ делать цикл на сравнение с одним из элементов массива?
|
|||
1
maxab72
26.05.25
✎
15:31
|
Обходить массив значений а строки из Заказа отбирать по фильтру по ИД.
|
|||
2
H A D G E H O G s
26.05.25
✎
15:32
|
MergeJoin
|
|||
5
Fedor-1971
27.05.25
✎
10:50
|
(0) Не совсем понятно что нужно
1. Есть массив ИД 2. Есть таблица значений (ТЧ Заказа в производство) с ИД и Значением Что собрался делать? Заполнять некую другую ТЧ по ИД выдавать там значение из п.2? Проверять, что для ИД из п.1 заполнены все значения в таблице из п.2? (решение предложено в (1)) |
|||
8
СвинТуз
27.05.25
✎
14:22
|
Если обойти, а не загнать в запрос,
то видимо "НайтиСтроки" |
|||
9
СвинТуз
27.05.25
✎
14:23
|
Можно отсортировать по ключу и идти синхронно по двум таблицам
|
|||
10
СвинТуз
27.05.25
✎
14:24
|
+ тупой перебор
|
|||
11
СвинТуз
27.05.25
✎
14:25
|
Итого как минимум четыре способа
Есть и еще "Барометр" короче от Нильса Бора |
|||
12
Garykom
гуру
27.05.25
✎
14:30
|
(9) Сортировка это тоже затраты
|
|||
13
Garykom
гуру
27.05.25
✎
15:21
|
(0) Засунуть массив в ТЗ, передать в запрос, соединить
|
|||
14
Garykom
гуру
27.05.25
✎
14:33
|
(13)+ Хотя парю, если надо просто 1 для совпадающих строк то прямо массив передаем в запрос
И делаем условие ID В(&Массив) |
|||
15
H A D G E H O G s
27.05.25
✎
14:33
|
(9) Это называется СоединениеСлиянием, MergeJoin.
Вот тут даже алгоритм есть, прям на русском. wiki:Алгоритм_соединения_слиянием_сортированных_списков |
|||
16
Garykom
гуру
27.05.25
✎
14:34
|
(15) Еще один
А затраты на сортировку??? |
|||
17
Garykom
гуру
27.05.25
✎
14:42
|
Для целочисленных ID при наличии дофига памяти и (Макс(ID)-Мин(ID)) укладывается в нее
Наиболее быстрый алгоритм это однопроходный алгоритм на простых массивах (не которые 1С а напрямую в памяти) Сначала по массиву значений, пишем 1 в ПростойМассив[ID] Затем по ТЧ, тупо смотрим ?(ПростойМассив[ID] = 1, 1, 0) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |