Вывод полей с нулевыми значениями ресурсов (СКД)
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Ситуация следующая: есть отчет на СКД, состоящий из 2х наборов данных. Первый набор выбирает все зарегистрированные работы по дому, второй - соответствующие цены:
Работы:
Тарифы:
Связь наборов происходит по полю КонструктивныйЭлемент. Нигде условий, что цена обязательно должна быть больше 0 не вводил. Однако, в отчет не попадают поля "КонструктивныйЭлемент", для которых Цена = 0. Можно ли в данной ситуации все-таки вывести подобные данные (с нулевыми ценами)?
Работы:
ВЫБРАТЬ
ПлановыеРаботыПоДомам.Ссылка КАК Работа,
ПлановыеРаботыПоДомам.КонструктивныйЭлемент
ИЗ
РегистрСведений.ПроверенныеПеречниРабот.СрезПоследних(
&Дата,
Дом = &Дом
И ВидПеречня = &ВидПеречня) КАК ПроверенныеПеречниРаботСрезПоследних
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПлановыеРаботыПоДомам КАК ПлановыеРаботыПоДомам
ПО ПроверенныеПеречниРаботСрезПоследних.КонструктивныйЭлемент = ПлановыеРаботыПоДомам.КонструктивныйЭлемент
ПоказатьТарифы:
ВЫБРАТЬ
СостояниеДомаСрезПоследних.Дом,
ХарактеристикиДомовТипДома.Значение КАК ТипДома,
ТипыТарифовПоДомамСрезПоследних.ТипТарифа,
ВидыНормативовПоДомамСрезПоследних.ВидНорматива
ПОМЕСТИТЬ Дома
ИЗ
РегистрСведений.СостояниеДома.СрезПоследних(&Дата, Дом = &Дом) КАК СостояниеДомаСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХарактеристикиДомов.СрезПоследних(
&Дата,
Дом = &Дом
И ХарактеристикаДома = &ХарактеристикаТип) КАК ХарактеристикиДомовТипДома
ПО СостояниеДомаСрезПоследних.Дом = ХарактеристикиДомовТипДома.Дом
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ХарактеристикиДомов.СрезПоследних(
&Дата,
ХарактеристикаДома = &Жилой
И Дом = &Дом) КАК ХарактеристикиДомовЖилой
ПО СостояниеДомаСрезПоследних.Дом = ХарактеристикиДомовЖилой.Дом
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТипыТарифовПоДомам.СрезПоследних(
&Дата,
Дом = &Дом
И ВидПеречня = &ВидПеречня) КАК ТипыТарифовПоДомамСрезПоследних
ПО СостояниеДомаСрезПоследних.Дом = ТипыТарифовПоДомамСрезПоследних.Дом
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВидыНормативовПоДомам.СрезПоследних(&Дата, Дом = &Дом) КАК ВидыНормативовПоДомамСрезПоследних
ПО СостояниеДомаСрезПоследних.Дом = ВидыНормативовПоДомамСрезПоследних.Дом
ГДЕ
СостояниеДомаСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.ВидыСостоянияДома.ПринятКУчету)
И ХарактеристикиДомовЖилой.Значение > 0
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
НормативыПоПлановымРаботамСрезПоследних.КонструктивныйЭлемент,
НормативыПоПлановымРаботамСрезПоследних.Цена,
НормативыПоПлановымРаботамСрезПоследних.ЦенаСНДС,
НормативыПоПлановымРаботамСрезПоследних.Объект,
НормативыПоПлановымРаботамСрезПоследних.ТипТарифа
ПОМЕСТИТЬ Тарифы
ИЗ
РегистрСведений.НормативыПоПлановымРаботам.СрезПоследних(&Дата, ) КАК НормативыПоПлановымРаботамСрезПоследних
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Дома.Дом,
СУММА(Тарифы.Цена) КАК Цена,
СУММА(Тарифы.ЦенаСНДС) КАК ЦенаСНДС,
Тарифы.КонструктивныйЭлемент
ИЗ
Дома КАК Дома
ЛЕВОЕ СОЕДИНЕНИЕ Тарифы КАК Тарифы
ПО Дома.ТипТарифа = Тарифы.ТипТарифа
И Дома.ТипДома = Тарифы.Объект
ГДЕ
Дома.ВидНорматива = &ПоТипуДома
СГРУППИРОВАТЬ ПО
Дома.Дом,
Тарифы.КонструктивныйЭлемент
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Дома.Дом,
СУММА(Тарифы.Цена),
СУММА(Тарифы.ЦенаСНДС),
Тарифы.КонструктивныйЭлемент
ИЗ
Дома КАК Дома
ЛЕВОЕ СОЕДИНЕНИЕ Тарифы КАК Тарифы
ПО Дома.Дом = Тарифы.Объект
ГДЕ
Дома.ВидНорматива = &ПоДому
СГРУППИРОВАТЬ ПО
Дома.Дом,
Тарифы.КонструктивныйЭлемент
ПоказатьСвязь наборов происходит по полю КонструктивныйЭлемент. Нигде условий, что цена обязательно должна быть больше 0 не вводил. Однако, в отчет не попадают поля "КонструктивныйЭлемент", для которых Цена = 0. Можно ли в данной ситуации все-таки вывести подобные данные (с нулевыми ценами)?
По теме из базы знаний
- Универсальный конструктор отчетов (Новейший отчет) для 1C 7.7
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- Как сдать экзамен 1С:Специалист по платформе?
- Нестандартное использование СКД
- Различный расчет итогов в одной колонке отчета для разных группировок. СКД. Ресурсы vs Пользовательские поля
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Всё логично. КонструктивныйЭлемент у к-рого цена 0 в регистре НормативыПоПлановымРаботам не находится. Делайте всё в одном запросе без разбиения по наборам. Получайте цены КонструктивныхЭлементов через левое соединение и всё.
ВЫБРАТЬ
СостояниеДомаСрезПоследних.Дом,
ХарактеристикиДомовТипДома.Значение КАК ТипДома,
ТипыТарифовПоДомамСрезПоследних.ТипТарифа,
ВидыНормативовПоДомамСрезПоследних.ВидНорматива
ПОМЕСТИТЬ Дома
ИЗ
РегистрСведений.СостояниеДома.СрезПоследних(&Дата, Дом = &Дом) КАК СостояниеДомаСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ХарактеристикиДомов.СрезПоследних(
&Дата,
Дом = &Дом
И ХарактеристикаДома = &ХарактеристикаТип) КАК ХарактеристикиДомовТипДома
ПО СостояниеДомаСрезПоследних.Дом = ХарактеристикиДомовТипДома.Дом
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ХарактеристикиДомов.СрезПоследних(
&Дата,
ХарактеристикаДома = &Жилой
И Дом = &Дом) КАК ХарактеристикиДомовЖилой
ПО СостояниеДомаСрезПоследних.Дом = ХарактеристикиДомовЖилой.Дом
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТипыТарифовПоДомам.СрезПоследних(
&Дата,
Дом = &Дом
И ВидПеречня = &ВидПеречня) КАК ТипыТарифовПоДомамСрезПоследних
ПО СостояниеДомаСрезПоследних.Дом = ТипыТарифовПоДомамСрезПоследних.Дом
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВидыНормативовПоДомам.СрезПоследних(&Дата, Дом = &Дом) КАК ВидыНормативовПоДомамСрезПоследних
ПО СостояниеДомаСрезПоследних.Дом = ВидыНормативовПоДомамСрезПоследних.Дом
ГДЕ
СостояниеДомаСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.ВидыСостоянияДома.ПринятКУчету)
И ХарактеристикиДомовЖилой.Значение > 0
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
НормативыПоПлановымРаботамСрезПоследних.КонструктивныйЭлемент,
НормативыПоПлановымРаботамСрезПоследних.Цена,
НормативыПоПлановымРаботамСрезПоследних.ЦенаСНДС,
НормативыПоПлановымРаботамСрезПоследних.Объект,
НормативыПоПлановымРаботамСрезПоследних.ТипТарифа
ПОМЕСТИТЬ Тарифы
ИЗ
РегистрСведений.НормативыПоПлановымРаботам.СрезПоследних(&Дата, ) КАК НормативыПоПлановымРаботамСрезПоследних
ГДЕ
НормативыПоПлановымРаботамСрезПоследних.ЦенаСНДС > 0
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Дома.Дом,
СУММА(Тарифы.Цена) КАК Цена,
СУММА(Тарифы.ЦенаСНДС) КАК ЦенаСНДС,
Тарифы.КонструктивныйЭлемент
ПОМЕСТИТЬ Суммы
ИЗ
Дома КАК Дома
ЛЕВОЕ СОЕДИНЕНИЕ Тарифы КАК Тарифы
ПО Дома.ТипТарифа = Тарифы.ТипТарифа
И Дома.ТипДома = Тарифы.Объект
ГДЕ
Дома.ВидНорматива = &ПоТипуДома
СГРУППИРОВАТЬ ПО
Дома.Дом,
Тарифы.КонструктивныйЭлемент
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Дома.Дом,
СУММА(Тарифы.Цена),
СУММА(Тарифы.ЦенаСНДС),
Тарифы.КонструктивныйЭлемент
ИЗ
Дома КАК Дома
ЛЕВОЕ СОЕДИНЕНИЕ Тарифы КАК Тарифы
ПО Дома.Дом = Тарифы.Объект
ГДЕ
Дома.ВидНорматива = &ПоДому
СГРУППИРОВАТЬ ПО
Дома.Дом,
Тарифы.КонструктивныйЭлемент
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ПлановыеРаботыПоДомам.Ссылка КАК Работа,
ПлановыеРаботыПоДомам.КонструктивныйЭлемент,
Суммы.Цена КАК Цена,
Суммы.ЦенаСНДС КАК ЦенаСНДС
ИЗ
РегистрСведений.ПроверенныеПеречниРабот.СрезПоследних(
&Дата,
Дом = &Дом
И ВидПеречня = &ВидПеречня) КАК ПроверенныеПеречниРаботСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Суммы КАК Суммы
ПО ПроверенныеПеречниРаботСрезПоследних.КонструктивныйЭлемент = Суммы.КонструктивныйЭлемент
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПлановыеРаботыПоДомам КАК ПлановыеРаботыПоДомам
ПО ПроверенныеПеречниРаботСрезПоследних.КонструктивныйЭлемент = ПлановыеРаботыПоДомам.КонструктивныйЭлемент
ПоказатьНичего не поменялось
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот