Подскажите плиз! Как проверить на идентичность 2 таблицы значений! #210979


#0 by stariy
Подскажите плиз! Как проверить на идентичность 2 таблицы значений!Есть ли какой алгоритм...перебор... уж очень мне не нравиться эта идея.Смысл такой есть 2 ТЗ скажем по 1000 строк нужно проверить идентичны они или нет, причем не строки а вся ТЗ в целом идентична второй или нет...
#1 by Ахмед ибн Фадлан
В в77? Посортировать одинаково, ЗначениеВСтрокуВнутр и сравнить строки. Правда не знаю сколько он будет сравнивать большие таблицы.
#2 by stariy
оксейчас попробую
#3 by stariy
попробовал сразу так Если ЗначениеВСтрокуВнутр(Материалы)=ЗначениеВСтрокуВнутр(МатериалыНовые) тогда...Материалы и материалыНовые - это ТЗтак вот результатЗначениеВСтрокуВнутр для одинаковых ТЗ разный...может по строкам нужно:?
#4 by stariy
для 2 одинаковых ТЗ получилось так :{"#",2c6006f3-7e85-4a97-a820-66b8142aa341}{"#",044f796d-d54c-40c6-8a32-1f428408450e}
#5 by Ахмед ибн Фадлан
2 Этот способ для в77. Для в8... не знаю... по-моему можно просто сравнить. Две переменные? Или нет? Тогда может их загнать в хранилище значений?
#6 by stariy
просто сравнить = не работает...а в хранилище загонять:? в чем смысл..загоню а как проверить равны они или нет:?
#7 by Сисой
Надо дождаться 8.1. Временные таблицы рулят.
#8 by stariy
да уж..хотелось бы носейчас надо...
#9 by Ахмед ибн Фадлан
2 Не могу сказать, это на уровне интуиции - загнать в хранилище значений как двоичные данные и потом сравнить эти два хранилища.Или даже не знаю... использовать сериализацию ХМЛ... но вот не могу сказать весь алгоритм до конца. Это так - просто направленияв которых бы я думал.
#10 by angro
как вариантотсортировать по всем колонкам, а потом сравнить построчно.
#11 by stariy
окбуду думатьспасибо
#12 by stariy
привет!пробовал...не хочется перебором просто понимаешь...ТЗ могут быть большие более 1000 строк.
#14 by angro
здорово,У тебя в этом месте тормозит? если будет тормозить тогда и надо думать о производительности. По любому на каком-то этапе будет перебор.
#15 by angro
в цикле загоняем все значения в строку, одну ТЗ в одну строку, другую ТЗ в другую, и сравниваем строки. Программер после тебя голову сломает в этом месте.
#16 by Чучундер
Правда где-то в рааонй сохранить строку внутр и сравнитьтолько учесть что внутренние значенияТЗ1.НоваяКолонка("Клиент","Справочник.Номенклатура")ТЗ2.НоваяКолонка("Клиент","Справочник")ТЗ2.Клиент = СрК.ТкущийЭлемент;внутренние значения ТЗ1.Клиент и ТЗ2.Клиент - РАЗНЫЕ
#17 by stariy
уже тормозит...при больших ТЗа примерно так у меня сейчас и сделано...
#18 by Чучундер
Слить две таблицы в третью и свернуть е по всем колонкам. если количество строк = количуству строк ТЗ1 или ТЗ2 - тогда равны, иначе - нет
#19 by angro
добавление к только перед этим пронумеровать, а то если в ТЗ есть повторяющиеся строки, так работать не будет.
#20 by Ахмед ибн Фадлан
2(18,19) блин, гениально! :) молодцы
#21 by stariy
to 17сделано как в 13спасибо за 18 и 19
#22 by Чучундер
Правильный и красивый вариант в + строки не сравнивать а сложить побитово результат проинтепретировать как число, если = 0 - то ТЗ одинаковые
#23 by mcoff
to 22в таком случае уж xor|and - быстрее будет.
#24 by Чучундер
Ну это и имелось в виду
#25 by Myst
самый простой способ это скопировать в одну таблицу и свернуть по свсем полям.Если количество строк будет равно количеству исходной таблицы можно предположить с высокой вероятностью что они идентичны
#26 by Dev
(18,25) А как можно слить две таблицы в одну без перебора? Простите плохо знаю 8
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С