Имя: Пароль:
1C
1С v8
Запрос дублирует поля
0 John83
 
25.06.14
10:55
Отчет стоимостной оценки (УПП 1.3) почему-то дублирует поля.
http://savepic.org/5677600.png
Если удалить таблицу КурсыВалютСрезПоследних, то все становится правильно, но никак не пойму, где происходит наложение..
1 John83
 
25.06.14
10:55
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.Номенклатура.Код,
    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
    ТоварыНаСкладахОстатки.КоличествоОстаток * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдОстаток,
    ВЫБОР
        КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL
            ТОГДА ЦеныНоменклатурыБезХарактеристик.Цена * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен
        ИНАЧЕ ЦеныНоменклатуры.Цена * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен
    КОНЕЦ КАК ТипЦенЦена,
    ВЫБОР
        КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL
            ТОГДА ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен
        ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен
    КОНЕЦ КАК ТипЦенСтоимость,
    ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК ОстатокПоПартиям,
    ПартииТоваровНаСкладахОстатки.СтоимостьОстаток / ВЫБОР
        КОГДА ПартииТоваровНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL
                ИЛИ ПартииТоваровНаСкладахОстатки.КоличествоОстаток = 0
            ТОГДА 1
        ИНАЧЕ ПартииТоваровНаСкладахОстатки.КоличествоОстаток
    КОНЕЦ * ТоварыНаСкладахОстатки.КоличествоОстаток КАК Себестоимость,
    ВЫБОР
        КОГДА ПартииТоваровНаСкладахОстатки.СтатусПартии = &Неотфактурованный
            ТОГДА 0
        ИНАЧЕ ВЫБОР
                КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL
                    ТОГДА ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен - ПартииТоваровНаСкладахОстатки.СтоимостьОстаток
                ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен - ПартииТоваровНаСкладахОстатки.СтоимостьОстаток
            КОНЕЦ
    КОНЕЦ КАК ТипЦенНаценка,
    ВЫБОР
        КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL
            ТОГДА ВЫБОР
                    КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен = 0
                        ТОГДА 0
                    ИНАЧЕ (ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен - ПартииТоваровНаСкладахОстатки.СтоимостьОстаток) / (ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен) * 100
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен = 0
                    ТОГДА 0
                ИНАЧЕ (ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен - ПартииТоваровНаСкладахОстатки.СтоимостьОстаток) / (ТоварыНаСкладахОстатки.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен) * 100
            КОНЕЦ
    КОНЕЦ КАК ТипЦенРентабельность
ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, Валюта = &ВалютаУпрУчета) КАК УпрВалюты,
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &БазовыйТипЦен) КАК ЦеныНоменклатуры
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатуры.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                &ДатаКон,
                ТипЦен = &БазовыйТипЦен
                    И ХарактеристикаНоменклатуры = &ПустаяХарактеристика) КАК ЦеныНоменклатурыБезХарактеристик
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыБезХарактеристик.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаКон, НЕ СтатусПартии = &Неотфактурованный) КАК ПартииТоваровНаСкладахОстатки
        ПО ТоварыНаСкладахОстатки.Номенклатура = ПартииТоваровНаСкладахОстатки.Номенклатура
            И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ПартииТоваровНаСкладахОстатки.ХарактеристикаНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, ) КАК КурсыВалютСрезПоследнихБезХарактеристик
        ПО (ЦеныНоменклатурыБезХарактеристик.Валюта = КурсыВалютСрезПоследнихБезХарактеристик.Валюта)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, ) КАК КурсыВалютСрезПоследних
        ПО (ЦеныНоменклатуры.Валюта = КурсыВалютСрезПоследних.Валюта)
ИТОГИ
    СУММА(КоличествоОстаток),
    СУММА(КоличествоБазовыхЕдОстаток),
    МАКСИМУМ(ТипЦенЦена),
    СУММА(ТипЦенСтоимость),
    СУММА(ОстатокПоПартиям),
    СУММА(Себестоимость),
    СУММА(ТипЦенНаценка),
    СУММА(ТипЦенРентабельность)
ПО
    ОБЩИЕ
2 John83
 
25.06.14
10:57
цены в базе не ведутся, одна запись в РС КурсыВалют - руб.
3 John83
 
25.06.14
11:44
проблема оказалась в том, что был остаток по разным статусам партий
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший