0
napagokc
22.04.15
✎
15:18
|
Добрый день, гуру 1С! Помогите, пожалуйста, с запросом, а то мозг поплыл уже...
Хочу определить какие товары были полностью проданы за определенный период. Пока балуюсь в консоли, накатал запрос (партионного учета нет):
ВЫБРАТЬ ПЕРВЫЕ 1
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Регистратор.Дата,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.Склад
ПОМЕСТИТЬ ДатаПродажи
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Склад = &Склад И Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток <= 0
УПОРЯДОЧИТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Период УБЫВ
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток,
ДатаПродажи.РегистраторДата,
ДатаПродажи.КоличествоКонечныйОстаток,
ДатаПродажи.Номенклатура КАК Номенклатура1
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, Склад = &Склад И Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки
ПОЛНОЕ СОЕДИНЕНИЕ ДатаПродажи КАК ДатаПродажи
ПО ТоварыНаСкладахОстатки.Номенклатура = ДатаПродажи.Номенклатура
И ТоварыНаСкладахОстатки.Склад = ДатаПродажи.Склад
УПОРЯДОЧИТЬ ПО
Номенклатура
Все отрабатывает, как и планировалось, но тут в запросе задана конкретная номенклатура, а мне нужно в общем виде. Если параметр с номенклатурой убрать, то пакет ДатаПродажи всегда будет возвращать пустое значение. Я что-то думал, что связь по складу и номенклатуре даст мне нужный результат, но оказалось, что я жестоко ошибался... Как мне дать понять пакету ДатаПродажи, что нужно рассматривать номенклатуру из запроса ниже?
|
|
2
napagokc
22.04.15
✎
15:23
|
(1) в окончательном виде должны получиться остатки товаров и тех, что имеют остатки, и тех, что не имеют. Но у тех, что не имеют остатков, нужно еще указать дату, когда товары выбыли. Так что, ваш вариант не подойдет.
|
|
4
Ващета
22.04.15
✎
15:50
|
(0) Что означает "параметр с номенклатурой убрать"? Задать пустой параметр или из запроса убрать? Если второе - то первый пакет не должен быть пустым, а если первое - то тут надо по-другому, или текст запроса динамически менять через стрзаменить, убирая упоминания об этом условии или добавить к условию "ИЛИ &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяССылка)
|
|