8.х Объединение двух запросов с разными данными одного регистра накопления

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

  1. TopicStarter Overlay
    stafed
    Offline

    stafed

    Регистрация:
    1 мар 2017
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Добрый день.

    Помогите, пожалуйста, решить следующую задачу:
    1. Имеется один регистр накопления
    2. Сначала необходимо выбрать из этого регистра количество документов, которые находятся в базе 1С от 1 до 20 дней
    3. Затем необходимо выбрать из этого регистра количество документов, которые находятся в базе 1С от 21 до 30 дней

    Имеется запрос:

    Код:
    ВЫБРАТЬ
        РАЗНОСТЬДАТ(СведенияОНеисправномТовареСрезПоследних.Партия.Дата, &На_Дату, ДЕНЬ)КАК от_1_до_20,
        СведенияОНеисправномТовареСрезПоследних.ФилиалПриемщикТовара КАК ФилиалПриемщикТовара
    ПОМЕСТИТЬ
        Т1_20
    ИЗ
        РегистрНакопления.Счет_41_3_4.Остатки(КОНЕЦПЕРИОДА(&На_Дату, ДЕНЬ), Филиал В (&СписокФилиалов)) КАК Счет_41_3_4Остатки
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОНеисправномТоваре.СрезПоследних КАК СведенияОНеисправномТовареСрезПоследних
                ПО Счет_41_3_4Остатки.КлючУникальности = СведенияОНеисправномТовареСрезПоследних.КлючУникальности
     
    ГДЕ
        Счет_41_3_4Остатки.Склад.Владелец.ВидПоставщика ЕСТЬ NULL
        И Счет_41_3_4Остатки.Филиал = Счет_41_3_4Остатки.Склад.Владелец
        И Счет_41_3_4Остатки.Статус.Код <> "41.4"
        И (СведенияОНеисправномТовареСрезПоследних.Партия ССЫЛКА Документ.ОперацииСнеисправнымТоваром
            ИЛИ СведенияОНеисправномТовареСрезПоследних.Партия ССЫЛКА Документ.АктДефектовки)
        И РАЗНОСТЬДАТ(СведенияОНеисправномТовареСрезПоследних.Партия.Дата, &На_Дату, ДЕНЬ)<= 20
        И РАЗНОСТЬДАТ(СведенияОНеисправномТовареСрезПоследних.Партия.Дата, &На_Дату, ДЕНЬ)>= 0
    
    ;
    
    ВЫБРАТЬ
        РАЗНОСТЬДАТ(СведенияОНеисправномТовареСрезПоследних.Партия.Дата, &На_Дату, ДЕНЬ)КАК от_21_до_30,
        СведенияОНеисправномТовареСрезПоследних.ФилиалПриемщикТовара
    ПОМЕСТИТЬ
        Т21_30
    ИЗ
        РегистрНакопления.Счет_41_3_4.Остатки(КОНЕЦПЕРИОДА(&На_Дату, ДЕНЬ), Филиал В (&СписокФилиалов)) КАК Счет_41_3_4Остатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОНеисправномТоваре.СрезПоследних КАК СведенияОНеисправномТовареСрезПоследних
            ПО Счет_41_3_4Остатки.КлючУникальности = СведенияОНеисправномТовареСрезПоследних.КлючУникальности
       
    ГДЕ
        Счет_41_3_4Остатки.Склад.Владелец.ВидПоставщика ЕСТЬ NULL
        И Счет_41_3_4Остатки.Филиал = Счет_41_3_4Остатки.Склад.Владелец
        И Счет_41_3_4Остатки.Статус.Код <> "41.4"
        И (СведенияОНеисправномТовареСрезПоследних.Партия ССЫЛКА Документ.ОперацииСнеисправнымТоваром
        ИЛИ СведенияОНеисправномТовареСрезПоследних.Партия ССЫЛКА Документ.АктДефектовки)
        И РАЗНОСТЬДАТ(СведенияОНеисправномТовареСрезПоследних.Партия.Дата, &На_Дату, ДЕНЬ)<= 30
        И РАЗНОСТЬДАТ(СведенияОНеисправномТовареСрезПоследних.Партия.Дата, &На_Дату, ДЕНЬ)>= 21
    ;
    ВЫБРАТЬ
        Т1_20.ФилиалПриемщикТовара,
        Т1_20.от_1_до_20 КАК от_1_до_20,
        Т21_30.от_21_до_30 КАК от_21_до_30
    ИЗ
        Т1_20
        ЛЕВОЕ СОЕДИНЕНИЕ Т21_30
            ПО  Т1_20.от_1_до_20 = Т21_30.от_21_до_30
    ИТОГИ
        КОЛИЧЕСТВО(Т1_20.от_1_до_20),
        КОЛИЧЕСТВО(Т21_30.от_21_до_30)
    ПО
        Т1_20.ФилиалПриемщикТовара
    Проблема в следующем:
    Приведенный выше запрос выдает только верное количество документов от 1 до 20 дней, количество от 21 до 30 дней равно нулю, хотя фактически это не так. Если подзапросы поменять местами, то верное количество документов выдается от 21 до 30 дней, нулевое количество - от 1 до 20 дней.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.128
    Симпатии:
    953
    Баллы:
    204
    На сколько понял суть проблемы:

    необходимо использовать объединение таблиц Т1_20 и Т21_30 вместо левого соединения.
    stafed нравится это.
  3. TopicStarter Overlay
    stafed
    Offline

    stafed

    Регистрация:
    1 мар 2017
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Спасибо. "ОБЪЕДИНИТЬ ВСЕ" помогло.

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