Имя: Пароль:
1C
 
Как сравнить две ТЗ?
,
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) А как проще? есть три способа объединения.

https://ru.wikipedia.org/wiki/Операция_соединения_(СУБД)

Алгоритм соединения вложенными циклами.
Алгоритм соединения хэшированием.
Алгоритм соединения слиянием сортированных списков.

(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С, где на вызов метода уходит больше чем на поиск. Так, что алгоритм вложенными циклами (поиск в индексированной ТЗ) ничем не хуже поиском соединения хэшированием. Да и слияние на том же уровне.

А по сложности никто же не смотрит алгоритмы словарей.
http://rsdn.ru/article/alg/tlsd.xml