Вход | Регистрация

1С:Предприятие ::

Метки: 

условие в запросе для дня

Я
   MarinaSk
 
05.01.13 - 01:27
Нужны данные:
Приход, Расход, Остаток товара по дням на определенном складе по конкретному поставщику. Причем Остаток в дне по товару должен выводиться только в том случае, когда есть движение товара в этот день.

Имеем простенький запрос, в нем условие:
ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &ВыбСклад
    И ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Контрагент = &ВыбКонтрагент
    И (ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход <> 0
    ИЛИ ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход <> 0)

только вот условие КоличествоПриход <> 0 или КоличествоРасход <> 0 срабатывает для всей выборки,
как наложить условие на ПериодДень?

Сам запрос:
        ВЫБРАТЬ
            ПартииТоваровНаСкладахОстаткиИОбороты.Склад КАК Склад,
            ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
            ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования КАК Партия,
            ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
            ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
            ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход  КАК СтоимостьРасход,
            ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
            ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток  КАК СтоимостьКонечныйОстаток,
            ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.Артикул КАК Артикул,
            ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
            ПартииТоваровНаСкладахОстаткиИОбороты.ПериодДень КАК ПериодДень,
            ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход КАК СтоимостьПриход
        ИЗ
            РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Авто, ДвиженияИГраницыПериода, ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
        ГДЕ
            ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &ВыбСклад
            И ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Контрагент = &ВыбКонтрагент
            И (ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход <> 0
               ИЛИ ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход <> 0)
        
        СГРУППИРОВАТЬ ПО
            ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Организация,
            ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Контрагент,
            ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
            ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
           ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
           ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.Артикул,
            ПартииТоваровНаСкладахОстаткиИОбороты.ПериодДень,
           ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор,
           ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход,
           ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
           ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
           ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход,
           ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
           ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток
        
        УПОРЯДОЧИТЬ ПО
            Склад,
            ПериодДень,
            ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.Наименование,
            Партия
        ИТОГИ
            СУММА(КоличествоПриход),
            СУММА(КоличествоРасход),
            СУММА(СтоимостьРасход),
            СУММА(КоличествоКонечныйОстаток),
            СУММА(СтоимостьКонечныйОстаток),
            СУММА(СтоимостьПриход)
        ПО
            Склад,
            ПериодДень,
           Номенклатура
 
 
   MarinaSk
 
1 - 05.01.13 - 01:39
уточнение:

запрос дает результат (по кол-ву привожу):
Дата/Товары    Приход  Расход    Остаток
1.12.12
    Товар                2

3.12.12
    Товар          1       1



Но 1.12.12 нет движения по товару, поэтому нужно так: 
Дата/Товары    Приход  Расход    Остаток
3.12.12
    Товар           1       1
   GROOVY
 
Ведущий
2 - 05.01.13 - 01:41
Сгруппируй по дню и наложи having.
   Кокос
 
3 - 05.01.13 - 01:41
можно еще вложенный запрос :)
   MarinaSk
 
4 - 05.01.13 - 01:43
таблички разъехались, вот здесь нагляднее:
http://www.7image.ru/pics/0113/330127749.jpg

счас попробую (2)
   GROOVY
 
Ведущий
5 - 05.01.13 - 01:54
Я кстати, видимо перемудрил... Можно ведь
КоличествоПриход + КоличествоРасход <> 0
   MarinaSk
 
6 - 05.01.13 - 01:58
(5) все равно условие на всю выборку запроса срабатывает
   GROOVY
 
Ведущий
7 - 05.01.13 - 02:08
Я только сейчас весь запрос посмотрел. Зачем Вы группируете по значению ресурсов?
   Кокос
 
8 - 05.01.13 - 02:10
(7) а ее конструктор заставляет. Тамже СУММА(..) нет.
   GROOVY
 
Ведущий
9 - 05.01.13 - 02:10
Даже не так... Зачем вообще группировать результат выполнения виртуальной таблицы?
   Кокос
 
10 - 05.01.13 - 02:11
(0)
заключи все числовые ресурсы в СУММА
СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
 
 Рекламное место пустует
   GROOVY
 
Ведущий
11 - 05.01.13 - 02:13
+10 и группировать нужно только по дню.

И поля с артикулом и представлением номенклатуры я получал бы в соединении. Соединение уже с результатом того что получится после условия.
   MarinaSk
 
12 - 05.01.13 - 02:23
логику поняла...
с практикой запросов засада....

можно пример на любых данных для получения полей в соединении с результатом после условия
   Кокос
 
13 - 05.01.13 - 02:32
ну тут если только запрос за тебя написать.
   MarinaSk
 
14 - 05.01.13 - 02:34
:))) ясно
   MarinaSk
 
15 - 05.01.13 - 02:54
ВЫБРАТЬ
            ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
            СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
            СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
            СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьРасход) КАК СтоимостьРасход,
            СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
            СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток,
            ПартииТоваровНаСкладахОстаткиИОбороты.ПериодДень КАК ПериодДень,
            СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход) КАК СтоимостьПриход
        ИЗ
            РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Авто, ДвиженияИГраницыПериода, ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
        ГДЕ
            ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &ВыбСклад
            И ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Контрагент = &ВыбКонтрагент
            И (ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход <> 0
                    ИЛИ ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход <> 0)
        
        СГРУППИРОВАТЬ ПО
            ПартииТоваровНаСкладахОстаткиИОбороты.ПериодДень,
            ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
        
        УПОРЯДОЧИТЬ ПО
            ПериодДень
        ИТОГИ
            СУММА(КоличествоПриход),
            СУММА(КоличествоРасход),
            СУММА(СтоимостьРасход),
            СУММА(КоличествоКонечныйОстаток),
            СУММА(СтоимостьКонечныйОстаток),
            СУММА(СтоимостьПриход)
        ПО
            ПериодДень


здесь получаю ПериодДень и Номенклатуру,
а теперь снова тащить все нужные мне данные из РегистрНакопления.ПартииТоваровНаСкладах соединяясь по ПериодДень и Номенклатуре. так? я правильно поняла?


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует