Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 мар 2024, 10:37

Ошибка в запросе?!

Автор Powerman, 10 авг 2012, 12:58

0 Пользователей и 1 гость просматривают эту тему.

Powerman

Подскажите по запросу...
Запрос писал не я, но приходится разбираться.
Текст запроса...

ВЫБРАТЬ
ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК ДокументРезерва
ПОМЕСТИТЬ ЗаказыДляЗакрытия
ИЗ
РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
,
ДокументРезерва.Ссылка ССЫЛКА Документ.ЗаказПокупателя
И Склад В ИЕРАРХИИ (&СкладРезерва)) КАК ТоварыВРезервеНаСкладахОстатки

СГРУППИРОВАТЬ ПО
ТоварыВРезервеНаСкладахОстатки.ДокументРезерва
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВложенныйЗапрос.ДокументРезерва,
ВложенныйЗапрос.Отгрузка,
ВложенныйЗапрос.Оплата
ПОМЕСТИТЬ ЗаказыБезДвижения
ИЗ
(ВЫБРАТЬ
ЗаказыДляЗакрытия.ДокументРезерва КАК ДокументРезерва,
ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход, 0) КАК Отгрузка,
ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход, 0) КАК Оплата
ИЗ
ЗаказыДляЗакрытия КАК ЗаказыДляЗакрытия
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(
,
,
Период,
Сделка В
(ВЫБРАТЬ
ЗаказыДляЗакрытия.ДокументРезерва
ИЗ
ЗаказыДляЗакрытия)) КАК ВзаиморасчетыСКонтрагентамиОбороты
ПО ЗаказыДляЗакрытия.ДокументРезерва = ВзаиморасчетыСКонтрагентамиОбороты.Сделка) КАК ВложенныйЗапрос
ГДЕ
(ВложенныйЗапрос.Отгрузка <= 0
ИЛИ ВложенныйЗапрос.Оплата <= 0)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗакрытиеЗаказовПокупателейЗаказы.Ссылка КАК Закрытие,
ЗаказыБезДвижения.ДокументРезерва КАК Заказ
ИЗ
ЗаказыБезДвижения КАК ЗаказыБезДвижения
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗакрытиеЗаказовПокупателей.Заказы КАК ЗакрытиеЗаказовПокупателейЗаказы
ПО ЗаказыБезДвижения.ДокументРезерва = ЗакрытиеЗаказовПокупателейЗаказы.ЗаказПокупателя
ГДЕ
ЗаказыБезДвижения.ДокументРезерва.Дата >= &СДаты

СГРУППИРОВАТЬ ПО
ЗакрытиеЗаказовПокупателейЗаказы.Ссылка,
ЗаказыБезДвижения.ДокументРезерва

УПОРЯДОЧИТЬ ПО
ЗаказыБезДвижения.ДокументРезерва.Дата


По идее запрос должен выбирать заказы, по которым есть резерв по складу, из этих заказов выбирать заказы, по которым нет оплаты и (или) отгрузки, но по какой-то  причине запрос выбирает заказы, по которым есть оплаты или отгрузки. Как правило, если по заказу есть несколько оплат или отгрузок. Я предполагаю, что в тексте запроса есть ошибки.
Конфигурация Управление Торговым Предприятием, Платформа 8.2

Powerman

Сам задал вопрос сам и отвечаю...
Сделал сам запрос и получил результат который был нужен.
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыВРезервеНаСкладах.ДокументРезерва КАК Заказ,
| ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход, 0) КАК Отгрузка,
| ЕСТЬNULL(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход, 0) КАК Оплата
|ИЗ
| РегистрНакопления.ТоварыВРезервеНаСкладах КАК ТоварыВРезервеНаСкладах
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты КАК ВзаиморасчетыСКонтрагентамиОбороты
| ПО ТоварыВРезервеНаСкладах.ДокументРезерва = ВзаиморасчетыСКонтрагентамиОбороты.Сделка
|ГДЕ
| ТоварыВРезервеНаСкладах.ДокументРезерва.Дата >= &СДаты
| И ТоварыВРезервеНаСкладах.Склад В ИЕРАРХИИ(&СкладРезерва)
|
|СГРУППИРОВАТЬ ПО
| ТоварыВРезервеНаСкладах.ДокументРезерва,
| ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход,
| ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход
|
|УПОРЯДОЧИТЬ ПО
| ТоварыВРезервеНаСкладах.ДокументРезерва.Дата";

Просто и сердито

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск