helpf.pro
Регистрация

v8: Проблема с запросом 1с 8.1

Vitalii
03.08.2012 04:57Прочитано: 1947
Помогите разобраться с вопросом почему в запросе ниже, данные из вложенного запроса не получаются. Возвращается Null хотя вложенный зарос работает правильно отдельно от внешнего запроса? В чем может быть причина и как сделать правильно?

Код 1C v 8.х
 ВЫБРАТЬ
Софт_ЛицевыеСчета.Код КАК Код,
Софт_ЛицевыеСчета.Ссылка КАК ЛицевойСчет,
ВЫБОР
КОГДА Софт_ЛицевыеСчета.ЧастныйДом = ЛОЖЬ
ТОГДА ""
ИНАЧЕ "V"
КОНЕЦ КАК ЧастныйДом,
Софт_ЛицевыеСчета.Помещение КАК Адрес,
Софт_ЛицевыеСчета.Здание КАК Дом,
Софт_ЛицевыеСчета.ГруппаТарифов КАК Тариф,
ЕСТЬNULL(Софт_ИзмененияТарифов_ФЛСрезПоследних.ЗначениеТарифа, 0) КАК СуммаТарифаГВС,
ЕСТЬNULL(Софт_ИзмененияТарифов_ФЛСрезПоследних1.ЗначениеТарифа, 0) КАК СуммаТарифаОтопления,
ЕСТЬNULL(Софт_Помещения_ПаспортаСрезПоследних.ОбщаяПлощадь, 0) КАК ОбщаяПлощадь,
ЕСТЬNULL(Софт_ЛицевыеСчета_ПаспортаСрезПоследних.КоличествоПрописанных, 0) КАК КоличествоПрописанных,
ЕСТЬNULL(Софт_ЗадолженностьПоЛицевымСчетамОстатки.СуммаОстаток, 0) КАК СН_Свернутое,
ЕСТЬNULL(ВЫБОР
КОГДА Софт_ЗадолженностьПоЛицевымСчетамОстатки.СуммаОстаток < 0
ТОГДА 0
ИНАЧЕ Софт_ЗадолженностьПоЛицевымСчетамОстатки.СуммаОстаток
КОНЕЦ, 0) КАК СН_Д,
ЕСТЬNULL(ВЫБОР
КОГДА Софт_ЗадолженностьПоЛицевымСчетамОстатки.СуммаОстаток > 0
ТОГДА 0
ИНАЧЕ Софт_ЗадолженностьПоЛицевымСчетамОстатки.СуммаОстаток
КОНЕЦ, 0) КАК СН_К,
ЕСТЬNULL(Софт_НачисленияПоЛицевымСчетамОбороты.СуммаОборот, 0) КАК Начислено,
ЕСТЬNULL(Софт_НачисленияПоЛицевымСчетамОбороты1.СуммаОборот, 0) КАК Перерасчет,
ЕСТЬNULL(Софт_НачисленияПоЛицевымСчетамОбороты2.СуммаОборот, 0) КАК Счетчики,
ЕСТЬNULL(Софт_ОплатаПоЛицевымСчетамОбороты.СуммаОборот, 0) КАК Оплата,
ЕСТЬNULL(ВЫБОР
КОГДА Софт_ЗадолженностьПоЛицевымСчетамОстатки1.СуммаОстаток < 0
ТОГДА 0
ИНАЧЕ Софт_ЗадолженностьПоЛицевымСчетамОстатки1.СуммаОстаток
КОНЕЦ, 0) КАК СК_Д,
ЕСТЬNULL(ВЫБОР
КОГДА Софт_ЗадолженностьПоЛицевымСчетамОстатки1.СуммаОстаток > 0
ТОГДА 0
ИНАЧЕ Софт_ЗадолженностьПоЛицевымСчетамОстатки1.СуммаОстаток
КОНЕЦ, 0) КАК СК_К,
ЕСТЬNULL(Софт_ЗадолженностьПоЛицевымСчетамОстатки1.СуммаОстаток, 0) КАК СК_Свернутое,
ВложенныйЗапрос.СуммаОборот
ИЗ
Справочник.Софт_ЛицевыеСчета КАК Софт_ЛицевыеСчета
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Софт_ЗадолженностьПоЛицевымСчетам.Остатки(&ДатаНач, ) КАК Софт_ЗадолженностьПоЛицевымСчетамОстатки
ПО Софт_ЛицевыеСчета.Ссылка = Софт_ЗадолженностьПоЛицевымСчетамОстатки.ЛицевойСчет.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Софт_НачисленияПоЛицевымСчетам.Обороты(&ДатаНач, &ДатаКон, , ) КАК Софт_НачисленияПоЛицевымСчетамОбороты
ПО Софт_ЛицевыеСчета.Ссылка = Софт_НачисленияПоЛицевымСчетамОбороты.ЛицевойСчет.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Софт_ОплатаПоЛицевымСчетам.Обороты(&ДатаНач, &ДатаКон, , ) КАК Софт_ОплатаПоЛицевымСчетамОбороты
ПО Софт_ЛицевыеСчета.Ссылка = Софт_ОплатаПоЛицевымСчетамОбороты.ЛицевойСчет.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Софт_ЗадолженностьПоЛицевымСчетам.Остатки(&ДатаКон, ) КАК Софт_ЗадолженностьПоЛицевымСчетамОстатки1
ПО Софт_ЛицевыеСчета.Ссылка = Софт_ЗадолженностьПоЛицевымСчетамОстатки1.ЛицевойСчет.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Софт_Помещения_Паспорта.СрезПоследних(&ДатаНач, ) КАК Софт_Помещения_ПаспортаСрезПоследних
ПО Софт_ЛицевыеСчета.Помещение = Софт_Помещения_ПаспортаСрезПоследних.Помещение
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Софт_ЛицевыеСчета_Паспорта.СрезПоследних(&ДатаНач, ) КАК Софт_ЛицевыеСчета_ПаспортаСрезПоследних
ПО Софт_ЛицевыеСчета.Ссылка = Софт_ЛицевыеСчета_ПаспортаСрезПоследних.ЛицевойСчет.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Софт_НачисленияПоЛицевымСчетам.Обороты(&ДатаНач, &ДатаКон, , АлгоритмРасчета = &АлгоритмРасчета) КАК Софт_НачисленияПоЛицевымСчетамОбороты1
ПО Софт_ЛицевыеСчета.Ссылка = Софт_НачисленияПоЛицевымСчетамОбороты1.ЛицевойСчет.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Софт_НачисленияПоЛицевымСчетам.Обороты(&ДатаНач, &ДатаКон, , АлгоритмРасчета = &АлгоритмРасчетаСчетчики) КАК Софт_НачисленияПоЛицевымСчетамОбороты2
ПО Софт_ЛицевыеСчета.Ссылка = Софт_НачисленияПоЛицевымСчетамОбороты2.ЛицевойСчет.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Софт_ИзмененияТарифов_ФЛ.СрезПоследних(&ДатаНач, Тариф.Номенклатура = &ГВС) КАК Софт_ИзмененияТарифов_ФЛСрезПоследних
ПО Софт_ЛицевыеСчета.ГруппаТарифов = Софт_ИзмененияТарифов_ФЛСрезПоследних.Тариф.ГруппаТарифов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Софт_ИзмененияТарифов_ФЛ.СрезПоследних(&ДатаНач, Тариф.Номенклатура = &Отопление) КАК Софт_ИзмененияТарифов_ФЛСрезПоследних1
ПО Софт_ЛицевыеСчета.ГруппаТарифов = Софт_ИзмененияТарифов_ФЛСрезПоследних1.Тариф.ГруппаТарифов
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
Софт_РасчетОтпуска_ФЛ_Номенклатура.Владелец.Владелец.ЛицевойСчет.Ссылка КАК ЛицевойСчет,
СУММА(Софт_РасчетОтпуска_ФЛ_Номенклатура.СуммаОборот) КАК СуммаОборот
ИЗ
Справочник.Софт_РасчетОтпуска_ФЛ_Номенклатура КАК Софт_РасчетОтпуска_ФЛ_Номенклатура
ГДЕ
Софт_РасчетОтпуска_ФЛ_Номенклатура.Владелец.Владелец.ПериодРасчета.ДатаНачала = &ДатаНач
И Софт_РасчетОтпуска_ФЛ_Номенклатура.Владелец.Владелец.ПериодРасчета.ДатаОкончания = &ДатаКон
И Софт_РасчетОтпуска_ФЛ_Номенклатура.Владелец.Владелец.СтатусЗаписи = &Статус
И Софт_РасчетОтпуска_ФЛ_Номенклатура.Номенклатура = &Номенклатура

СГРУППИРОВАТЬ ПО
Софт_РасчетОтпуска_ФЛ_Номенклатура.Владелец.Владелец.ЛицевойСчет.Ссылка) КАК ВложенныйЗапрос
ПО Софт_ЛицевыеСчета.Ссылка = ВложенныйЗапрос.ЛицевойСчет.Ссылка

УПОРЯДОЧИТЬ ПО
Код
ИТОГИ
СРЕДНЕЕ(СуммаТарифаГВС),
СРЕДНЕЕ(СуммаТарифаОтопления),
СУММА(ОбщаяПлощадь),
СУММА(КоличествоПрописанных),
СУММА(СН_Свернутое),
СУММА(СН_Д),
СУММА(СН_К),
СУММА(Начислено),
СУММА(Перерасчет),
СУММА(Счетчики),
СУММА(Оплата),
СУММА(СК_Д),
СУММА(СК_К),
СУММА(СК_Свернутое)
ПО
ОБЩИЕ

Изменено 06.08.12 07:29:01
Yandex
Возможно, вас также заинтересует
Реклама на портале
Vitalii
06.08.2012 07:28Ответ № 1
Ну люди добрые помогите)) Я уже устал биться с этим вложенным запросом(((((((
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.