Имя: Пароль:
1C
1С v8
ТОРГ 29. Исключить ОтчетОРозничныхПродажах
,
0 Альбатрос
 
31.07.13
10:13
Представляю вам запрос ТОРГ 29 из УТ 10.3
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    NULL КАК Док,
        |    NULL КАК ДатаДок,
        |    NULL КАК НомерДок,
        |    СУММА(ОстаткиТоваров.КоличествоНачальныйОстаток * ОстаткиТоваров.ЦенаВРознице) КАК НачОст,
        |    СУММА(ОстаткиТоваров.КоличествоКонечныйОстаток * ОстаткиТоваров.ЦенаВРознице) КАК КонОст,
        |    СУММА(
        |        ВЫБОР КОГДА ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход > 0 ТОГДА
        |            (ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход) * ОстаткиТоваров.ЦенаВРознице
        |        ИНАЧЕ
        |            0.00
        |        КОНЕЦ
        |    ) КАК Приход,
        |    СУММА(
        |        ВЫБОР КОГДА ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход > 0 ТОГДА
        |            (ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход) * ОстаткиТоваров.ЦенаВРознице
        |        ИНАЧЕ
        |            0.00
        |        КОНЕЦ
        |    ) КАК Расход
        |ИЗ
        |    РегистрНакопления.ТоварыВНТТ.ОстаткиИОбороты(&Дата1, &Дата2, , , Склад = &Склад) КАК ОстаткиТоваров
        |ИМЕЮЩИЕ
        |    СУММА(ОстаткиТоваров.КоличествоНачальныйОстаток * ОстаткиТоваров.ЦенаВРознице) <> 0.00
        |    ИЛИ СУММА(ОстаткиТоваров.КоличествоКонечныйОстаток * ОстаткиТоваров.ЦенаВРознице) <> 0.00
        |    ИЛИ СУММА(ВЫБОР КОГДА ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход > 0 ТОГДА
        |                    (ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход) * ОстаткиТоваров.ЦенаВРознице
        |                    ИНАЧЕ 0.00 КОНЕЦ) <> 0.00
        |    ИЛИ СУММА(ВЫБОР КОГДА ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход > 0 ТОГДА
        |                    (ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход) * ОстаткиТоваров.ЦенаВРознице
        |                    ИНАЧЕ 0.00 КОНЕЦ) <> 0.00
        |;
        |ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ОстаткиТоваров.Регистратор КАК Док,
        |    ОстаткиТоваров.Период КАК ДатаДок,
        |    ОстаткиТоваров.Регистратор.Номер КАК НомерДок,
        |    СУММА(ОстаткиТоваров.КоличествоНачальныйОстаток * ОстаткиТоваров.ЦенаВРознице) КАК НачОст,
        |    СУММА(ОстаткиТоваров.КоличествоКонечныйОстаток * ОстаткиТоваров.ЦенаВРознице) КАК КонОст,
        |    СУММА(
        |        ВЫБОР КОГДА ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход > 0 ТОГДА
        |            (ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход) * ОстаткиТоваров.ЦенаВРознице
        |        ИНАЧЕ
        |            0
        |        КОНЕЦ
        |    ) КАК Приход,
        |    СУММА(
        |        ВЫБОР КОГДА ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход > 0 ТОГДА
        |            (ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход) * ОстаткиТоваров.ЦенаВРознице
        |        ИНАЧЕ
        |            0
        |        КОНЕЦ
        |    ) КАК Расход
        |ИЗ
        |    РегистрНакопления.ТоварыВНТТ.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , Склад = &Склад) КАК ОстаткиТоваров
        |СГРУППИРОВАТЬ ПО
        |    ОстаткиТоваров.Регистратор,
        |    ОстаткиТоваров.Период,
        |    ОстаткиТоваров.Регистратор.Номер
        |УПОРЯДОЧИТЬ ПО
        |    ДатаДок
        |";

Как мне указать условие в запросе, чтоб исключить движения документа "ОтчетОРозничныхЗатратах"?
Получается в параметрах ВТ я это сделать не могу. Тогда как?
1 Капитан О
 
31.07.13
10:15
регистратор ссылка подойдёт?
2 Альбатрос
 
31.07.13
10:24
(1) В условие ВТ?
3 Альбатрос
 
31.07.13
10:26
Или получается в обычное условие "ГДЕ"? Периодичность надо указывать в этом случае
4 Альбатрос
 
31.07.13
10:33
Поговорите со мной =)
5 Альбатрос
 
31.07.13
12:02
вообщем, не получилось так. Мой запрос:
    ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                       |    NULL КАК Док,
                       |    NULL КАК ДатаДок,
                       |    NULL КАК НомерДок,
                       |    СУММА(ОстаткиТоваров.КоличествоНачальныйОстаток * ОстаткиТоваров.ЦенаВРознице) КАК НачОст,
                       |    СУММА(ОстаткиТоваров.КоличествоКонечныйОстаток * ОстаткиТоваров.ЦенаВРознице) КАК КонОст,
                       |    СУММА(ВЫБОР
                       |            КОГДА ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход > 0
                       |                ТОГДА (ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход) * ОстаткиТоваров.ЦенаВРознице
                       |            ИНАЧЕ 0
                       |        КОНЕЦ) КАК Приход,
                       |    СУММА(ВЫБОР
                       |            КОГДА ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход > 0
                       |                ТОГДА (ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход) * ОстаткиТоваров.ЦенаВРознице
                       |            ИНАЧЕ 0
                       |        КОНЕЦ) КАК Расход
                       |ИЗ
                       |    РегистрНакопления.ТоварыВНТТ.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , Склад = &Склад) КАК ОстаткиТоваров
                       |ГДЕ
                       |    НЕ ОстаткиТоваров.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
                       |
                       |ИМЕЮЩИЕ
                       |    (СУММА(ОстаткиТоваров.КоличествоНачальныйОстаток * ОстаткиТоваров.ЦенаВРознице) <> 0
                       |        ИЛИ СУММА(ОстаткиТоваров.КоличествоКонечныйОстаток * ОстаткиТоваров.ЦенаВРознице) <> 0
                       |        ИЛИ СУММА(ВЫБОР
                       |                КОГДА ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход > 0
                       |                    ТОГДА (ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход) * ОстаткиТоваров.ЦенаВРознице
                       |                ИНАЧЕ 0
                       |            КОНЕЦ) <> 0
                       |        ИЛИ СУММА(ВЫБОР
                       |                КОГДА ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход > 0
                       |                    ТОГДА (ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход) * ОстаткиТоваров.ЦенаВРознице
                       |                ИНАЧЕ 0
                       |            КОНЕЦ) <> 0)
                       |;
                       |
                       |////////////////////////////////////////////////////////////////////////////////
                       |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                       |    ОстаткиТоваров.Регистратор КАК Док,
                       |    ОстаткиТоваров.Период КАК ДатаДок,
                       |    ОстаткиТоваров.Регистратор.Номер КАК НомерДок,
                       |    СУММА(ОстаткиТоваров.КоличествоНачальныйОстаток * ОстаткиТоваров.ЦенаВРознице) КАК НачОст,
                       |    СУММА(ОстаткиТоваров.КоличествоКонечныйОстаток * ОстаткиТоваров.ЦенаВРознице) КАК КонОст,
                       |    СУММА(ВЫБОР
                       |            КОГДА ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход > 0
                       |                ТОГДА (ОстаткиТоваров.КоличествоПриход - ОстаткиТоваров.КоличествоРасход) * ОстаткиТоваров.ЦенаВРознице
                       |            ИНАЧЕ 0
                       |        КОНЕЦ) КАК Приход,
                       |    СУММА(ВЫБОР
                       |            КОГДА ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход > 0
                       |                ТОГДА (ОстаткиТоваров.КоличествоРасход - ОстаткиТоваров.КоличествоПриход) * ОстаткиТоваров.ЦенаВРознице
                       |            ИНАЧЕ 0
                       |        КОНЕЦ) КАК Расход
                       |ИЗ
                       |    РегистрНакопления.ТоварыВНТТ.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , Склад = &Склад) КАК ОстаткиТоваров
                       |ГДЕ
                       |    НЕ ОстаткиТоваров.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
                       |
                       |СГРУППИРОВАТЬ ПО
                       |    ОстаткиТоваров.Регистратор,
                       |    ОстаткиТоваров.Период,
                       |    ОстаткиТоваров.Регистратор.Номер
                       |
                       |УПОРЯДОЧИТЬ ПО
                       |    ДатаДок";
Если формировать отчет периодом до начала движений, то в нач. остатки попадает сумма документу внутри периода. Подозреваю, что это из-за того, что мне пришлось указать периодичностью регистратор. Как обойти эту проблему?
6 Альбатрос
 
31.07.13
12:09
ну ап, харе топить
7 Масянька
 
31.07.13
12:11
Не помню, как в снеговике, а в клюшках - не "ССЫЛКА", а типа "ВидДокумента <> ОтчетОРоничныхПродажах".
8 Альбатрос
 
31.07.13
12:13
(7) Не не, Ссылка отрабатывает норм. Вся фишка в том, чтто чтобы отобрать по регистратору, мне приходиться указывать периодичность - регистратор в параметрах ВТ, иначе поле регистратор недоступно
9 Альбатрос
 
31.07.13
12:24
Ладно, сам разобрался
10 Масянька
 
31.07.13
12:30
(9) Ну и?
11 Альбатрос
 
31.07.13
12:36
(10) Тупость моя виновата. Там же два пакета. Достаточно было не указывать регистратор в параметрах первого пакета, он как раз и формировал остатки. А так все отлично работает.
Спасибо за внимание =)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший