Имя: Пароль:
1C
 
Запрос. Кто-то прикололся или чего-то не замечаю?
0 Галахад
 
гуру
12.09.14
08:03
Текст запроса:
1 Галахад
 
гуру
12.09.14
08:04
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(ВЫБОР
            КОГДА ДокументЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
                ТОГДА 1
            ИНАЧЕ -1
        КОНЕЦ) КАК КоличествоСерийныхНоменров,
    ДокументЧекККМ.Склад КАК Склад,
    ЧекККМТовары.Номенклатура КАК Номенклатура,
    ЧекККМСерийныеНомера.СерийныйНомер КАК СерийныйНомер,
    ЧекККМТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ЧекККМТовары.СерияНоменклатуры КАК СерияНоменклатуры,
    ЧекККМТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ЧекККМТовары.Коэффициент КАК Коэффициент,
    ЧекККМТовары.Цена КАК Цена,
    ЧекККМТовары.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
    ЧекККМТовары.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
    ЧекККМТовары.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
    ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
    ЧекККМТовары.Качество КАК Качество,
    ВЫБОР
        КОГДА НЕ ЧекККМТовары.ОтветственныйПродавец = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
            ТОГДА ЧекККМТовары.ОтветственныйПродавец
        ИНАЧЕ ДокументЧекККМ.Ответственный
    КОНЕЦ КАК Ответственный,
    ВЫБОР
        КОГДА ДокументЧекККМ.СуммаДокумента <> 0
            ТОГДА 0 / ДокументЧекККМ.СуммаДокумента
        ИНАЧЕ 0
    КОНЕЦ КАК ДоляСниженияПродажиПоПродавцам,
    (ДокументЧекККМ.СуммаДокумента - ДокументЧекККМ.СуммаБонуса) / ДокументЧекККМ.СуммаДокумента КАК КоэффициентСниженияПоПродавцу
ИЗ
    Документ.ЧекККМ КАК ДокументЧекККМ
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.Товары КАК ЧекККМТовары
        ПО (ЧекККМТовары.Ссылка = ДокументЧекККМ.Ссылка)
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
        ПО (СправочникНоменклатура.Ссылка = ЧекККМТовары.Номенклатура)
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЧекККМ.СерийныеНомера КАК ЧекККМСерийныеНомера
        ПО (ЧекККМСерийныеНомера.Ссылка = ДокументЧекККМ.Ссылка)
            И (ЧекККМСерийныеНомера.КлючСвязи = ЧекККМТовары.КлючСвязи)
ГДЕ
    ДокументЧекККМ.Дата МЕЖДУ &НачДата И &КонДата
    И ДокументЧекККМ.Проведен
    И ДокументЧекККМ.КассаККМ = &КассаККМ
    И НЕ СправочникНоменклатура.Комплект
    И ДокументЧекККМ.ЧекПробитНаККМ
    И ДокументЧекККМ.НомерЧекаККМ <> 0

СГРУППИРОВАТЬ ПО
    ДокументЧекККМ.Склад,
    ЧекККМТовары.Номенклатура,
    ЧекККМСерийныеНомера.СерийныйНомер,
    ЧекККМТовары.ХарактеристикаНоменклатуры,
    ЧекККМТовары.СерияНоменклатуры,
    ЧекККМТовары.ЕдиницаИзмерения,
    ЧекККМТовары.Коэффициент,
    ЧекККМТовары.Цена,
    ЧекККМТовары.ПроцентСкидкиНаценки,
    ЧекККМТовары.ПроцентАвтоматическихСкидок,
    ЧекККМТовары.УсловиеАвтоматическойСкидки,
    ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки,
    ЧекККМТовары.Качество,
    ВЫБОР
        КОГДА ДокументЧекККМ.СуммаДокумента <> 0
            ТОГДА 0 / ДокументЧекККМ.СуммаДокумента
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА НЕ ЧекККМТовары.ОтветственныйПродавец = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
            ТОГДА ЧекККМТовары.ОтветственныйПродавец
        ИНАЧЕ ДокументЧекККМ.Ответственный
    КОНЕЦ,
    (ДокументЧекККМ.СуммаДокумента - ДокументЧекККМ.СуммаБонуса) / ДокументЧекККМ.СуммаДокумента

