8.х Пакетный запрос, проблемы с выводом

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

  1. TopicStarter Overlay
    retker
    Offline

    retker Опытный в 1С

    Регистрация:
    12 дек 2013
    Сообщения:
    124
    Симпатии:
    0
    Баллы:
    26
    Имеется запрос:
    Код:
    ВЫБРАТЬ
    ХарактеристикиЛицевыхСчетов.Значение КАК ОбщаяПлощадь
    ПОМЕСТИТЬ ВТОбщаяПлощадь
    ИЗ
    РегистрСведений.ВДГБ_ХарактеристикиЛицевыхСчетов.СрезПоследних(
    &Период,
    ТехническаяХарактеристика = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВДГБ_ТехническиеХарактеристики.ОбщаяПлощадь)
    И ЛицевойСчет = &ЛицевойСчет) КАК ХарактеристикиЛицевыхСчетов
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СведенияПроживающих.ЛицевойСчет) КАК КоличествоПроживающих
    ПОМЕСТИТЬ ВТКоличествоПроживающих
    ИЗ
    РегистрСведений.ВДГБ_СведенияПроживающих.СрезПоследних(
    &Период,
    ЛицевойСчет = &ЛицевойСчет
    И ВидСведенийПроживающих = ЗНАЧЕНИЕ(Перечисление.ВДГБ_ВидыСведенийПроживающих.Проживает)) КАК СведенияПроживающих
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ВТОбщаяПлощадь.ОбщаяПлощадь,
    ВТКоличествоПроживающих.КоличествоПроживающих КАК КоличествоПрописанных
    ИЗ
    ВТОбщаяПлощадь КАК ВТОбщаяПлощадь,
    ВТКоличествоПроживающих КАК ВТКоличествоПроживающих
    
    СГРУППИРОВАТЬ ПО
    ВТОбщаяПлощадь.ОбщаяПлощадь,
    ВТКоличествоПроживающих.КоличествоПроживающих
    
    При выполнении его в консоли запросов получаю результат:

    Запрос пакета 1
    Количество 0

    Запрос пакета 2
    Количество 1

    Запрос пакет 3
    ничего не выводит

    При этом результат Запрос1 = 0 , это когда в регистре из которого берутся данные ничего не содержит, т.е. объем по данному лицевому счету не введен.
    Вопрос: как сделать так, чтобы он выводил Запрос пакет 3: 0 и 1.

    При этом есть еще одна особенность, если я ввожу документ для этого лицевого счета, указывая объемом = 1 (для примера), а кол-во проживающих = 1, то получаю такой результат:

    Запрос пакета 1
    Количество 1

    Запрос пакета 2
    Количество 1

    Запрос пакет 3
    1 0

    Подскажите в чем проблема. Спасибо.
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    1. пользуйтесь тегами
    2. непонятно зачем использовать пакеты, если вы потом временные таблицы между собой ну никак не связываете.
    3. Опишите подробно задачу и исходные данные.
  3. TopicStarter Overlay
    retker
    Offline

    retker Опытный в 1С

    Регистрация:
    12 дек 2013
    Сообщения:
    124
    Симпатии:
    0
    Баллы:
    26
    Такая реализация сделана в конфигурации использующейся для расчета услуг в сфере ЖКХ. Хотелось бы разобраться почему не правильно выводит. Просто там много где используется функция, в которой вставлен этот вопрос, и хотелось бы подправить то, что есть.

    В первом подзапросе для лицевого счета выводится его Общая площадь квартиры, во втором кол-во проживающих человек,ну и в третьем выводятся в таблице одной строкой с 2 значениями. Просто получается что если не введена площадь квартиры то запрос не срабатывает,а желательно чтобы срабатывал и подставлялось значение 0. И второе, когда я отдельно выполняю подзапрос 2, у меня коректно выводится кол-во пользователей, если в пакетном запросе, то не корректно почему-то
    Последнее редактирование: 3 июн 2014
  4. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    потому что соединение таблиц - это операция умножения :)
    умножаем на 0 - получаем 0

    последний запрос переделайте в объединение результатов с группировкой последующей
    --- Объединение сообщений, 3 июн 2014 ---
    и если запрос всегда работает по одному лицевому счету - уберите работу с временными таблицами - они замедляют в такой ситуации

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