Корректный запрос бп 2.0

1. Intercititude 23.04.20 16:59 Сейчас в теме
Здравствуйте.
обычные формы бп 2.0 типовая.

Есть запрос:
ВЫБРАТЬ
                Спецоснастка.Номенклатура,
                Спецоснастка.Ссылка.Комментарий,
                Спецоснастка.Ссылка,
               Спецоснастка.Ссылка.Дата КАК ДатаУстановки,
                "" КАК ЗаводскойНомер
ПОМЕСТИТЬ Товары
ИЗ
                Документ.ПередачаМатериаловВЭксплуатацию.Спецоснастка КАК Спецоснастка
ГДЕ
                Спецоснастка.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И Спецоснастка.Ссылка.Проведен = ИСТИНА
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
                ИнвентарьХП.Номенклатура,
                ИнвентарьХП.Ссылка.Комментарий,
                ИнвентарьХП.Ссылка,
                ИнвентарьХП.Ссылка.Дата,
                ""
ИЗ                Документ.ПередачаМатериаловВЭксплуатацию.ИнвентарьИХозяйственныеПринадлежности КАК ИнвентарьХП
ГДЕ
                ИнвентарьХП.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И ИнвентарьХП.Ссылка.Проведен = ИСТИНА
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
                ОсновныеСредства.ОсновноеСредство.Наименование,
                ОсновныеСредства.Ссылка.Комментарий,
                ОсновныеСредства.Ссылка,
                ОсновныеСредства.Ссылка.Дата,
                ОсновныеСредства.ОсновноеСредство.ЗаводскойНомер
ИЗ
                Документ.ПринятиеКУчетуОС.ОсновныеСредства КАК ОсновныеСредства
ГДЕ
                ОсновныеСредства.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И ОсновныеСредства.Ссылка.Проведен = ИСТИНА
                И ОсновныеСредства.ОсновноеСредство.Наименование ПОДОБНО "шкаф%"
;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
                Товары.Номенклатура,
                Товары.Комментарий,
                Товары.Ссылка,
                Товары.ДатаУстановки КАК ДатаУстановки,
                ХозрасчетныйОстатки.КоличествоОстаток,
                Товары.ЗаводскойНомер
ИЗ
                Товары КАК Товары
                               ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату, Счет В (&Счета), &ВидыСубконто, ) КАК ХозрасчетныйОстатки
                               ПО Товары.Номенклатура = ХозрасчетныйОстатки.Субконто1
                                               И Товары.Ссылка = ХозрасчетныйОстатки.Субконто2
УПОРЯДОЧИТЬ ПО
                ДатаУстановки
Показать


Он предназначен для печатной формы. Интересует поле КоличествоОстаток.
Пользователь хочет видеть КоличествоОстаток на дату определенной номенклатуры.

Приложил скриншот примера по дт и кт.
В итоге в отчёт попадает null.
Что я делаю не так ? По сути же не надо вообще выводить эту позицию если null ? Или я не так понимаю.
И корректен ли вообще запрос ?
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vladimir-R 168 23.04.20 17:05 Сейчас в теме
У тебя же левое соединение
попадают все позиции из документов (Товары)
к ним соединением добавляются количествоостаток
Intercititude; +1 Ответить
3. Intercititude 23.04.20 17:56 Сейчас в теме +0.3 $m
(2) И правда! Спасибо.
То есть левое соединение на регистр сделать и будет корректный остаток показываться,правильно ?
с учетом возвратов и прочего.

Только как ограничить только то, что есть в регистре.
А то вылазят пустые позиции с количеством.
4. Vladimir-R 168 23.04.20 18:10 Сейчас в теме
(3) зависит от того, что необходимо в итоге получить
5. Intercititude 23.04.20 18:15 Сейчас в теме
(4) Количество на дату всех материалов из документов "Передача материалов в эксплуатацию" по счетам мц.04 и мц.04.
И по документам "Принятие к учёту ОС" по счетам 01.01.
6. ab_initio 95 24.04.20 03:59 Сейчас в теме
По тексту запроса, если надо всё что в документах, но чтоб не было NULL, то, наверное, надо так сделать:
ВЫБРАТЬ
                Спецоснастка.Номенклатура,
                Спецоснастка.Ссылка.Комментарий,
                Спецоснастка.Ссылка,
               Спецоснастка.Ссылка.Дата КАК ДатаУстановки,
                "" КАК ЗаводскойНомер
ПОМЕСТИТЬ Товары
ИЗ
                Документ.ПередачаМатериаловВЭксплуатацию.Спецоснастка КАК Спецоснастка
ГДЕ
                Спецоснастка.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И Спецоснастка.Ссылка.Проведен = ИСТИНА
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
                ИнвентарьХП.Номенклатура,
                ИнвентарьХП.Ссылка.Комментарий,
                ИнвентарьХП.Ссылка,
                ИнвентарьХП.Ссылка.Дата,
                ""
