Версия для печати темы (https://pro1c.org.ua/index.php?s=e173e2e9edb0cc4e2afbd25ec194f93b&showtopic=45336)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Универсальный отчет, двоит данные.

Автор: Pashaboston 19.04.18, 12:31

Добрый день. Конфигурация Управление торговым предприятиям для Украины редакция (1.2.45.2), платформа 8.3.9.1818. Задача следующая: создать отчет который показывает сумму начального остатка, сумму прихода, сумму расхода, сумму конечного остатка за период на определенном складе в розничных ценах. Отчет делаю через Универсальный отчет,но при выводе двоит данные, вот запрос:

Код

"ВЫБРАТЬ
    |    СУММА(ВложенныйЗапрос.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
    |    СУММА(ВложенныйЗапрос.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
    |    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    |    СУММА(ВложенныйЗапрос.КоличествоПриход) КАК КоличествоПриход,
    |    СУММА(ВложенныйЗапрос.СуммаПриход) КАК СуммаПриход,
    |    СУММА(ВложенныйЗапрос.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
    |    СУММА(ВложенныйЗапрос.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток,
    |    СУММА(ВложенныйЗапрос.КоличествоРасход) КАК КоличествоРасход,
    |    СУММА(ВложенныйЗапрос.СуммаРасход) КАК СуммаРасход
    |{ВЫБРАТЬ
    |    КоличествоНачальныйОстаток,
    |    СуммаНачальныйОстаток,
    |    Номенклатура.*,
    |    КоличествоПриход,
    |    СуммаПриход,
    |    КоличествоКонечныйОстаток,
    |    СуммаКонечныйОстаток,
    |    КоличествоРасход,
    |    СуммаРасход}
    |ИЗ
    |    (ВЫБРАТЬ
    |        СУММА(ВложенныйЗапрос.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
    |        СУММА(ВложенныйЗапрос.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
    |        ЕСТЬNULL(ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос1.Номенклатура) КАК Номенклатура,
    |        СУММА(ВложенныйЗапрос.КоличествоПриход) КАК КоличествоПриход,
    |        СУММА(ВложенныйЗапрос.СуммаПриход) КАК СуммаПриход,
    |        СУММА(ВложенныйЗапрос1.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
    |        СУММА(ВложенныйЗапрос1.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток,
    |        СУММА(ВложенныйЗапрос1.КоличествоРасход) КАК КоличествоРасход,
    |        СУММА(ВложенныйЗапрос1.СуммаРасход) КАК СуммаРасход
    |    {ВЫБРАТЬ
    |        КоличествоНачальныйОстаток,
    |        СуммаНачальныйОстаток,
    |        Номенклатура.*,
    |        КоличествоПриход,
    |        СуммаПриход,
    |        КоличествоКонечныйОстаток,
    |        СуммаКонечныйОстаток,
    |        КоличествоРасход,
    |        СуммаРасход}
    |    ИЗ
    |        (ВЫБРАТЬ
    |            СУММА(НачальныйОстаток.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
    |            СУММА(НачальныйОстаток.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
    |            НачальныйОстаток.Номенклатура КАК Номенклатура,
    |            NULL КАК КоличествоПриход,
    |            NULL КАК СуммаПриход
    |        {ВЫБРАТЬ
    |            Номенклатура.*,
    |            КоличествоНачальныйОстаток,
    |            СуммаНачальныйОстаток,
    |            КоличествоПриход,
    |            СуммаПриход}
    |        ИЗ
    |            (ВЫБРАТЬ
    |                СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Объем) КАК КоличествоНачальныйОстаток,
    |                СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ЦеныНоменклатурыСрезПоследних.Цена) КАК СуммаНачальныйОстаток,
    |                ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура
    |            {ВЫБРАТЬ
    |                Номенклатура.*}
    |            ИЗ
    |                РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаКонца, Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
    |                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаНачала, ) КАК ЦеныНоменклатурыСрезПоследних
    |                    ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |            ГДЕ
    |                ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
    |                И ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &Склад
    |            
    |            СГРУППИРОВАТЬ ПО
    |                ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура) КАК НачальныйОстаток
    |        
    |        СГРУППИРОВАТЬ ПО
    |            НачальныйОстаток.Номенклатура
    |        
    |        ОБЪЕДИНИТЬ ВСЕ
    |        
    |        ВЫБРАТЬ
    |            NULL,
    |            NULL,
    |            Приход.Номенклатура,
    |            СУММА(Приход.КоличествоПриход),
    |            СУММА(Приход.СуммаПриход)
    |        {ВЫБРАТЬ
    |            Номенклатура.*}
    |        ИЗ
    |            (ВЫБРАТЬ
    |                ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    |                СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход * ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Объем) КАК КоличествоПриход,
    |                СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход * ЦеныНоменклатурыСрезПоследних.Цена) КАК СуммаПриход
    |            {ВЫБРАТЬ
    |                Номенклатура.*}
    |            ИЗ
    |                РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаКонца, Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
    |                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКонца, ) КАК ЦеныНоменклатурыСрезПоследних
    |                    ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |            ГДЕ
    |                ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &Склад
    |                И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
    |            
    |            СГРУППИРОВАТЬ ПО
    |                ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура) КАК Приход
    |        
    |        СГРУППИРОВАТЬ ПО
    |            Приход.Номенклатура) КАК ВложенныйЗапрос
    |            ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |                ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    |                СУММА(ВложенныйЗапрос.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
    |                СУММА(ВложенныйЗапрос.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток,
    |                СУММА(ВложенныйЗапрос.КоличествоРасход) КАК КоличествоРасход,
    |                СУММА(ВложенныйЗапрос.СуммаРасход) КАК СуммаРасход
    |            {ВЫБРАТЬ
    |                Номенклатура.*,
    |                КоличествоКонечныйОстаток,
    |                СуммаКонечныйОстаток,
    |                КоличествоРасход,
    |                СуммаРасход}
    |            ИЗ
    |                (ВЫБРАТЬ
    |                    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    |                    ВложенныйЗапрос.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    |                    ВложенныйЗапрос.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток,
    |                    NULL КАК КоличествоРасход,
    |                    NULL КАК СуммаРасход
    |                {ВЫБРАТЬ
    |                    Номенклатура.*,
    |                    КоличествоКонечныйОстаток,
    |                    СуммаКонечныйОстаток,
    |                    КоличествоРасход,
    |                    СуммаРасход}
    |                ИЗ
    |                    (ВЫБРАТЬ
    |                        ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    |                        СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.ЕдиницаХраненияОстатков.Объем) КАК КоличествоКонечныйОстаток,
    |                        СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ЦеныНоменклатурыСрезПоследних.Цена) КАК СуммаКонечныйОстаток
    |                    {ВЫБРАТЬ
    |                        Номенклатура.*}
    |                    ИЗ
    |                        РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаКонца, Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
    |                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКонца, ) КАК ЦеныНоменклатурыСрезПоследних
    |                            ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    |                    ГДЕ
    |                        ПартииТоваровНаСкладахОстаткиИОбороты.Склад = &Склад
    |                        И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
    |                    
    |                    СГРУППИРОВАТЬ ПО
    |                        ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура) КАК ВложенныйЗапрос
    |                {ГДЕ
    |                    ВложенныйЗапрос.Номенклатура.*}
    |                
    |                ОБЪЕДИНИТЬ ВСЕ
    |                
    |                ВЫБРАТЬ
    |                    ВложенныйЗапрос.Номенклатура,
    |                    NULL,
    |                    NULL,
    |                    СУММА(ВложенныйЗапрос.КоличествоРасход),
    |                    СУММА(ВложенныйЗапрос.СуммаРасход)
    |                {ВЫБРАТЬ
    |                    Номенклатура.*}
    |                ИЗ
    |                    (ВЫБРАТЬ
    |                        ПродажиОбороты.Номенклатура КАК Номенклатура,
    |                        СУММА(ПродажиОбороты.КоличествоОборот * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Объем) КАК КоличествоРасход,
    |                        СУММА(ПродажиОбороты.СтоимостьОборот + ПродажиОбороты.НДСОборот) КАК СуммаРасход
    |                    {ВЫБРАТЬ
    |                        Номенклатура.*}
    |                    ИЗ
    |                        РегистрНакопления.Продажи.Обороты(&ДатаНачала, &ДатаКонца, Регистратор, ) КАК ПродажиОбороты
    |                    ГДЕ
    |                        ПродажиОбороты.ДокументПродажи.Склад = &Склад
    |                        И ПродажиОбороты.Номенклатура.ПодакцизныйТовар = ИСТИНА
    |                    
    |                    СГРУППИРОВАТЬ ПО
    |                        ПродажиОбороты.Номенклатура) КАК ВложенныйЗапрос
    |                
    |                СГРУППИРОВАТЬ ПО
    |                    ВложенныйЗапрос.Номенклатура) КАК ВложенныйЗапрос
    |            {ГДЕ
    |                ВложенныйЗапрос.Номенклатура.*,
    |                ВложенныйЗапрос.КоличествоКонечныйОстаток,
    |                ВложенныйЗапрос.СуммаКонечныйОстаток,
    |                ВложенныйЗапрос.КоличествоРасход,
    |                ВложенныйЗапрос.СуммаРасход}
    |            
    |            СГРУППИРОВАТЬ ПО
    |                ВложенныйЗапрос.Номенклатура) КАК ВложенныйЗапрос1
    |            ПО ВложенныйЗапрос.Номенклатура = ВложенныйЗапрос1.Номенклатура
    |    {ГДЕ
    |        ВложенныйЗапрос.КоличествоНачальныйОстаток,
    |        ВложенныйЗапрос.СуммаНачальныйОстаток,
    |        (ЕСТЬNULL(ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос1.Номенклатура)).* КАК Номенклатура,
    |        ВложенныйЗапрос.КоличествоПриход,
    |        ВложенныйЗапрос.СуммаПриход,
    |        ВложенныйЗапрос1.КоличествоКонечныйОстаток,
    |        ВложенныйЗапрос1.СуммаКонечныйОстаток,
    |        ВложенныйЗапрос1.КоличествоРасход,
    |        ВложенныйЗапрос1.СуммаРасход}
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ЕСТЬNULL(ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос1.Номенклатура)) КАК ВложенныйЗапрос
    |{ГДЕ
    |    ВложенныйЗапрос.КоличествоНачальныйОстаток,
    |    ВложенныйЗапрос.СуммаНачальныйОстаток,
    |    ВложенныйЗапрос.Номенклатура.*,
    |    ВложенныйЗапрос.КоличествоПриход,
    |    ВложенныйЗапрос.СуммаПриход,
    |    ВложенныйЗапрос.КоличествоКонечныйОстаток,
    |    ВложенныйЗапрос.СуммаКонечныйОстаток,
    |    ВложенныйЗапрос.КоличествоРасход,
    |    ВложенныйЗапрос.СуммаРасход}
    |
    |СГРУППИРОВАТЬ ПО
    |    ВложенныйЗапрос.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    |    Номенклатура
    |{УПОРЯДОЧИТЬ ПО
    |    Номенклатура.*}
    |ИТОГИ ПО
    |    ОБЩИЕ
    |{ИТОГИ ПО
    |    КоличествоНачальныйОстаток,
    |    СуммаНачальныйОстаток,
    |    Номенклатура.*,
    |    КоличествоПриход,
    |    СуммаПриход,
    |    КоличествоКонечныйОстаток,
    |    СуммаКонечныйОстаток,
    |    КоличествоРасход,
    |    СуммаРасход}"

Автор: Bernet 19.04.18, 13:07

Pashaboston @ Сегодня, 13:31 * ,
Учет по характеристикам ведется? Если да, то добавьте у условия соединения таблиц условия по характеристике номенклатуры, т.к. в регистре "цены номенклатуры" - характеристика - это измерение, соответственно если у товара несколько характеристик, то и цены две может быть, поэтому и может двоить

Автор: Pashaboston 19.04.18, 13:10

http://pro1c.org.ua/redirect.php?http://mega.dp.ua/file?source=18041914071236761853 вот ссилка на внешний отчет

Bernet @ Сегодня, 14:07 * ,
Учет по характеристикам не ведется!

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua