Имя: Пароль:
1C
1С v8
Помогите с запросом. Пустяковый вопрос =)
🠗 (Волшебник 22.04.2015 15:22)
0 napagokc
 
22.04.15
15:18
Добрый день, гуру 1С! Помогите, пожалуйста, с запросом, а то мозг поплыл уже...
Хочу определить какие товары были полностью проданы за определенный период. Пока балуюсь в консоли, накатал запрос (партионного учета нет):

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

УПОРЯДОЧИТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Период УБЫВ
;

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

УПОРЯДОЧИТЬ ПО
    Номенклатура

Все отрабатывает, как и планировалось, но тут в запросе задана конкретная номенклатура, а мне нужно в общем виде. Если параметр с номенклатурой убрать, то пакет ДатаПродажи всегда будет возвращать пустое значение. Я что-то думал, что связь по складу и номенклатуре даст мне нужный результат, но оказалось, что я жестоко ошибался... Как мне дать понять пакету ДатаПродажи, что нужно рассматривать номенклатуру из запроса ниже?
1 DrShad
 
22.04.15
15:21
для решения задачи достаточно выбрать товары у которых остаток на начало есть, а на конец нет
2 napagokc
 
22.04.15
15:23
(1) в окончательном виде должны получиться остатки товаров и тех, что имеют остатки, и тех, что не имеют. Но у тех, что не имеют остатков, нужно еще указать дату, когда товары выбыли. Так что, ваш вариант не подойдет.
3 napagokc
 
22.04.15
15:26
ну и нафига Волшебник опустил тему? Это форум по 1С или так - потрещать о жизни?
4 Ващета
 
22.04.15
15:50
(0) Что означает "параметр с номенклатурой убрать"? Задать пустой параметр или из запроса убрать? Если второе - то первый пакет не должен быть пустым, а если первое - то тут надо по-другому, или текст запроса динамически менять через стрзаменить, убирая упоминания об этом условии или добавить к условию "ИЛИ &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяССылка)
5 DrShad
 
22.04.15
15:51
(2) а где об этом в сабже написано?
6 DrShad
 
22.04.15
15:58
делай не пакетами, а через ВТ
7 Ващета
 
22.04.15
16:15
(6) "ПОМЕСТИТЬ ДатаПродажи" куда по-твоему помещает?
8 DrShad
 
22.04.15
16:17
(7) знаешь что
тогда какие нафиг пакеты!?
Ошибка? Это не ошибка, это системная функция.