|   |   | 
| 
 | Сравнения Массивов | ☑ | ||
|---|---|---|---|---|
| 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) "найти - это тот же цикл" - зависит от реализации. тогда уж сортировка в таблице, если требуется гарантированно линейная сложность (время)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |