Выводить строки в отчете по незаполненному регистру

1. HaIIpuKoJIe 10.07.18 14:11 Сейчас в теме
Добрый день. Сделал отчет который показывает выпущенную продукцию с ценами по определенному виду цен (Дилер). Собственно не на все позиции есть цены и эти строки в отчет не попадают. Как сделать отбор что бы в отчет попадали все позиции которые были выпущены за определенный период даже если на них нету цен.
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Характеристика,
	ЦеныНоменклатурыСрезПоследних.ВидЦены,
	ЦеныНоменклатурыСрезПоследних.Цена,
	ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
	ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика,
	ВыпускПродукцииОбороты.КоличествоОборот
ИЗ
	РегистрНакопления.ВыпускПродукции.Обороты КАК ВыпускПродукцииОбороты
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
		ПО ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
			И ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
Показать


Отбор стоит ВидЦены Радно Дилер.
По теме из базы знаний
Найденные решения
8. Ferth 10.07.18 15:44 Сейчас в теме
ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены = &Дилер ИЛИ ЦеныНоменклатурыСрезПоследних.ВидЦены is null
тоже надо добавить.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. user774630 10.07.18 14:28 Сейчас в теме
допишите в конце запроса
ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены = &Дилер ИЛИ ЦеныНоменклатурыСрезПоследних.ВидЦены is null
3. HaIIpuKoJIe 10.07.18 14:33 Сейчас в теме
(2)
ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены = &Дилер ИЛИ ЦеныНоменклатурыСрезПоследних.ВидЦены is null

Так показывает только позиции по которым не заданны цены.
4. Ferth 10.07.18 15:04 Сейчас в теме
выбирайте не ЦеныНоменклатурыСрезПоследних.Номенклатура а ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура, т.к в текущем запросе если в РС ЦеныНоменклатуры нет номенклатуры, то запрос вернет null
5. HaIIpuKoJIe 10.07.18 15:12 Сейчас в теме
(4)
ПО ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика

Вроде так и делаю, чет не пойму.
6. Ferth 10.07.18 15:21 Сейчас в теме
не
ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,

а
ВЫБРАТЬ
   ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
7. HaIIpuKoJIe 10.07.18 15:36 Сейчас в теме
(6)
ВЫБРАТЬ
	ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
	ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика,
	ВыпускПродукцииОбороты.КоличествоОборот,
	ЦеныНоменклатурыСрезПоследних.Цена,
	ЦеныНоменклатурыСрезПоследних.ВидЦены
ИЗ
	РегистрНакопления.ВыпускПродукции.Обороты КАК ВыпускПродукцииОбороты
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
		ПО ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
			И ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
Показать

Это что-то меняет? Отчет не изменился.
8. Ferth 10.07.18 15:44 Сейчас в теме
ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены = &Дилер ИЛИ ЦеныНоменклатурыСрезПоследних.ВидЦены is null
тоже надо добавить.
9. HaIIpuKoJIe 10.07.18 15:51 Сейчас в теме
(8)
ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены = &Дилер ИЛИ ЦеныНоменклатурыСрезПоследних.ВидЦены is null

Выводит только позиции где в значение NULL
10. Ferth 10.07.18 15:56 Сейчас в теме
&Дилер - это параметр. Надо указать его значение перед формированием отчета
11. HaIIpuKoJIe 10.07.18 16:34 Сейчас в теме
(10) Отчет начал показывать позиции и те где NULL и с 0 но почему то не все. Из 30000 выпущенной продукции показывает 29000
12. Ferth 10.07.18 17:28 Сейчас в теме
А если убрать левое соединение, правильное количество показывает?
Можно конечно попробовать поправить запрос. Но это вряд ли поможет, т.е.
Обернуть null и добавить отбор в параметры виртуальной таблицы.

ВЫБРАТЬ
    ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика,
    ВыпускПродукцииОбороты.КоличествоОборот,
    isnull(ЦеныНоменклатурыСрезПоследних.Цена,0) как Цена,
    ЦеныНоменклатурыСрезПоследних.ВидЦены
ИЗ
    РегистрНакопления.ВыпускПродукции.Обороты КАК ВыпускПродукцииОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Дилер) КАК ЦеныНоменклатурыСрезПоследних
        ПО ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
Показать
13. HaIIpuKoJIe 11.07.18 10:06 Сейчас в теме
(12) Похоже всему виной кривые записи в РС, если удаляю их из регистратора то позиции появляются.
14. Ferth 11.07.18 14:19 Сейчас в теме
В запросе же к РН присоединяются записи РС.
Надо просмотреть какой результат получается в консоли запросов.
15. Plotks2017 267 13.07.18 13:38 Сейчас в теме
(145)
(1) Добавь в соединение

И ЦеныНоменклатурыСрезПоследних.ВидЦены = &Дилер


должно получиться

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Характеристика,
    ЦеныНоменклатурыСрезПоследних.ВидЦены,
    ЦеныНоменклатурыСрезПоследних.Цена,
    ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика,
    ВыпускПродукцииОбороты.КоличествоОборот
ИЗ
    РегистрНакопления.ВыпускПродукции.Обороты КАК ВыпускПродукцииОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        ПО ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ВыпускПродукцииОбороты.АналитикаУчетаНоменклатуры.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
               И ЦеныНоменклатурыСрезПоследних.ВидЦены = &Дилер
Показать


Все обороты соединяться с ценами дилера, там где нет будет NULL используй ЕстьNULL.

Условие ниже не хорошее т.е. вернутся те строки, где либо цена Дилера либо ни какой + сначала пройдет полное левое соединение, его можно избежать.
ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены = &Дилер ИЛИ ЦеныНоменклатурыСрезПоследних.ВидЦены is null 
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)