|   |   | 
| 
 | Как сравнить две ТЗ? | ☑ | ||
|---|---|---|---|---|
| 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 | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |