Сравнить две таблицы значений ? #89855


#0 by Sancho
Задача такая: есть две таблицы значений с наборами записей, некоторые записи в этих таблицах совпадают по какому-то реквизиту, а некоторые встречаются только в одной из ТЗ. Нужно сформировать отчет, где бы были указаны и совпадения и разногласия по ТЗ. Как сделать это, чтобы работало знаю, но хотелось бы более лаконичное и красивое решение этой задачи. Кто-нибудь делал что-либо похожее? Как реализовал? Какие вообще идеи есть?
#1 by СтарПом
в каждую ТЗ новую колонку, в одной заполнить: 1, в другой заполнить: 1...свернуть по "какому-то реквизиту", суммировать по новой колонке...там где в новой колонке будет 1 - значит есть только в ТЗ1, где 10 - есть только в ТЗ2, где 11 - есть и там и там..
#2 by CтарПом
(+1) еб...я клава...вместо "в другой заполнить: 1..."читать: "в другой заполнить: 10..."
#3 by Sancho
Не могу сворачивать по какому-то реквизиту, потому как пропадут записи в других колонках, а они нужны.
#4 by КонецЦикла
Таблицы по смыслу одинаковые? Одинаковое число строк? Если сравнивать нужно одновременно по нескольким колонкам, то проще перебором :(
#5 by Anomaly
а предварительно выгрузить во вспомогательную ТЗ и ее уже сворачивать - не подойдет?
#6 by Sancho
Таблицы по смыслу одинаковые и там и там данные из регистров, с одинаковым реквизитом (документ), число строк разное. Реквизит-Документы может быть одинаковым, может разным в ТЗ. Перебором я это и реализовал, но думаю есть более оптимальный алгоритм. Так не пойдет, потому что в конце концов нужно получить общую ТЗ со всеми первичными значениями и найденными соответсвиями между двумя ТЗ.
#7 by Ginzburg
почитай тер-вер, мож что и поможет ;) там есть такое понятие корреляция процессов (объектов да хоть бы чаго)А так, сортируй, ищи первое значение из одной в другой -> все что до несовпадение, 2 -> все что между 1 и 2 несовпадение и т.д. (мож и лажа но счас пришло)
#8 by Sancho
Я извиняюсь, что почитать?
#9 by Ginzburg
нет первую половину не читай, так шутка, но в принципи теория вероятности во многом поможет, хоть можно будет оценивать...А вот второе, похоже на решение, только надо определиться которая первая таблица а которая вторая, или сделать так и так
#10 by Anomaly
теория вероятностей - это самое оно )))Еще можно просто слить две ТЗ в одну (с добавлением дополнительной колонки - с 1 в записях 1-й ТЗ и -1 - из 2-й ТЗ), а потом просто отсортировать по реквизиту...
#11 by ТакиеДела
Количество строк равно?Сортировка по колонке?Выборка
#12 by Sancho
Количество строк может быть одинаковым, может быть разным. Попробую детальнее объяснить задачу. Есть ТЗ_1 одна из колонок вида "документ", допустим в ней 5 записей: Документ_1, Документ_3, Документ_4, Документ_5, Документ_7. Есть ТЗ_2 также одна из колонок вида "документ" и 4 записи: Документ_1, Документ_2, Документ_3, Документ_5. Итоговая ТЗ должна содержать консолидированные данные из двух ТЗ и в ней должно соответственно быть 6 записей: Документ_1, Документ_2, Документ_3, Документ_4, Документ_5, Документ_7. Причем если документ был в 2-х ТЗ записи будут во всех колонках, если только в одной из ТЗ то в колонках от этой ТЗ.
#13 by Ginzburg
а что объединить, отсортировать и перебор некрасиво,Тогда объединить и...Функция глТаблицаФильтроватьПоУсловию(ТЗ, Колонка, Знач Условие="<>", Параметр="", КонецУсловия="") Экспорттока рарус компанента с ключем еутрон нужна
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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