Имя: Пароль:
1C
1С v8
Ведомость по партиям в ценах номенклатуры
0 tylerkiss
 
24.04.15
14:27
Всем привет! Который день не могу добить отчет! Может, кто-то подскажет дельную мысль. Может я вообще неправильно все сделал.
Отчет для конфигурации Управление торговым предприятием для Казахстана 2.0.4.2.
Проблема в следующем: если в настройках отчета присутствует группировка "Документ движения (регистратор)" (одна или с другими группировками), данные выводятся верные (в разделе приход цены берутся на момент перемещения), если же этой группировки нет, цены берутся на текущую дату. Цены на начало и конец периода верные, там все просто, срез последних. А вот приход и расход.....

Запрос построителя такой:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИсточникДанных.Номенклатура КАК Номенклатура,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Номенклатура),
    ИсточникДанных.Склад КАК Склад,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Склад),
    ИсточникДанных.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.ХарактеристикаНоменклатуры),
    ИсточникДанных.СерияНоменклатуры КАК СерияНоменклатуры,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.СерияНоменклатуры),
    ИсточникДанных.ДокументОприходования КАК ДокументОприходования,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.ДокументОприходования),
    ИсточникДанных.СтатусПартии КАК СтатусПартии,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.СтатусПартии),
    ИсточникДанных.Заказ КАК Заказ,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Заказ),
    ИсточникДанных.Качество КАК Качество,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Качество),
    ИсточникДанных.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоНачальныйОстатокВЕдиницахДляОтчетов,
    ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоНачальныйОстатокВБазовыхЕдиницах,
    ИсточникДанных.КоличествоПриход КАК КоличествоПриход,
    ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоПриходВЕдиницахДляОтчетов,
    ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоПриходВБазовыхЕдиницах,
    ИсточникДанных.КоличествоРасход КАК КоличествоРасход,
    ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоРасходВЕдиницахДляОтчетов,
    ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоРасходВБазовыхЕдиницах,
    ИсточникДанных.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК КоличествоКонечныйОстатокВЕдиницахДляОтчетов,
    ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоКонечныйОстатокВБазовыхЕдиницах,
    ИсточникДанных.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток,
    ИсточникДанных.СтоимостьПриход КАК СтоимостьПриход,
    ИсточникДанных.СтоимостьРасход КАК СтоимостьРасход,
    ИсточникДанных.СтоимостьКонечныйОстаток КАК СтоимостьКонечныйОстаток,
    ВЫБОР
        КОГДА ИсточникДанных.Склад.ВидСклада = ЗНАЧЕНИЕ(Перечисление.ВидыСкладов.Оптовый)
            ТОГДА ИсточникДанных.КоличествоНачальныйОстаток * ЦеныНоменклатурыНач.Цена
        ИНАЧЕ ИсточникДанных.КоличествоНачальныйОстаток * ЦеныАТТНач.Цена
    КОНЕЦ КАК ЦенаНачальныйОстаток,
    ВЫБОР
        КОГДА ИсточникДанных.Склад.ВидСклада = ЗНАЧЕНИЕ(Перечисление.ВидыСкладов.Оптовый)
            ТОГДА ИсточникДанных.КоличествоПриход * ЦеныНоменклатуры.Цена
        ИНАЧЕ ИсточникДанных.КоличествоПриход * ЦеныАТТ.Цена
    КОНЕЦ КАК ЦенаПриход,
    ВЫБОР
        КОГДА ИсточникДанных.Склад.ВидСклада = ЗНАЧЕНИЕ(Перечисление.ВидыСкладов.Оптовый)
            ТОГДА ИсточникДанных.КоличествоРасход * ЦеныНоменклатуры.Цена
        ИНАЧЕ ИсточникДанных.КоличествоРасход * ЦеныАТТ.Цена
    КОНЕЦ КАК ЦенаРасход,
    ВЫБОР
        КОГДА ИсточникДанных.Склад.ВидСклада = ЗНАЧЕНИЕ(Перечисление.ВидыСкладов.Оптовый)
            ТОГДА ИсточникДанных.КоличествоКонечныйОстаток * ЦеныНоменклатурыКон.Цена
        ИНАЧЕ ИсточникДанных.КоличествоКонечныйОстаток * ЦеныАТТКон.Цена
    КОНЕЦ КАК ЦенаКонечныйОстаток,
    ИсточникДанных.Регистратор КАК Регистратор,
    ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Регистратор),
    ИсточникДанных.Период КАК Период,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕНЬ) КАК ПериодДень,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕКАДА) КАК ПериодДекада,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, МЕСЯЦ) КАК ПериодМесяц,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, КВАРТАЛ) КАК ПериодКвартал,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
    НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ГОД) КАК ПериодГод
{ВЫБРАТЬ
    Номенклатура.*,
    Склад.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    ДокументОприходования.*,
    СтатусПартии.*,
    Заказ.*,
    Качество.*,
    КоличествоНачальныйОстаток,
    КоличествоНачальныйОстатокВЕдиницахДляОтчетов,
    КоличествоНачальныйОстатокВБазовыхЕдиницах,
    КоличествоПриход,
    КоличествоПриходВЕдиницахДляОтчетов,
    КоличествоПриходВБазовыхЕдиницах,
    КоличествоРасход,
    КоличествоРасходВЕдиницахДляОтчетов,
    КоличествоРасходВБазовыхЕдиницах,
    КоличествоКонечныйОстаток,
    КоличествоКонечныйОстатокВЕдиницахДляОтчетов,
    КоличествоКонечныйОстатокВБазовыхЕдиницах,
    СтоимостьНачальныйОстаток,
    СтоимостьПриход,
    СтоимостьРасход,
    СтоимостьКонечныйОстаток,
    ЦенаНачальныйОстаток,
    ЦенаПриход,
    ЦенаРасход,
    ЦенаКонечныйОстаток,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод}
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(Номенклатура).* КАК Номенклатура, (Склад).* КАК Склад, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры, (ДокументОприходования).* КАК ДокументОприходования, (СтатусПартии).* КАК СтатусПартии, (Заказ).* КАК Заказ, (Качество).* КАК Качество}) КАК ИсточникДанных
        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаНач, {(ТипЦен).* КАК ТипЦен}) КАК ЦеныНоменклатурыНач
        ПО ИсточникДанных.Номенклатура = ЦеныНоменклатурыНач.Номенклатура
            И ИсточникДанных.ХарактеристикаНоменклатуры = ЦеныНоменклатурыНач.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныАТТ.СрезПоследних(&ДатаНач, {(Склад) КАК Склад}) КАК ЦеныАТТНач
        ПО ИсточникДанных.Номенклатура = ЦеныАТТНач.Номенклатура
            И ИсточникДанных.ХарактеристикаНоменклатуры = ЦеныАТТНач.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, {(ТипЦен).* КАК ТипЦен}) КАК ЦеныНоменклатурыКон
        ПО ИсточникДанных.Номенклатура = ЦеныНоменклатурыКон.Номенклатура
            И ИсточникДанных.ХарактеристикаНоменклатуры = ЦеныНоменклатурыКон.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныАТТ.СрезПоследних(&ДатаКон, {(Склад) КАК Склад}) КАК ЦеныАТТКон
        ПО ИсточникДанных.Номенклатура = ЦеныАТТКон.Номенклатура
            И ИсточникДанных.ХарактеристикаНоменклатуры = ЦеныАТТКон.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЦеныНоменклатуры.Цена КАК Цена,
            РегистраторыЦен.Номенклатура КАК Номенклатура,
            РегистраторыЦен.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
            РегистраторыЦен.ТипЦен КАК ТипЦен,
            РегистраторыЦен.Регистратор КАК Регистратор,
            РегистраторыЦен.ПериодЦены КАК ПериодЦены
        ИЗ
            (ВЫБРАТЬ
                ПериодыЦен.Номенклатура КАК Номенклатура,
                ПериодыЦен.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                ПериодыЦен.ТипЦен КАК ТипЦен,
                ПериодыЦен.Регистратор КАК Регистратор,
                ПериодыЦен.ПериодЦены КАК ПериодЦены,
                МАКСИМУМ(ЦеныНоменклатуры.Регистратор) КАК РегистраторЦены
            ИЗ
                (ВЫБРАТЬ
                    ТоварыНаСкладахОбороты.Номенклатура КАК Номенклатура,
                    ТоварыНаСкладахОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                    ТоварыНаСкладахОбороты.Регистратор КАК Регистратор,
                    ЦеныНоменклатуры.ТипЦен КАК ТипЦен,
                    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПериодЦены
                ИЗ
                    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(Номенклатура).* КАК Номенклатура, (Склад).* КАК Склад, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры, (ДокументОприходования).* КАК ДокументОприходования, (СтатусПартии).* КАК СтатусПартии, (Заказ).* КАК Заказ, (Качество).* КАК Качество}) КАК ТоварыНаСкладахОбороты
                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
                        ПО ТоварыНаСкладахОбороты.Номенклатура = ЦеныНоменклатуры.Номенклатура
                            И ТоварыНаСкладахОбороты.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры
                            И ТоварыНаСкладахОбороты.Период >= ЦеныНоменклатуры.Период
                {ГДЕ
                    ЦеныНоменклатуры.ТипЦен.* КАК ТипЦен}
                
                СГРУППИРОВАТЬ ПО
                    ТоварыНаСкладахОбороты.Номенклатура,
                    ТоварыНаСкладахОбороты.ХарактеристикаНоменклатуры,
                    ТоварыНаСкладахОбороты.Регистратор,
                    ЦеныНоменклатуры.ТипЦен) КАК ПериодыЦен
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
                    ПО ПериодыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
                        И ПериодыЦен.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры
                        И (ЦеныНоменклатуры.ТипЦен = ПериодыЦен.ТипЦен)
                        И (ЦеныНоменклатуры.Период = ПериодыЦен.ПериодЦены)
            
            СГРУППИРОВАТЬ ПО
                ПериодыЦен.Номенклатура,
                ПериодыЦен.ХарактеристикаНоменклатуры,
                ПериодыЦен.ТипЦен,
                ПериодыЦен.Регистратор,
                ПериодыЦен.ПериодЦены) КАК РегистраторыЦен
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
                ПО РегистраторыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
                    И РегистраторыЦен.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры
                    И (ЦеныНоменклатуры.ТипЦен = РегистраторыЦен.ТипЦен)
                    И (ЦеныНоменклатуры.Период = РегистраторыЦен.ПериодЦены)
                    И (ЦеныНоменклатуры.Регистратор = РегистраторыЦен.РегистраторЦены)) КАК ЦеныНоменклатуры
        ПО ИсточникДанных.Номенклатура = ЦеныНоменклатуры.Номенклатура
            И ИсточникДанных.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры
            И ИсточникДанных.Регистратор = ЦеныНоменклатуры.Регистратор
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РегистраторыЦен.Номенклатура КАК Номенклатура,
            РегистраторыЦен.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
            РегистраторыЦен.Склад КАК Склад,
            РегистраторыЦен.ДокументДвижения КАК ДокументДвижения,
            РегистраторыЦен.ПериодЦены КАК ПериодЦены,
            ЦеныАТТ.Цена КАК Цена
        ИЗ
            (ВЫБРАТЬ
                ПериодыЦен.Номенклатура КАК Номенклатура,
                ПериодыЦен.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                ПериодыЦен.Склад КАК Склад,
                ПериодыЦен.ДокументДвижения КАК ДокументДвижения,
                ПериодыЦен.ПериодЦены КАК ПериодЦены,
                МАКСИМУМ(ЦеныАТТ.Регистратор) КАК РегистраторЦены
            ИЗ
                (ВЫБРАТЬ
                    ТоварыНаСкладахОбороты.Номенклатура КАК Номенклатура,
                    ТоварыНаСкладахОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                    ТоварыНаСкладахОбороты.Склад КАК Склад,
                    ТоварыНаСкладахОбороты.Регистратор КАК ДокументДвижения,
                    МАКСИМУМ(ЦеныАТТ.Период) КАК ПериодЦены
                ИЗ
                    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(Номенклатура).* КАК Номенклатура, (Склад).* КАК Склад, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры, (ДокументОприходования).* КАК ДокументОприходования, (СтатусПартии).* КАК СтатусПартии, (Заказ).* КАК Заказ, (Качество).* КАК Качество}) КАК ТоварыНаСкладахОбороты
                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныАТТ КАК ЦеныАТТ
                        ПО ТоварыНаСкладахОбороты.Номенклатура = ЦеныАТТ.Номенклатура
                            И ТоварыНаСкладахОбороты.ХарактеристикаНоменклатуры = ЦеныАТТ.ХарактеристикаНоменклатуры
                            И ТоварыНаСкладахОбороты.Склад = ЦеныАТТ.Склад
                            И (ЦеныАТТ.Период <= ТоварыНаСкладахОбороты.Период)
                
                СГРУППИРОВАТЬ ПО
                    ТоварыНаСкладахОбороты.Номенклатура,
                    ТоварыНаСкладахОбороты.ХарактеристикаНоменклатуры,
                    ТоварыНаСкладахОбороты.Регистратор,
                    ТоварыНаСкладахОбороты.Склад) КАК ПериодыЦен
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныАТТ КАК ЦеныАТТ
                    ПО ПериодыЦен.Номенклатура = ЦеныАТТ.Номенклатура
                        И ПериодыЦен.ХарактеристикаНоменклатуры = ЦеныАТТ.ХарактеристикаНоменклатуры
                        И ПериодыЦен.Склад = ЦеныАТТ.Склад
                        И ПериодыЦен.ПериодЦены = ЦеныАТТ.Период
            
            СГРУППИРОВАТЬ ПО
                ПериодыЦен.Номенклатура,
                ПериодыЦен.ХарактеристикаНоменклатуры,
                ПериодыЦен.Склад,
                ПериодыЦен.ДокументДвижения,
                ПериодыЦен.ПериодЦены) КАК РегистраторыЦен
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныАТТ КАК ЦеныАТТ
                ПО РегистраторыЦен.Номенклатура = ЦеныАТТ.Номенклатура
                    И РегистраторыЦен.ХарактеристикаНоменклатуры = ЦеныАТТ.ХарактеристикаНоменклатуры
                    И РегистраторыЦен.ПериодЦены = ЦеныАТТ.Период
                    И РегистраторыЦен.РегистраторЦены = ЦеныАТТ.Регистратор
                    И РегистраторыЦен.Склад = ЦеныАТТ.Склад) КАК ЦеныАТТ
        ПО ИсточникДанных.Номенклатура = ЦеныАТТ.Номенклатура
            И ИсточникДанных.ХарактеристикаНоменклатуры = ЦеныАТТ.ХарактеристикаНоменклатуры
            И ИсточникДанных.Регистратор = ЦеныАТТ.ДокументДвижения
            И ИсточникДанных.Склад = ЦеныАТТ.Склад}
{ГДЕ
    ИсточникДанных.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    (ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоНачальныйОстатокВЕдиницахДляОтчетов,
    (ИсточникДанных.КоличествоНачальныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоНачальныйОстатокВБазовыхЕдиницах,
    ИсточникДанных.КоличествоПриход КАК КоличествоПриход,
    (ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоПриходВЕдиницахДляОтчетов,
    (ИсточникДанных.КоличествоПриход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоПриходВБазовыхЕдиницах,
    ИсточникДанных.КоличествоРасход КАК КоличествоРасход,
    (ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоРасходВЕдиницахДляОтчетов,
    (ИсточникДанных.КоличествоРасход * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоРасходВБазовыхЕдиницах,
    ИсточникДанных.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    (ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ИсточникДанных.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК КоличествоКонечныйОстатокВЕдиницахДляОтчетов,
    (ИсточникДанных.КоличествоКонечныйОстаток * ИсточникДанных.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоКонечныйОстатокВБазовыхЕдиницах,
    ИсточникДанных.СтоимостьНачальныйОстаток КАК СтоимостьНачальныйОстаток,
    ИсточникДанных.СтоимостьПриход КАК СтоимостьПриход,
    ИсточникДанных.СтоимостьРасход КАК СтоимостьРасход,
    ИсточникДанных.СтоимостьКонечныйОстаток КАК СтоимостьКонечныйОстаток,
    (ВЫБОР
            КОГДА ИсточникДанных.Склад.ВидСклада = ЗНАЧЕНИЕ(Перечисление.ВидыСкладов.Оптовый)
                ТОГДА ИсточникДанных.КоличествоНачальныйОстаток * ЦеныНоменклатурыНач.Цена
            ИНАЧЕ ИсточникДанных.КоличествоНачальныйОстаток * ЦеныАТТНач.Цена
        КОНЕЦ) КАК ЦенаНачальныйОстаток,
    (ВЫБОР
            КОГДА ИсточникДанных.Склад.ВидСклада = ЗНАЧЕНИЕ(Перечисление.ВидыСкладов.Оптовый)
                ТОГДА ИсточникДанных.КоличествоКонечныйОстаток * ЦеныНоменклатурыКон.Цена
            ИНАЧЕ ИсточникДанных.КоличествоКонечныйОстаток * ЦеныАТТКон.Цена
        КОНЕЦ) КАК ЦенаКонечныйОстаток,
    ИсточникДанных.Регистратор.* КАК Регистратор,
    ИсточникДанных.Период КАК Период,
    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕНЬ)) КАК ПериодДень,
    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, НЕДЕЛЯ)) КАК ПериодНеделя,
    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ДЕКАДА)) КАК ПериодДекада,
    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, МЕСЯЦ)) КАК ПериодМесяц,
    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, КВАРТАЛ)) КАК ПериодКвартал,
    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ПОЛУГОДИЕ)) КАК ПериодПолугодие,
    (НАЧАЛОПЕРИОДА(ИсточникДанных.Период, ГОД)) КАК ПериодГод}
{УПОРЯДОЧИТЬ ПО
    Номенклатура.*,
    Склад.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    ДокументОприходования.*,
    СтатусПартии.*,
    Заказ.*,
    Качество.*,
    КоличествоНачальныйОстаток,
    КоличествоНачальныйОстатокВЕдиницахДляОтчетов,
    КоличествоНачальныйОстатокВБазовыхЕдиницах,
    КоличествоПриход,
    КоличествоПриходВЕдиницахДляОтчетов,
    КоличествоПриходВБазовыхЕдиницах,
    КоличествоРасход,
    КоличествоРасходВЕдиницахДляОтчетов,
    КоличествоРасходВБазовыхЕдиницах,
    КоличествоКонечныйОстаток,
    КоличествоКонечныйОстатокВЕдиницахДляОтчетов,
    КоличествоКонечныйОстатокВБазовыхЕдиницах,
    СтоимостьНачальныйОстаток,
    СтоимостьПриход,
    СтоимостьРасход,
    СтоимостьКонечныйОстаток,
    ЦенаКонечныйОстаток,
    ЦенаПриход,
    ЦенаРасход,
    ЦенаНачальныйОстаток,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод}
ИТОГИ
    СУММА(КоличествоНачальныйОстаток),
    СУММА(КоличествоНачальныйОстатокВЕдиницахДляОтчетов),
    СУММА(КоличествоНачальныйОстатокВБазовыхЕдиницах),
    СУММА(КоличествоПриход),
    СУММА(КоличествоПриходВЕдиницахДляОтчетов),
    СУММА(КоличествоПриходВБазовыхЕдиницах),
    СУММА(КоличествоРасход),
    СУММА(КоличествоРасходВЕдиницахДляОтчетов),
    СУММА(КоличествоРасходВБазовыхЕдиницах),
    СУММА(КоличествоКонечныйОстаток),
    СУММА(КоличествоКонечныйОстатокВЕдиницахДляОтчетов),
    СУММА(КоличествоКонечныйОстатокВБазовыхЕдиницах),
    СУММА(СтоимостьНачальныйОстаток),
    СУММА(СтоимостьПриход),
    СУММА(СтоимостьРасход),
    СУММА(СтоимостьКонечныйОстаток),
    СУММА(ЦенаНачальныйОстаток),
    СУММА(ЦенаПриход),
    СУММА(ЦенаРасход),
    СУММА(ЦенаКонечныйОстаток)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Номенклатура.*,
    Склад.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    ДокументОприходования.*,
    СтатусПартии.*,
    Заказ.*,
    Качество.*,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод}
