|
Как сравнить две ТЗ? |
☑ |
0
Вася Теркин
28.06.15
✎
18:30
|
Есть две таблицы значений с идентичными колонками, но в одной из них некоторые строки могут отличаться по содержимому отдельных ячеек или вообще отсутствовать. Как проще всего найти различающиеся в обеих таблицах строки? Вычеркнуть поиском попарно одинаковые и оставить только не похожие?
Или можно передать ТЗ в запрос и там обработать?
Хотя желательно сделать это с помощью СКД. Либо потом отличающиеся строки передавать в СКД чтобы показать на экране.
|
|
1
RomanYS
28.06.15
✎
18:32
|
всё можно, и запросом и скд
|
|
2
RomanYS
28.06.15
✎
18:34
|
выбрать
ТЗ.Реквизит1,
...
ТЗ.РеквизитN
поместить ВТ
ИЗ &ТЗ как ТЗ;
...
|
|
3
EvgeniuXP
28.06.15
✎
18:39
|
очень просто, главное чтобы колонки шли одинаково и через запрос выбрать * дальше догадаешься.
|
|
4
Serginio1
28.06.15
✎
18:57
|
|
|
5
Вася Теркин
28.06.15
✎
19:10
|
{(4, 2)}: Тип не может быть выбран в запросе
<<?>>&ТЗ КАК ТЗ
|
|
6
RomanYS
28.06.15
✎
19:42
|
(5) есть такой нюанс: все колонки должны типизированы
|
|
7
Вася Теркин
28.06.15
✎
20:01
|
(6) ОК
(4) Хорошая ссылка. Чуть дописал и заработала как я хотел.
|
|
8
Serginio1
28.06.15
✎
21:15
|
(7) Какой алгоритм выбрал?
|
|
9
H A D G E H O G s
28.06.15
✎
21:28
|
Надо попросить 1С добавить опцию добавления колонки с хэшем данных строки ТЗ и итоговым хэшем. Статей типа (4) появляться не будет. И пусть хэш конкатенируют годно, без реалокации.
|
|
10
EvgeniuXP
28.06.15
✎
22:22
|
(4) можно намного проще - зачем такие сложности...
|
|
11
Serginio1
28.06.15
✎
22:35
|
(4) А как проще? есть три способа объединения.
)
Алгоритм соединения вложенными циклами.
Алгоритм соединения хэшированием.
Алгоритм соединения слиянием сортированных списков.
(9) И придешь к тем же 3 соединением. В соединении хэшированием он и используется в соответствии
|
|
12
H A D G E H O G s
28.06.15
✎
22:37
|
(11) итоговый хэш сравнить и всё.
|
|
13
Serginio1
28.06.15
✎
22:49
|
(12) Кстати а структура содержащая массив как сравнивается? По ссылке или по содержимому? Может, что упустил?
|
|
14
vde69
28.06.15
✎
22:57
|
|
|
15
Serginio1
28.06.15
✎
23:03
|
(12) Если ты посмотришь тесты, то все три алгоритма приблизительно одинаковы в среде 1С, где на вызов метода уходит больше чем на поиск. Так, что алгоритм вложенными циклами (поиск в индексированной ТЗ) ничем не хуже поиском соединения хэшированием. Да и слияние на том же уровне.
А по сложности никто же не смотрит алгоритмы словарей.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший