#0
by diabolo
Добрый день. Подскажите как можно сравнить 2 таблицы значений чтобы выдавалось в итоге: строка1 пункт 1 1 таблицы не равен пункту 1 второй таблицы и т.д. Количество пунктов будет ограничено, аблица значений получается из ексель файла не отсортированого. Пробовал запихнуть в запрос 2 таблицы и там сравнивать, но что то я не понял по чем и как связать между собой 2 таблицы. Чтобы потом просто проверять выбором если пункт 1_1 = пункту 1_2 тогда все ок, иначе несоответсвие. и выводить после всего только поля у которых несоотвествие, может есть проще варианты подскажите?
#2
by diabolo
Что в итоге получим? на пункт 1 например 10 строк в первой таблице и на пункт 1 20 строк второй таблицы, плюс 6 строк второй таблицы совпадают польностью по всем другим полям с первой таблицей.
#4
by diabolo
Что то в итоге получается? Какое поле не есть нут Пункт_1? Слабовато я что то представляю :(
#6
by diabolo
Там что то не понятное со знаками. Нужно пройти все записи 2-х таблиц и сравнить их построчно. причем 1 строка 1-й таблицы может совпадать с 99 строкой 2-й таблицы полностью, или отличатся одним или несколькими другими полями.
#7
by diabolo
вот как именно понять что для 1 строки 1 таблицы соответствует 99 строка 2-й таблицы, причем значения первого пункта первой таблицы может совпадать с другими строками этой же таблицы.
#8
by diabolo
Привожу пример: Таблица1 НомерИзделия НомерДокумента Сумма 00001 1 500 00002 2 500 Так как в процессе эти файлы могли измениться то мог поменятся и номер документа и сумма. Таблица2 НомерИзделия2 НомерДокумента2 Сумма2 00001 5 501 00002 2 505 В итоге должно быть найдено что 1 строка 1-й таблицы соответсвует 1-й строке 2-й таблицы (но это может быть и 99 строка), чтобы потом в итоге написать что по 1 строке был изменен номер документа и сумма, по 2-й строке сумма, по 3 ничего не изменилось
#9
by Ildarovich
вам дали правильную ссылку. В терминологии той статьи "измерения" - это будет НомерИзделия. Таблицы будут стыковаться по значению в этой колонки. То есть вызов должен быть таким: а сама функция может иметь вид: Она вернет список строк. Измененная строка будет записана под исходной.
#10
by diabolo
Сделал по этому примеру. Для примера взял 3 строки в первой таблице и 2 строки в другой таблице, поменял во второй таблице в первой строке номер, во второй строке сумму. В итоге получил 5 строк 2 строки 1-й таблице со знаком один, 2 строки второй таблицы со знаком 0 и 5 строка 1 таблицы со знаком 0. Что поменялось неизвестно.
#11
by Ildarovich
Что же, оказалось, что форма представления результата вас не устраивает, можете переделать, информация о результатах сравнения вся в ответе есть: Номер изделия Номер документа Сумма Знак 0001 000х 1 1 Это означает, что теперь строка для изделия "0001" такая 0001 0001 1 А была такая. Изменения видны друг под другом: старое значение снизу, новое сверху 0002 0002 х 1 0002 0002 2 0003 0003 3 Строка без пары означает, что этой строки в новой таблице нет. Она удалена.
#14
by ovrfox
Вообще то сравнить две таблицы (значений) не тривиальная операция. Когда -то делал для журналирования документа. Общий алгоритм такой : выбираются ключевые поля сравнения (можно все), назначается вес сравнения для каждого поля (можно 1). Сравниваются ключевые поля каждой строки с каждой и подсчитывается число похожести. Естественно, после выбора первой пары, она удаляется из сравнения. В конце получаем пары с некоим коэффициентом похожести. Пары с 0-вым или даже некоим положительным, но малым коэффициентом считаются различными. В моем случае все коэфициенты по 11 полям были 1, а по номенклатуре был 6. Если коэффициент был меньше 6 - то пара считалась различной. Таким алгоритмом достаточно точно определялись пары, сбоев не было замечено.
#15
by ovrfox
забыл сказать, что после вычисления числа похожести для каждой пары строк, список сравнения упорядочивался по убыванию числа похожести и для пары, которая бралась первой, потом вычеркивались остальные строки сравнения, содержащие одну из строк.
#16
by diabolo
спс что расписали, но порядок вывода строк был немного другой, о том что я писал в, ну даже с этим все равно, просто результат который предоставился, не зная что было изменео, приходится пересматривать все поля, чтобы найти что же все таки разошлось. спс за информацию.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Таблицы, таблицы, таблицы... Будь они неладны
- 1с. Идентификатор Таблицы Значений полученной из Списка Значений.
- Надо сравнить ТЧ с ТЗ
- как сравнить тип значения в COM соединение
- как сравнить тип колонки таблицы значений? 8.0
- Как в Список Значений загрузить колонку Таблицы Значений?
- Таблица значений в ячейке таблицы значений
- Сравнить, объединить с конфигурацией из файла
- Сравнить две Таблицы Значений
- Как имея ссылку на строку таблицы значений получить название самой таблицы
- Заполнение таблицы данными из таблицы значений
В этой группе 1С
- Определение текущей подсистемы
- v.8: Розница 2.2.4. ИНН не соответствует организации егаис 1с
- как в ввестизначение() наложить фильтр ?
- 1c 8.3 УФ, оптимизация Запроса РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто
- Как заполнить реквизиты формы из модуля объекта?
- Как создать правило конвертации для выгрузки документов с проводками из 7.7?
- пропадают строки в динамическом списке
- В табличной части на форме пропадают границы ячеек
- Розница 1.0.19.16 Поступление товаров
- Как обратиться к характеристике конкретной номенклатуры?
- УТ 11.2 добавление отчета в карточку номенклатуры.
- Корректировка серий номенклатуры в остатках ТМЦ 1С:ERP
- Отчет на СКД по номенклатуре с отбором по поступлению и без
- Списание партий БП 2.0
- Розница, 2 организации, подарочные сертификаты
- Группы доступа партнеров и контрагентов
- sphinx сохранение результата запроса сразу в файл
- Odata - ошибка при фильтрации по дате
- не найдена таблица в запросе
- Как получить аналоги в TecDoc?