ИМЕЮЩИЕ
    СУММА(ВЫБОР
            КОГДА ДокументЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Продажа)
                ТОГДА 1
            ИНАЧЕ -1
        КОНЕЦ) > 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Товары.Документ,
    Товары.Комплект,
    Товары.Склад,
    Товары.Номенклатура,
    Товары.ХарактеристикаНоменклатуры,
    Товары.СерияНоменклатуры,
    Товары.ЕдиницаИзмерения,
    Товары.Коэффициент,
    Товары.Цена,
    Товары.ПроцентАвтоматическихСкидок,
    Товары.УсловиеАвтоматическойСкидки,
    Товары.ЗначениеУсловияАвтоматическойСкидки,
    Товары.Качество,
    Товары.Ответственный,
    Товары.ДоляСниженияПродажиПоПродавцам,
    Товары.КлючСтроки,
    Товары.Количество,
    Товары.КоличествоСДругихСкладов,
    Товары.Сумма,
    Товары.ПроцентСкидкиНаценки,
    ОтчетОРозничныхПродажахТовары.Ссылка КАК ДокументПартии,
    Товары.СуммаДляПродавца
ИЗ
    (ВЫБРАТЬ
        ЗНАЧЕНИЕ(Документ.ЧекККМ.ПустаяСсылка) КАК Документ,
        ЧекККМТовары.Номенклатура.Комплект КАК Комплект,
        ЧекККМТовары.Ссылка.Склад КАК Склад,
        ЧекККМТовары.Номенклатура КАК Номенклатура,
        ЧекККМТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        ЧекККМТовары.СерияНоменклатуры КАК СерияНоменклатуры,
        ЧекККМТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
        ЧекККМТовары.Коэффициент КАК Коэффициент,
        ЧекККМТовары.Цена КАК Цена,
        ЧекККМТовары.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
        ЧекККМТовары.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
        ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
        ЧекККМТовары.Качество КАК Качество,
        ВЫБОР
            КОГДА НЕ ЧекККМТовары.ОтветственныйПродавец = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
                ТОГДА ЧекККМТовары.ОтветственныйПродавец
            ИНАЧЕ ЧекККМТовары.Ссылка.Ответственный
        КОНЕЦ КАК Ответственный,
        ВЫБОР
            КОГДА ЧекККМТовары.Ссылка.СуммаДокумента <> 0
                ТОГДА 0 / ЧекККМТовары.Ссылка.СуммаДокумента
            ИНАЧЕ 0
        КОНЕЦ КАК ДоляСниженияПродажиПоПродавцам,
        0 КАК КлючСтроки,
        СУММА(ВЫБОР
                КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                    ТОГДА ЧекККМТовары.Количество
                ИНАЧЕ -ЧекККМТовары.Количество
            КОНЕЦ) КАК Количество,
        СУММА(ВЫБОР
                КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                    ТОГДА ЧекККМТовары.КоличествоСДругихСкладов
                ИНАЧЕ -ЧекККМТовары.КоличествоСДругихСкладов
            КОНЕЦ) КАК КоличествоСДругихСкладов,
        СУММА(ВЫБОР
                КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                    ТОГДА ЧекККМТовары.Сумма
                ИНАЧЕ -ЧекККМТовары.Сумма
            КОНЕЦ) КАК Сумма,
        ЧекККМТовары.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
        ЧекККМТовары.Ссылка.ВидОперации КАК ВидОперации,
        СУММА(ВЫБОР
                КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                    ТОГДА ЧекККМТовары.Сумма
                ИНАЧЕ -ЧекККМТовары.Сумма
            КОНЕЦ * (ЧекККМТовары.Ссылка.СуммаДокумента - ЧекККМТовары.Ссылка.вгмБонусовНачислено + ЧекККМТовары.Ссылка.вгмБонусовСписано) / ЧекККМТовары.Ссылка.СуммаДокумента) КАК СуммаДляПродавца
    ИЗ
        Документ.ЧекККМ.Товары КАК ЧекККМТовары
    ГДЕ
        ЧекККМТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
        И ЧекККМТовары.Ссылка.Проведен
        И НЕ ЧекККМТовары.Номенклатура.Комплект
        И ЧекККМТовары.Ссылка.КассаККМ = &КассаККМ
        И ЧекККМТовары.Ссылка.ЧекПробитНаККМ
        И ЧекККМТовары.Ссылка.НомерЧекаККМ <> 0
    
    СГРУППИРОВАТЬ ПО
        ЧекККМТовары.Ссылка.Склад,
        ЧекККМТовары.Номенклатура,
        ЧекККМТовары.ХарактеристикаНоменклатуры,
        ЧекККМТовары.СерияНоменклатуры,
        ЧекККМТовары.ЕдиницаИзмерения,
        ЧекККМТовары.УсловиеАвтоматическойСкидки,
        ЧекККМТовары.Качество,
        ВЫБОР
            КОГДА ЧекККМТовары.Ссылка.СуммаДокумента <> 0
                ТОГДА 0 / ЧекККМТовары.Ссылка.СуммаДокумента
            ИНАЧЕ 0
        КОНЕЦ,
        ЧекККМТовары.Номенклатура.Комплект,
        ЧекККМТовары.Коэффициент,
        ЧекККМТовары.Цена,
        ЧекККМТовары.ПроцентАвтоматическихСкидок,
        ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки,
        ЧекККМТовары.ПроцентСкидкиНаценки,
        ВЫБОР
            КОГДА НЕ ЧекККМТовары.ОтветственныйПродавец = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
                ТОГДА ЧекККМТовары.ОтветственныйПродавец
            ИНАЧЕ ЧекККМТовары.Ссылка.Ответственный
        КОНЕЦ,
        ЧекККМТовары.Ссылка.ВидОперации
    
    ИМЕЮЩИЕ
        СУММА(ВЫБОР
                КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                    ТОГДА ЧекККМТовары.Количество
                ИНАЧЕ -ЧекККМТовары.Количество
            КОНЕЦ) <> 0) КАК Товары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары
        ПО Товары.Документ.ЧекККМПродажа.КассаККМ = ОтчетОРозничныхПродажахТовары.Ссылка.КассаККМ
            И Товары.Номенклатура = ОтчетОРозничныхПродажахТовары.Номенклатура
            И (НАЧАЛОПЕРИОДА(Товары.Документ.ЧекККМПродажа.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(ОтчетОРозничныхПродажахТовары.Ссылка.Дата, ДЕНЬ))

УПОРЯДОЧИТЬ ПО
    Товары.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КомплектующиеНоменклатуры.Номенклатура,
    СУММА(КомплектующиеНоменклатуры.ДоляСтоимости) КАК ДоляСтоимости
ПОМЕСТИТЬ ВТ_СтоимостиКомплектов
ИЗ
    РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры

СГРУППИРОВАТЬ ПО
    КомплектующиеНоменклатуры.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЗНАЧЕНИЕ(Документ.ЧекККМ.ПустаяСсылка) КАК Документ,
    ЧекККМТовары.Номенклатура.Комплект КАК Комплект,
    ЧекККМТовары.Ссылка.Склад КАК Склад,
    КомплектующиеНоменклатуры.Комплектующая КАК Номенклатура,
    КомплектующиеНоменклатуры.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ЧекККМТовары.СерияНоменклатуры КАК СерияНоменклатуры,
    КомплектующиеНоменклатуры.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    КомплектующиеНоменклатуры.ЕдиницаИзмерения.Коэффициент КАК Коэффициент,
    ЧекККМТовары.Цена * КомплектующиеНоменклатуры.ДоляСтоимости / (ВТ_СтоимостиКомплектов.ДоляСтоимости * КомплектующиеНоменклатуры.Количество) КАК Цена,
    ЧекККМТовары.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
    ЧекККМТовары.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
    ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
    ЧекККМТовары.Качество КАК Качество,
    ВЫБОР
        КОГДА НЕ ЧекККМТовары.ОтветственныйПродавец = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
            ТОГДА ЧекККМТовары.ОтветственныйПродавец
        ИНАЧЕ ЧекККМТовары.Ссылка.Ответственный
    КОНЕЦ КАК Ответственный,
    ВЫБОР
        КОГДА ЧекККМТовары.Ссылка.СуммаДокумента <> 0
            ТОГДА 0 / ЧекККМТовары.Ссылка.СуммаДокумента
        ИНАЧЕ 0
    КОНЕЦ КАК ДоляСниженияПродажиПоПродавцам,
    0 КАК КлючСтроки,
    СУММА(ВЫБОР
            КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                ТОГДА ЧекККМТовары.Количество
            ИНАЧЕ -ЧекККМТовары.Количество
        КОНЕЦ * КомплектующиеНоменклатуры.Количество) КАК Количество,
    СУММА(ВЫБОР
            КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                ТОГДА ЧекККМТовары.КоличествоСДругихСкладов
            ИНАЧЕ -ЧекККМТовары.КоличествоСДругихСкладов
        КОНЕЦ * КомплектующиеНоменклатуры.Количество) КАК КоличествоСДругихСкладов,
    СУММА(ВЫБОР
            КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                ТОГДА ЧекККМТовары.Сумма
            ИНАЧЕ -ЧекККМТовары.Сумма
        КОНЕЦ * КомплектующиеНоменклатуры.ДоляСтоимости / ВТ_СтоимостиКомплектов.ДоляСтоимости) КАК Сумма,
    ЧекККМТовары.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
    ЧекККМТовары.Ссылка.ВидОперации КАК ВидОперации,
    СУММА(ВЫБОР
            КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                ТОГДА ЧекККМТовары.Сумма
            ИНАЧЕ -ЧекККМТовары.Сумма
        КОНЕЦ * (ЧекККМТовары.Ссылка.СуммаДокумента - ЧекККМТовары.Ссылка.СуммаБонуса) / ЧекККМТовары.Ссылка.СуммаДокумента) КАК СуммаДляПродавца
ИЗ
    Документ.ЧекККМ.Товары КАК ЧекККМТовары
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КомплектующиеНоменклатуры КАК КомплектующиеНоменклатуры
        ПО ЧекККМТовары.Номенклатура = КомплектующиеНоменклатуры.Номенклатура
            И ЧекККМТовары.ХарактеристикаНоменклатуры = КомплектующиеНоменклатуры.ХарактеристикаНоменклатуры
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_СтоимостиКомплектов КАК ВТ_СтоимостиКомплектов
        ПО ЧекККМТовары.Номенклатура = ВТ_СтоимостиКомплектов.Номенклатура
ГДЕ
    ЧекККМТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата
    И ЧекККМТовары.Ссылка.Проведен
    И ЧекККМТовары.Номенклатура.Комплект
    И ЧекККМТовары.Ссылка.КассаККМ = &КассаККМ
    И ЧекККМТовары.Ссылка.ЧекПробитНаККМ
    И ЧекККМТовары.Ссылка.НомерЧекаККМ <> 0

СГРУППИРОВАТЬ ПО
    ЧекККМТовары.Ссылка.Склад,
    ЧекККМТовары.СерияНоменклатуры,
    ЧекККМТовары.УсловиеАвтоматическойСкидки,
    ЧекККМТовары.Качество,
    ВЫБОР
        КОГДА ЧекККМТовары.Ссылка.СуммаДокумента <> 0
            ТОГДА 0 / ЧекККМТовары.Ссылка.СуммаДокумента
        ИНАЧЕ 0
    КОНЕЦ,
    ЧекККМТовары.Номенклатура.Комплект,
    ЧекККМТовары.ПроцентАвтоматическихСкидок,
    ЧекККМТовары.ЗначениеУсловияАвтоматическойСкидки,
    ЧекККМТовары.ПроцентСкидкиНаценки,
    ВЫБОР
        КОГДА НЕ ЧекККМТовары.ОтветственныйПродавец = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
            ТОГДА ЧекККМТовары.ОтветственныйПродавец
        ИНАЧЕ ЧекККМТовары.Ссылка.Ответственный
    КОНЕЦ,
    ЧекККМТовары.Ссылка.ВидОперации,
    КомплектующиеНоменклатуры.Комплектующая,
    КомплектующиеНоменклатуры.ХарактеристикаНоменклатуры,
    КомплектующиеНоменклатуры.ЕдиницаИзмерения,
    КомплектующиеНоменклатуры.ЕдиницаИзмерения.Коэффициент,
    ЧекККМТовары.Цена * КомплектующиеНоменклатуры.ДоляСтоимости / (ВТ_СтоимостиКомплектов.ДоляСтоимости * КомплектующиеНоменклатуры.Количество)

ИМЕЮЩИЕ
    СУММА(ВЫБОР
            КОГДА ЧекККМТовары.Ссылка.ВидОперации = &ВидОперацииПродажа
                ТОГДА ЧекККМТовары.Количество
            ИНАЧЕ -ЧекККМТовары.Количество
        КОНЕЦ) <> 0

УПОРЯДОЧИТЬ ПО
    Склад
2 Галахад
 
гуру
12.09.14
08:05
Я немного не понял. Две выборки тут просто так, подгрузить сервер, что бы не ленился?
Или я чего-то пропустил?
3 Андрюха
 
12.09.14
08:11
Откуда сие творение
4 Лодырь
 
12.09.14
08:14
(2) Ты про две первых выборки?
5 Галахад
 
гуру
12.09.14
08:16
(3) Хочешь на стенку повесить?

(4) Да.
6 Лодырь
 
12.09.14
08:17
(5)В детали конкретно этого запроса не вдавался, но иногда нечто похожее делают на этапе отладки больших запросов. Правда обычно используют выборки из ВТ, чтоб посмотреть их содержимое. Не у всех есть продвинутые консоли запросов.
7 shuhard
 
12.09.14
08:17
(2) нет ни чего тупее, чем обсуждать вырванный из контекста типовой запрос
8 Лодырь
 
12.09.14
08:20
+(6)Скорее всего забыли "убрать за собой". А может кто-нибудь использует пакетный запрос, чтоб потом обработать несколько табличек "руками".
9 dmpl
 
12.09.14
08:25
(5) ВыполнитьПакет()?
10 Галахад
 
гуру
12.09.14
08:44
(7) Молоток. Типовые на зубок знаешь.

(9) Да. Как оказалось.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан