Проект

Общее

Профиль

Расчет веса номенклатуры

ВЗ.Количество * (ВЫРАЗИТЬ(ВЫБОР
        КОГДА СправочникНоменклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
                И СправочникНоменклатура.ВесИспользовать
                И ЕСТЬNULL(СправочникНоменклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
            ТОГДА ВЫРАЗИТЬ(СправочникНоменклатура.ЕдиницаИзмерения.Числитель / СправочникНоменклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 9))
        КОГДА СправочникНоменклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
                И СправочникНоменклатура.ВесИспользовать
                И ЕСТЬNULL(СправочникНоменклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ОбъемЧислитель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ОбъемЗнаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ВесЗнаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
            ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СправочникНоменклатура.ЕдиницаИзмерения.Числитель / СправочникНоменклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 9))) / (ВЫРАЗИТЬ(СправочникНоменклатура.ОбъемЕдиницаИзмерения.Числитель / СправочникНоменклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 9))) КАК ЧИСЛО(17, 9))) / (ВЫРАЗИТЬ(СправочникНоменклатура.ОбъемЧислитель / СправочникНоменклатура.ОбъемЗнаменатель КАК ЧИСЛО(17, 9))) * (СправочникНоменклатура.ВесЧислитель / СправочникНоменклатура.ВесЗнаменатель) * (СправочникНоменклатура.ВесЕдиницаИзмерения.Числитель / СправочникНоменклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(17, 9))
        КОГДА СправочникНоменклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
                И СправочникНоменклатура.ВесИспользовать
                И ЕСТЬNULL(СправочникНоменклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ПлощадьЧислитель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ПлощадьЗнаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ВесЗнаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
            ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СправочникНоменклатура.ЕдиницаИзмерения.Числитель / СправочникНоменклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 9))) / (ВЫРАЗИТЬ(СправочникНоменклатура.ПлощадьЕдиницаИзмерения.Числитель / СправочникНоменклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 9))) КАК ЧИСЛО(17, 9))) / (ВЫРАЗИТЬ(СправочникНоменклатура.ПлощадьЧислитель / СправочникНоменклатура.ПлощадьЗнаменатель КАК ЧИСЛО(17, 9))) * (СправочникНоменклатура.ВесЧислитель / СправочникНоменклатура.ВесЗнаменатель) * (СправочникНоменклатура.ВесЕдиницаИзмерения.Числитель / СправочникНоменклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(17, 9))
        КОГДА СправочникНоменклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
                И СправочникНоменклатура.ВесИспользовать
                И ЕСТЬNULL(СправочникНоменклатура.ЕдиницаИзмерения.Знаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ДлинаЧислитель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ДлинаЗнаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ВесЗнаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
            ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(СправочникНоменклатура.ЕдиницаИзмерения.Числитель / СправочникНоменклатура.ЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 9))) / (ВЫРАЗИТЬ(СправочникНоменклатура.ДлинаЕдиницаИзмерения.Числитель / СправочникНоменклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 9))) КАК ЧИСЛО(17, 9))) / (ВЫРАЗИТЬ(СправочникНоменклатура.ДлинаЧислитель / СправочникНоменклатура.ДлинаЗнаменатель КАК ЧИСЛО(17, 9))) * (СправочникНоменклатура.ВесЧислитель / СправочникНоменклатура.ВесЗнаменатель) * (СправочникНоменклатура.ВесЕдиницаИзмерения.Числитель / СправочникНоменклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(17, 9))
        КОГДА СправочникНоменклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
                И ЕСТЬNULL(СправочникНоменклатура.ЕдиницаИзмерения.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
            ТОГДА ВЫРАЗИТЬ(СправочникНоменклатура.ЕдиницаИзмерения.Вес * СправочникНоменклатура.ЕдиницаИзмерения.ВесЕдиницаИзмерения.Числитель / СправочникНоменклатура.ЕдиницаИзмерения.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(17, 9))
        КОГДА (СправочникНоменклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
                ИЛИ СправочникНоменклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ПустаяСсылка)
                ИЛИ ЕСТЬNULL(СправочникНоменклатура.ЕдиницаИзмерения.Ссылка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка))
                И СправочникНоменклатура.ВесИспользовать
                И ЕСТЬNULL(СправочникНоменклатура.ВесЗнаменатель, 0) <> 0
                И ЕСТЬNULL(СправочникНоменклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
            ТОГДА ВЫРАЗИТЬ(СправочникНоменклатура.ВесЧислитель / СправочникНоменклатура.ВесЗнаменатель * (СправочникНоменклатура.ВесЕдиницаИзмерения.Числитель / СправочникНоменклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(17, 9))
        ИНАЧЕ 0
    КОНЕЦ / (ВЫРАЗИТЬ(1 КАК ЧИСЛО(17, 9))) КАК ЧИСЛО(17, 9)))