8.х Сравнение двух файлов *.dbf

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем st88, 9 ноя 2015.

  1. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Сорри я смуту ввёл не дочитав, думал он по одинаковым полям делает левые соединения то с одной стороны то с другой.
  2. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    я написал - избавиться от задвоений.
  3. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Я че-т не совсем понимаю, что наделал Стас, но почему нельзя сделать так:

    1-ый пакет в общем запросе: Данные ТЗ_1 как есть
    2-ый пакет в общем запросе: Данные ТЗ_2 как есть
    3-ий пакет в общем запросе: Объединение двух таблиц из п.1 и п.2 по общим ключевым полям + числовое значение. Делаем группировку по ключевым полям с суммированием числовых значений. Результат свертки даст уникальные комбинации ключевых полей для обоих ТЗ, а числовое значение покажет есть ли дубли/триплы/квадриплы.., например. Если количество дублей/триплей/квадриплей не важно, то просто группировка по ключевым полям.
    4-ый пакет в общем запросе: Результат из п.3 соединяем с таблицами из п.1 и п.2 по ключевым полям, при необходимости анализируем значение числового поля.
    5-ый пакет в общем запросе: финальный, вывод результата в виде соответствия кодов из ТЗ_1 и ТЗ_2
  4. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    не выйдет, у меня два разных набора ключевых полей для сравнения. первый по кодам, второй по адресу (при этом коды могут не совпадать, но адреса совпадут).
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    В таком случае, о каком сравнении вообще может идти речь?
    Как ты себе представляешь сравнение в таких условиях вообще? Пример с сравнения 1 строки в двух ТЗ можешь показать?
  6. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    посмотри мой запрос. там первая стыковка идет по кодам, а потом то что осталось стыкуется по адресам. и результаты обоих стыковок объединяются в одну тз (которая по числу записей должна быть такая же как изначально тз1 к которой подбираются соответствия из тз2
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    У тебя в обоих ТЗ получаются общими поля:

    ТЗ.LS_GRO,
    ТЗ.RG,
    ТЗ.NP,
    ТЗ.UL,
    ТЗ.NDOM,
    ТЗ.NKOR,
    ТЗ.NKV

    Объединяй по ним две таблицы и делай группировку результата объединения по этим же полям - это даст тебе уникальность комбинаций значений по этим полям в ОБОИХ ТЗ. К результату соединяй начальные таблицы,чтобы получить значения полей ТЗ_РРГ.PU, ТЗ_РРГ.LS и ТЗ_МРГ.LSA.
  8. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    [​IMG]
    --- Объединение сообщений, 13 ноя 2015 ---
    ТЗ.LS_GRO не является общим полем, я LSA из ТЗ1 сравниваю с LS_GRO из ТЗ2.
    (см мой запрос).

    как только соединю - получу теже самые задвоения. Ты предлагаешь тоже самое что сделал и я, только в обратном порядке (задом на перед)...)
    Последнее редактирование: 13 ноя 2015
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Согласно скриншота, совпадения по Адрес из двух таблиц выводятся верно. Итоговую таблицу нужно сгруппировать по полям КодВнутр, КодВнеш, Адрес и придумать, что сделать при этом со значением поля ЛСНов
  10. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    в итоговой тз ещё есть колонка и лс, я просто не стал добавлять в экселе. по которой видно к каким лс не подобрался лс.нов.
    я про это и спрашивал:) тут http://1c-pro.ru/threads/sravnenie-dvux-fajlov-dbf.55957/#post-366615
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Решение задачи с другой стороны - бывает сильно упрощает жизнь.
    Пример, с которым я столкнулся как-то: необходимо вытащить информацию по всем изделиям/комплектующим из внешней БД.
    Во внешней БД информация о каждом изделии/комплектующей хранится с детализацией вплоть до материала, из которого необходимо изготавливать деталь изделия.
    Можно писать запрос напрямую, т.е. получить изделие, потом получить его комплектующие, потом комплектующие комплектующих и т.д - это породит рекурсивное формирование запросов к внешней БД.
    А можно все тоже самое получить от комплектующих: если комплектующее входит в состав детали, то получаем информацию о комплектующей и о детали.....
  12. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    в любом случае это не есть решение задачи. вопрос открыт, как извернуться и отсеять задвоенные строки)
  13. TopicStarter Overlay
    st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    вопрос ещё открыт)

Поделиться этой страницей