ИЗ                Документ.ПередачаМатериаловВЭксплуатацию.ИнвентарьИХозяйственныеПринадлежности КАК ИнвентарьХП
ГДЕ
                ИнвентарьХП.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И ИнвентарьХП.Ссылка.Проведен = ИСТИНА
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
                ОсновныеСредства.ОсновноеСредство.Наименование,
                ОсновныеСредства.Ссылка.Комментарий,
                ОсновныеСредства.Ссылка,
                ОсновныеСредства.Ссылка.Дата,
                ОсновныеСредства.ОсновноеСредство.ЗаводскойНомер
ИЗ
                Документ.ПринятиеКУчетуОС.ОсновныеСредства КАК ОсновныеСредства
ГДЕ
                ОсновныеСредства.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И ОсновныеСредства.Ссылка.Проведен = ИСТИНА
                И ОсновныеСредства.ОсновноеСредство.Наименование ПОДОБНО "шкаф%"
;
////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
                Товары.Номенклатура,
                Товары.Комментарий,
                Товары.Ссылка,
                Товары.ДатаУстановки КАК ДатаУстановки,
                ISNULL(ХозрасчетныйОстатки.КоличествоОстаток,0),
                Товары.ЗаводскойНомер
ИЗ
                Товары КАК Товары
                               ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату, Счет В (&Счета), &ВидыСубконто, ) КАК ХозрасчетныйОстатки
                               ПО Товары.Номенклатура = ХозрасчетныйОстатки.Субконто1
                                               И Товары.Ссылка = ХозрасчетныйОстатки.Субконто2
УПОРЯДОЧИТЬ ПО
                ДатаУстановки
Показать


А если
ограничить только то, что есть в регистре
, то тогда, думаю, так:

ВЫБРАТЬ
                Спецоснастка.Номенклатура,
                Спецоснастка.Ссылка.Комментарий,
                Спецоснастка.Ссылка,
               Спецоснастка.Ссылка.Дата КАК ДатаУстановки,
                "" КАК ЗаводскойНомер
ПОМЕСТИТЬ Товары
ИЗ
                Документ.ПередачаМатериаловВЭксплуатацию.Спецоснастка КАК Спецоснастка
ГДЕ
                Спецоснастка.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И Спецоснастка.Ссылка.Проведен = ИСТИНА
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
                ИнвентарьХП.Номенклатура,
                ИнвентарьХП.Ссылка.Комментарий,
                ИнвентарьХП.Ссылка,
                ИнвентарьХП.Ссылка.Дата,
                ""
ИЗ                Документ.ПередачаМатериаловВЭксплуатацию.ИнвентарьИХозяйственныеПринадлежности КАК ИнвентарьХП
ГДЕ
                ИнвентарьХП.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И ИнвентарьХП.Ссылка.Проведен = ИСТИНА
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
                ОсновныеСредства.ОсновноеСредство.Наименование,
                ОсновныеСредства.Ссылка.Комментарий,
                ОсновныеСредства.Ссылка,
                ОсновныеСредства.Ссылка.Дата,
                ОсновныеСредства.ОсновноеСредство.ЗаводскойНомер
ИЗ
                Документ.ПринятиеКУчетуОС.ОсновныеСредства КАК ОсновныеСредства
ГДЕ
                ОсновныеСредства.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
                И ОсновныеСредства.Ссылка.Проведен = ИСТИНА
                И ОсновныеСредства.ОсновноеСредство.Наименование ПОДОБНО "шкаф%"
;
////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
                Товары.Номенклатура,
                Товары.Комментарий,
                Товары.Ссылка,
                Товары.ДатаУстановки КАК ДатаУстановки,
                ХозрасчетныйОстатки.КоличествоОстаток,
                Товары.ЗаводскойНомер
ИЗ
                Товары КАК Товары
                               ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&НаДату, Счет В (&Счета), &ВидыСубконто, ) КАК ХозрасчетныйОстатки
                               ПО Товары.Номенклатура = ХозрасчетныйОстатки.Субконто1
                                               И Товары.Ссылка = ХозрасчетныйОстатки.Субконто2
УПОРЯДОЧИТЬ ПО
                ДатаУстановки
Показать
7. Vladimir-R 168 24.04.20 09:47 Сейчас в теме
тут вопрос скорее в другом: почему в отчете отображается NULL учитывая то, что документы проведены. И, как видится, есть несколько вариантов: &НаДату уже нет остатков на счетах (пришли/ушли), некорректно передан параметр &Счета и т.д.
мне кажется прежде чем корректировать отчет необходимо разобраться с причиной.
можно конечно и внутреннее соединение использовать, как советуют, но на сколько корректны будут данные в этом отчете?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот