|
Сравнения Массивов | ☑ | ||
---|---|---|---|---|
0
Profenixxx
04.07.14
✎
18:47
|
Добрый день!
Подскажите пожалуйста схему следующей отработки Есть 2 ва Массива в них разные данные, как можно получить объект которого нет в 1ом массиве, например: 1 Массив: 1.Апельсин 2.Мандарин 2Массив: 1.Апельсин 2.Мандарин 3.Яблоко Т.е. Получить яблоко, я обычно сравниваю только массивы но получаю либо истину либо ложь, но мне необходимо еще получить название не имеющегося элемента массива при исключении. |
|||
1
Wobland
04.07.14
✎
18:49
|
таб2 левое таб1 где таб1 есть нулл?
|
|||
2
Господин ПЖ
04.07.14
✎
18:52
|
(1) + затолкать в запрос
|
|||
3
Wobland
04.07.14
✎
18:56
|
готов спорить, что массивы для данных автор выбирал сам и бывал немного неправ
|
|||
4
Profenixxx
04.07.14
✎
18:58
|
Да может. Я использовал Массив для хранения значения 2х баз. Т.е. я беру Запросом значение в одной базе и в Основной, вгоняю их в массив и сравниваю.
Это корректно? |
|||
5
Wobland
04.07.14
✎
18:59
|
(4) доставай запросом ТЗ оттуда, загоняй еёв запрос здесь и сравнивай
|
|||
6
acsent
04.07.14
✎
19:00
|
если они отсортированы, то можно общим проходом сравнить их и вывести различи
|
|||
7
Profenixxx
04.07.14
✎
19:02
|
ЗначениеВСтрокуВнутр(Массив1Базы) = ЗначениеВСтрокуВнутр(Массив2Базы)
В массивах хранятся наименования этих элементов. Каким общим проходом можно их сравнить? |
|||
8
Wobland
04.07.14
✎
19:03
|
(7) не знаешь, как работают циклы?
|
|||
9
Profenixxx
04.07.14
✎
19:03
|
Циклами туда и загонял наименования с запросом
|
|||
10
mdocs
04.07.14
✎
19:14
|
Две зависимые базы должны сравниваться по UID, остальное велосипед
|
|||
11
Wobland
04.07.14
✎
19:16
|
бывает на свете КД... но что там делает автор, мы не в курсе
|
|||
12
Profenixxx
04.07.14
✎
19:21
|
Пример моего кода
//Подключаюсь к 1ой базе, получаю данные ЗапросУдаленнаяБаза = ОткрытаяИБ.NewObject("Запрос", "ВЫБРАТЬ | Поступление.Номер |ИЗ | Документ.Поступление КАК Поступление"); Результат1 = ЗапросУдаленнаяБаза.Выполнить(); ВыборкаДетальныеЗаписи1 = Результат1.Выбрать(); Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл //Забрасываю все номера в массив для сравнения Массив1Базы.Добавить(ВыборкаДетальныеЗаписи1.Номер); КонецЦикла; /// Делаю еще один запрос в основной базе Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Поступление.Номер |ИЗ | Документ.Поступление КАК ПоступлениеНМА"); Результат1 = ЗапросУдаленнаяБаза.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //Заганяю во 2ой массив Массив2Базы.Добавить(ВыборкаДетальныеЗаписи.Номер); КонецЦикла; Делаю сравнения Если ЗначениеВСтрокуВнутр(Массив1Базы) = ЗначениеВСтрокуВнутр(Массив2Базы) |
|||
13
Profenixxx
04.07.14
✎
19:22
|
Разборка по номерам массив бессмыслен, либо что то я недогоняю.
|
|||
14
Wobland
04.07.14
✎
19:28
|
>ЗначениеВСтрокуВнутр(Массив1Базы) = ЗначениеВСтрокуВнутр(Массив2Базы)
ты вот это назвал сравнением? даже не поинтересовавшись, что там у массивов внутри |
|||
15
Profenixxx
04.07.14
✎
19:34
|
У массивов Тип строка, с нужными номерами.
|
|||
16
Эмбеддер
04.07.14
✎
19:34
|
в чем проблема, не пойму
2 цикла последовательно - по 1-му массиву и по 2-му. если элемент из 1-го массива не найден во 2-м массиве (используя Найти), значит он отсутствует в другом массиве |
|||
17
Wobland
04.07.14
✎
19:36
|
(16) а массивы обязательно?;)
|
|||
18
МихаилМ
04.07.14
✎
19:44
|
(0)
выгрузить в тз далее искать на форуме темы типа "сравнить 2 тз" |
|||
19
МихаилМ
04.07.14
✎
19:45
|
(16)
найти - это тот же цикл. тогда уж отсортировать и без найти. |
|||
20
Эмбеддер
04.07.14
✎
19:46
|
(17) массивы уже есть в условии задачи
не нравятся массивы - можно сделать таблицу значений, перенести в нее значения в колонку и сделать 2 колонки "Количество1, Количество2". и свернуть таблицу ТЗ.Свернуть("Элемент", "Количество1, Количество2") второй вариант скорей всего медленнее, но я бы воспользовался им |
|||
21
Эмбеддер
04.07.14
✎
19:48
|
(19) "найти - это тот же цикл" - зависит от реализации. тогда уж сортировка в таблице, если требуется гарантированно линейная сложность (время)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |