8.х Левое соединение

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем bitum_k, 28 май 2017.

  1. TopicStarter Overlay
    bitum_k
    Offline

    bitum_k

    Регистрация:
    13 май 2017
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Добрый день, друзья!

    1С 8.3.10.2252 файловая, УТ 11.2.3.290

    Выбираю реализацию товара:

    Таблица 1
    товар1 - точка А - 3 шт. - 100 руб. - 20170520
    товар1 - точка Б - 3 шт. - 150 руб. - 20170520

    И закупку этого же товара:

    Таблица 2
    товар 1 - точка С - 3 шт. - 90 руб. - 20170520
    товар 1 - точка Д - 3 шт. - 80 руб. - 20170520

    Между собой таблицы никакими основаниями НЕ СВЯЗАНЫ. ТОЛЬКО Номенклатура, Количество и Дата.

    К таблице 1 делаю Левое соединение Таблицы 2 по Номенклатуре, Количеству, Дате

    В результате Левого соединения по Точке А получаю не одну строку, а так как совпадается всё, то строк в данном примере получится ДВЕ:

    товар1 - точка А - 3 шт. - 100 руб. - 20170520 - точка С - 90 руб.
    товар1 - точка А - 3 шт. - 100 руб. - 20170520 - точка Д - 80 руб.

    Как-то можно ограничить выборку одной строкой? Так как вторая строка (Точка Д), должна уйти в Точку Б.

    Спасибо.
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    8.173
    Симпатии:
    554
    Баллы:
    204
    Только группировкой итогового результата.
  3. TopicStarter Overlay
    bitum_k
    Offline

    bitum_k

    Регистрация:
    13 май 2017
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Так не получится, так как нужно не:

    товар1 - точка А - 3 шт. - 100 руб. - 20170520 - точка С - 90 руб.
    товар1 - точка А - 3 шт. - 100 руб. - 20170520 - точка Д - 80 руб.

    а нужно:

    товар1 - точка А - 3 шт. - 100 руб. - 20170520 - точка С - 90 руб.
    товар1 - точка Б - 3 шт. - 100 руб. - 20170520 - точка Д - 80 руб.

    - Друзья, есть ли такая фишка - исключение строки из Второго запроса, после его присоединения... Чтобы в следующих строках отработавшая строка Правой выборки уже не приклеивалась к строкам Левой выборки ?

    - Или может быть можно сделать в Правой выборке Поле-Флаг и отключать флаг после присоединения, а при присоединении далее проверять этот флаг. Если выключен - пропускать строку Правой выборки?
    Последнее редактирование: 28 май 2017
  4. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.398
    Симпатии:
    156
    Баллы:
    104
    Второй вариант возможен, но с кучей временных таблиц.
    Фактически вам придется в запросе реализовывать партионный учет.
    Не проще поменять архитектуру и ввести понятие партии и в списание товара добавить измерение партии?
  5. Yuriy_Alexandrovich
    Offline

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

    Регистрация:
    15 сен 2011
    Сообщения:
    1.371
    Симпатии:
    88
    Баллы:
    54
    Вам нужна дополнительная таблица, в которой будет сопоставление точек "А==С", "Б==Д", при соединении через нее, в результате получите то что нужно.
    Иначе, если нужно соединять по порядку, можно "проиндексировать" (можно сделать левым соединением таблицы саму на себя с определенным условием, и подсчетом записей в доп. поле "индекс") каждую, а затем соединить их левым соединением по товару и индексу
  6. TopicStarter Overlay
    bitum_k
    Offline

    bitum_k

    Регистрация:
    13 май 2017
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Да... Видимо нет связи... Поэтому не получится...

    Решили сделать связи на уровне разных складов.

    Спасибо за советы!

    Тему можно закрывать.
    Последнее редактирование: 13 июн 2017