Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 мая 2024, 03:31

Сверка 2х массивов

Автор esscargoott, 29 мар 2024, 10:16

0 Пользователей и 1 гость просматривают эту тему.

esscargoott

есть 2 массива которые заполнены результатом пользовательского и эталонного запроса. В массивах находятся одно и те же значения только колонки в разном порядке, как можно проверить совпадают ли значения в массивах?

antoneus

Ключи = СтрРазделить("Наименование,Цена,Автор", ",");
МассивыРавны = Истина;
Для каждого Элемент из Массив1 Цикл   
    Элемент2 = Массив2[Массив1.Найти(Элемент)];
    Для каждого Ключ из Ключи Цикл
        Если Элемент1[Ключ] <> Элемент2[Ключ] Тогда
            МассивыРавны = Ложь
            Прервать;
        КонецЕсли;
    КонецЦикла;
    Если не МассивыРавны Тогда
        Прервать
    КонецЕсли;
КонецЦикла;

esscargoott

antoneus, а если я не знаю названия колонок, те пользователю сейчас нужны эти колонки, а потом совершенного другие... Может можно как то вытащить наименования колонок чтоб по ним искать? :xfbnsdfb:

antoneus

Колонки = Новый Массив;
Для каждого КлючИЗначение из Массив1[0] Цикл
    Колонки.Добавить(КлючИЗначение.Ключ)
КонецЦикла;

LexaK

esscargoott, еще такой вариант есть
1.отсортировать оба массива
2.превратить массивы в строки значениеВСтрокуВнутр()
3.сравнить эти строки!
и все!
если помогло нажмите: Спасибо!

antoneus

Как по структурам-то сортировать?)

LexaK

antoneus, дааа, был не прав!

немного упростить надо задачу,
так как получаем результаты запросов (на сервере)  то на сервере и надо производить сравнение!
Сравнение Таблиц значений, а не массивов со структурами!
алгоритм тот-же
Сортируем (по колонкам и строкам), превращаем в строки, сравниваем

(или писать мега Гкод...)
если помогло нажмите: Спасибо!

Теги:  

Похожие темы (5)

Рейтинг@Mail.ru

Поиск