1 Лефмихалыч
 
24.04.15
14:35
(0) во-первых, запрос этот ни кто читать не будет
во-вторых, что не так с приходом и расходом?
2 Ненавижу 1С
 
гуру
24.04.15
14:39
вообще цены должны, имхо, всегда браться на одну дату (скорее всего конечную) иначе у вас баланс не сойдется
3 tylerkiss
 
25.04.15
09:19
(1) Да я написал, что не так. Цены не те в приходе и расходе, если в отчете отсутствует группировка строк по документу движения (регистратору) Таблица регистра накопления ПартииТоваровНаСкладах.ОстаткиИОбороты связывается левым содинением с подзапросами ЦеныАТТ и ЦеныНоменклатуры для получения последних значений цен номенклатуры на период регистратора. При добавлении в настройках отчета группировки "Документ движения (регистратор) эти подзапросы работают верно, цены вытаскиваются как положено, на определенную дату, а если эту группировку в отчете не выводить, цены выводятся на текущую дату (последняя установленная цена.
4 tylerkiss
 
25.04.15
09:20
(2) Нет. Как можно брать цены на одну дату, если движения товаров произведены совершенно разными датами? В случае начальных и конечных остатков - да, но не в приходе/расхлде.
5 RomanYS
 
25.04.15
10:18
(3) выполняемый запрос в построителе (и СКД) отличается от исходного. В СКД можно задать, что поле(регистратор) обязательное. Построителе по идее должно быть что-топодобное
6 tylerkiss
 
26.04.15
16:26
(5) Решил этот вопрос: из параметров виртуальных таблиц регистра накопления ПартииТоваровНаСкладах.ОстаткиИОбороты нужно убрать параметр построителя {(&Периодичность)}.
Основная теорема систематики: Новые системы плодят новые проблемы.