|
Не отображаются данные из запроса | ☑ | ||
---|---|---|---|---|
0
fdv_83
11.09.19
✎
10:59
|
Здравствуйте, уважаемые форумчане.
Имеется небольшой отчёт. В запросе этого отчёта используются две таблицы: одна РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт в корреспонденции некоторых счетов и присоединяемая к ней левым соединением вторая таблица из документа СчетНаОплатуПокупателю. Вторая таблица присоединяется по двум полям: Контрагент и договор. Проблема в том, что если во второй таблице нет данных, то данные из первой таблице тоже не отображаются, а по идее они должны выходить. Подскажите, пожалуйста, в чём может быть загвоздка. Код запроса прилагаю: ВЫБРАТЬ ХозрасчетныйОборотыДтКт.СубконтоКт1 КАК Контрагент, ХозрасчетныйОборотыДтКт.СубконтоКт2 КАК Договор, МАКСИМУМ(ХозрасчетныйОборотыДтКт.СуммаОборот) КАК СуммаОплаты, ЕСТЬNULL(СчетНаОплатуПокупателю.КурсВзаиморасчетов, 1) КАК КурсВзаиморасчетов, ЕСТЬNULL(СчетНаОплатуПокупателю.СтавкаНДС, ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка)) КАК СтавкаНДС, СУММА(ЕСТЬNULL(СчетНаОплатуПокупателю.СуммаДокументаБезНДС, 0)) КАК СуммаДокументаБезНДС, СУММА(ЕСТЬNULL(СчетНаОплатуПокупателю.СуммаДокумента, 0)) КАК СуммаДокумента ИЗ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , СчетДт.Код В ("50.01", "51", "55.03"), , СчетКт.Код В ("62.01", "62.02"), , ) КАК ХозрасчетныйОборотыДтКт ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю ПО ХозрасчетныйОборотыДтКт.СубконтоКт1 = СчетНаОплатуПокупателю.Контрагент И ХозрасчетныйОборотыДтКт.СубконтоКт2 = СчетНаОплатуПокупателю.ДоговорКонтрагента ГДЕ СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериодаСчетов И &КонецПериода И НЕ СчетНаОплатуПокупателю.ПометкаУдаления СГРУППИРОВАТЬ ПО ХозрасчетныйОборотыДтКт.СубконтоКт1, ХозрасчетныйОборотыДтКт.СубконтоКт2, ЕСТЬNULL(СчетНаОплатуПокупателю.КурсВзаиморасчетов, 1), ЕСТЬNULL(СчетНаОплатуПокупателю.СтавкаНДС, ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка)) УПОРЯДОЧИТЬ ПО Контрагент, Договор ИТОГИ СУММА(СуммаОплаты), СУММА(СуммаДокументаБезНДС), СУММА(СуммаДокумента) ПО ОБЩИЕ, Контрагент АВТОУПОРЯДОЧИВАНИЕ |
|||
1
ДенисЧ
11.09.19
✎
11:01
|
замени левое на полное, если я тебя правильно понял
|
|||
2
HardBall
11.09.19
✎
11:05
|
Классика. Условие отбора надо перенести в услови соединения
ГДЕ СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериодаСчетов И &КонецПериода И НЕ СчетНаОплатуПокупателю.ПометкаУдаления |
|||
3
catena
11.09.19
✎
11:10
|
Условие на левую таблицу превращает левое соединение во внутреннее.
|
|||
4
fdv_83
11.09.19
✎
11:10
|
(1) Нет, здесь нужно именно левое соединение
|
|||
5
fdv_83
11.09.19
✎
11:11
|
(2) Не совсем понял, как это сделать
|
|||
6
SuperMario
11.09.19
✎
11:12
|
(2) +1
(0) почитай, когда срабатывает секция "Где". Ты соединение выполнил, а потом на результат накладываешь условие. Соотв-но "Где " будет применяться ко всему запросу. |
|||
7
SuperMario
11.09.19
✎
11:13
|
Я бы запрос к счетам вынес вместе с его условиями в ВТ или во вложенный запрос
|
|||
8
HardBall
11.09.19
✎
11:14
|
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачалоПериода, &КонецПериода, , СчетДт.Код В ("50.01", "51", "55.03"), , СчетКт.Код В ("62.01", "62.02"), , ) КАК ХозрасчетныйОборотыДтКт ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю ПО ХозрасчетныйОборотыДтКт.СубконтоКт1 = СчетНаОплатуПокупателю.Контрагент И ХозрасчетныйОборотыДтКт.СубконтоКт2 = СчетНаОплатуПокупателю.ДоговорКонтрагента И СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериодаСчетов И &КонецПериода И НЕ СчетНаОплатуПокупателю.ПометкаУдаления |
|||
9
fdv_83
11.09.19
✎
11:25
|
(6) (8) Спасибо вам. Ошибку свою понял
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |