Вход | Регистрация


1С:Предприятие ::

Метки: 

Построитель - свой алгоритм расчета в итогах

Я
   first_may
 
26.10.17 - 21:47
Добрый день.

Конфигурация УПП 1.3. В новом отчете, сделанный на основе "Продажи", добавлена колонка ПроцентСкидки, который рассчитывается допустим как Сумма1 / Сумма2 * 100.

Получается, что в строках все правильно, например
Сумма1    Сумма2    ПроцентСкидки
18    20    90
25    36    69,44

а в итоговой строке хотелось бы увидеть следующее
43     56    79,72
сумма   сумма   среднее
по       по        по
колонке колонке  колонке

Подскажите пож, как это реализовать?
 
 
   first_may
 
1 - 26.10.17 - 22:10
Очень нужен совет специалистов!
   first_may
 
2 - 26.10.17 - 22:44
Никто такое не делал?
   chelentano
 
3 - 27.10.17 - 08:50
Ну так и пиши в итогах: СУММА(Сумма1)/СУММА(Сумма2)*100
   first_may
 
4 - 27.10.17 - 09:49
(3) получиться 18 / 25 * 100 = 72 ??

это не то, надо

а в итоговой строке хотелось бы увидеть следующее
43     56    79,72
сумма   сумма   среднее
по       по        по 
колонке колонке  колонке
   Ёпрст
 
5 - 27.10.17 - 09:53
(4) нет. в итогах будет

(18+25)/(20+36)*100 = 76,78
   Филиал-msk
 
6 - 27.10.17 - 09:59
(0) Справка - Справка - Содержание - 1С:Предприятие - Встроенный язык - Работа с запросами - Синтаксис языка запросов - Ключевые слова и функции - Функции - Агрегатные функции
   first_may
 
7 - 27.10.17 - 10:10
(5) но это же не среднее для 90 и 79,72 .
   first_may
 
8 - 27.10.17 - 10:15
(6) я понял, что говорите про функцию СРЕДНЕЕ, а если надо руками посчитать среднее, то есть что то вроде
СУММА(по колонке) / КОЛИЧЕСТВО(число строк в группировки)
   Ёпрст
 
9 - 27.10.17 - 10:25
(7) Причем тут среднее ?
Ты сам просил Сумма1/сумма2*100
   Ёпрст
 
10 - 27.10.17 - 10:25
(8) Есть функция Среднее
 
 
   Ёпрст
 
11 - 27.10.17 - 10:25
ну и да, солидарен с (6)
   craxx
 
12 - 27.10.17 - 10:26
(8) СКД используй и не компоссируй людям мозги
   first_may
 
13 - 27.10.17 - 11:00
(9) Сумма1/сумма2*100 - это третья колонка - ПроцентСкидки

а вот в итоге надо вывести для ПроцентСкидки  среднее по строчкам
   Ёпрст
 
14 - 27.10.17 - 11:04
(13) Итоги По Среднее
   first_may
 
15 - 27.10.17 - 11:22
(14) я почему сюда и обратился, что среднее какое то странное..

вот запрос


ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    ВложенныйЗапрос.Номенклатура.Наименование,
    ВложенныйЗапрос.СерияНоменклатуры КАК СерияНоменклатуры,
    ВложенныйЗапрос.СерияНоменклатуры.Наименование,
    МАКСИМУМ(Закупки.Регистратор) КАК Регистратор,
    Закупки.Контрагент
ПОМЕСТИТЬ ПоследнееПоступление
ИЗ
    (ВЫБРАТЬ
        МАКСИМУМ(Закупки.Период) КАК Период,
        Закупки.Номенклатура КАК Номенклатура,
        Закупки.СерияНоменклатуры КАК СерияНоменклатуры
    ИЗ
        РегистрНакопления.Закупки КАК Закупки
    ГДЕ
        Закупки.Период <= КОНЕЦПЕРИОДА(&ДатаКон1, ДЕНЬ)
        И Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
    
    СГРУППИРОВАТЬ ПО
        Закупки.Номенклатура,
        Закупки.СерияНоменклатуры) КАК ВложенныйЗапрос
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки КАК Закупки
        ПО ВложенныйЗапрос.Номенклатура = Закупки.Номенклатура
            И ВложенныйЗапрос.СерияНоменклатуры = Закупки.СерияНоменклатуры
            И ВложенныйЗапрос.Период = Закупки.Период
ГДЕ
    Закупки.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.СерияНоменклатуры,
    ВложенныйЗапрос.Номенклатура.Наименование,
    ВложенныйЗапрос.СерияНоменклатуры.Наименование,
    Закупки.Контрагент

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    СерияНоменклатуры
;

////////////////////////////////////////////////////////////////////////////////

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

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    СерияНоменклатуры,
    Контрагент,
    ДоговорКонтрагента,
    Организация,
    Подразделение,
    ЗаказПокупателя,
    ДокументПродажи,
    Проект
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВременнаяТЧ.Номенклатура КАК Номенклатура,
    ВременнаяТЧ.НоменклатураПредставление,
    ВременнаяТЧ.ХарактеристикаНоменклатуры,
    ВременнаяТЧ.ХарактеристикаНоменклатурыПредставление,
    ВременнаяТЧ.ЗаказПокупателя,
    ВременнаяТЧ.ЗаказПокупателяПредставление,
    ВременнаяТЧ.ДоговорКонтрагента,
    ВременнаяТЧ.ДоговорКонтрагентаПредставление,
    ВременнаяТЧ.ДокументПродажи,
    ВременнаяТЧ.ДокументПродажиПредставление,
    ВременнаяТЧ.Подразделение,
    ВременнаяТЧ.ПодразделениеПредставление,
    ВременнаяТЧ.Проект,
    ВременнаяТЧ.ПроектПредставление,
    ВременнаяТЧ.Организация,
    ВременнаяТЧ.ОрганизацияПредставление,
    ВременнаяТЧ.Контрагент,
    ВременнаяТЧ.КонтрагентПредставление,
    ВременнаяТЧ.СерияНоменклатуры,
    ВременнаяТЧ.СерияНоменклатурыПредставление,
    ВременнаяТЧ.НоменклатураБазоваяЕдиницаИзмерения,
    ВременнаяТЧ.НоменклатураБазоваяЕдиницаИзмеренияПредставление,
    СУММА(ВременнаяТЧ.КоличествоОборот) КАК КоличествоОборот,
    СУММА(ВременнаяТЧ.СтоимостьОборот) КАК СтоимостьОборот,
    СУММА(ВременнаяТЧ.СтоимостьБезСкидокОборот) КАК СтоимостьБезСкидокОборот,
    СУММА(ВременнаяТЧ.НДСОборот) КАК НДСОборот,
    СУММА(ВременнаяТЧ.СтоимостьБезСкидокОборотБезНДС) КАК СтоимостьБезСкидокОборотБезНДС,
    СУММА(ВременнаяТЧ.СтоимостьСУчетомСкидкиОборотБезНДС) КАК СтоимостьСУчетомСкидкиОборотБезНДС,
    ВременнаяТЧ.ЦенаПрайса КАК ЦенаПрайса,
    ВременнаяТЧ.ЦенаПродажи КАК ЦенаПродажи,
    ВременнаяТЧ.ЦенаПродажиСоСкидкой КАК ЦенаПродажиСоСкидкой,
    ВременнаяТЧ.ОтклонениеОтЦеныПрайса КАК ОтклонениеОтЦеныПрайса,
    СУММА(ВременнаяТЧ.СуммаФинСкидки) КАК СуммаФинСкидки,
    СУММА(ВременнаяТЧ.СуммаСкидкиОтЦеныПрайса) КАК СуммаСкидкиОтЦеныПрайса,
    СУММА(ВременнаяТЧ.ОбщаяСуммаСкидки) КАК ОбщаяСуммаСкидки,
    СУММА(ВременнаяТЧ.СуммаПродажиПоЦенамПрайса) КАК СуммаПродажиПоЦенамПрайса,
    СРЕДНЕЕ(ВременнаяТЧ.ПроцентСкидки) КАК ПроцентСкидки,
    СРЕДНЕЕ(ВременнаяТЧ.СреднийПроцентФинСкидки) КАК СреднийПроцентФинСкидки,
    СРЕДНЕЕ(ВременнаяТЧ.СреднийПроцентОбщейСкидки) КАК СреднийПроцентОбщейСкидки,
    ВременнаяТЧ.Регистратор,
    ВременнаяТЧ.РегистраторПредставление,
    ВременнаяТЧ.Период,
    ВременнаяТЧ.ПериодДень,
    ВременнаяТЧ.ПериодНеделя,
    ВременнаяТЧ.ПериодДекада,
    ВременнаяТЧ.ПериодМесяц,
    ВременнаяТЧ.ПериодКвартал,
    ВременнаяТЧ.ПериодПолугодие,
    ВременнаяТЧ.ПериодГод,
    МАКСИМУМ(ВременнаяТЧ.ПоследнееПоступлениеРегистратор) КАК ПоследнееПоступлениеРегистратор,
    МАКСИМУМ(ВременнаяТЧ.ПоследнееПоступлениеКонтрагент) КАК ПоследнееПоступлениеКонтрагент
{ВЫБРАТЬ
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    ЗаказПокупателя.*,
    ДоговорКонтрагента.*,
    ДокументПродажи.*,
    Подразделение.*,
    Проект.*,
    Организация.*,
    Контрагент.*,
    СерияНоменклатуры.*,
    НоменклатураБазоваяЕдиницаИзмерения.*,
    КоличествоОборот,
    СтоимостьОборот,
    СтоимостьБезСкидокОборот,
    НДСОборот,
    СтоимостьБезСкидокОборотБезНДС,
    СтоимостьСУчетомСкидкиОборотБезНДС,
    ЦенаПрайса,
    ЦенаПродажи,
    ЦенаПродажиСоСкидкой,
    ОтклонениеОтЦеныПрайса,
    СуммаФинСкидки,
    СуммаСкидкиОтЦеныПрайса,
    ОбщаяСуммаСкидки,
    СуммаПродажиПоЦенамПрайса,
    ПроцентСкидки,
    СреднийПроцентФинСкидки,
    СреднийПроцентОбщейСкидки,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод,
    ПоследнееПоступлениеРегистратор.*,
    ПоследнееПоступлениеКонтрагент.*}
ИЗ
    ВременнаяТЧ КАК ВременнаяТЧ
{ГДЕ
    ВременнаяТЧ.КоличествоОборот,
    ВременнаяТЧ.СтоимостьОборот,
    ВременнаяТЧ.СтоимостьБезСкидокОборот,
    ВременнаяТЧ.НДСОборот,
    ВременнаяТЧ.СтоимостьБезСкидокОборотБезНДС,
    ВременнаяТЧ.СтоимостьСУчетомСкидкиОборотБезНДС,
    ВременнаяТЧ.ЦенаПрайса,
    ВременнаяТЧ.ЦенаПродажи,
    ВременнаяТЧ.ЦенаПродажиСоСкидкой,
    ВременнаяТЧ.ОтклонениеОтЦеныПрайса,
    ВременнаяТЧ.СуммаФинСкидки,
    ВременнаяТЧ.СуммаСкидкиОтЦеныПрайса,
    ВременнаяТЧ.ОбщаяСуммаСкидки,
    ВременнаяТЧ.СуммаПродажиПоЦенамПрайса,
    ВременнаяТЧ.Регистратор.*,
    ВременнаяТЧ.Период,
    ВременнаяТЧ.ПериодДень,
    ВременнаяТЧ.ПериодНеделя,
    ВременнаяТЧ.ПериодДекада,
    ВременнаяТЧ.ПериодМесяц,
    ВременнаяТЧ.ПериодКвартал,
    ВременнаяТЧ.ПериодПолугодие,
    ВременнаяТЧ.ПериодГод,
    ВременнаяТЧ.ПроцентСкидки,
    ВременнаяТЧ.СреднийПроцентФинСкидки,
    ВременнаяТЧ.СреднийПроцентОбщейСкидки,
    ВременнаяТЧ.ПоследнееПоступлениеРегистратор.*,
    ВременнаяТЧ.ПоследнееПоступлениеКонтрагент.*}

СГРУППИРОВАТЬ ПО
    ВременнаяТЧ.Номенклатура,
    ВременнаяТЧ.ХарактеристикаНоменклатуры,
    ВременнаяТЧ.ЗаказПокупателя,
    ВременнаяТЧ.ДоговорКонтрагента,
    ВременнаяТЧ.ДокументПродажи,
    ВременнаяТЧ.Подразделение,
    ВременнаяТЧ.Проект,
    ВременнаяТЧ.Организация,
    ВременнаяТЧ.Контрагент,
    ВременнаяТЧ.СерияНоменклатуры,
    ВременнаяТЧ.НоменклатураБазоваяЕдиницаИзмерения,
    ВременнаяТЧ.ПроцентСкидки,
    ВременнаяТЧ.Регистратор,
    ВременнаяТЧ.Период,
    ВременнаяТЧ.ЦенаПродажи,
    ВременнаяТЧ.ЦенаПродажиСоСкидкой,
    ВременнаяТЧ.ОтклонениеОтЦеныПрайса,
    ВременнаяТЧ.ЦенаПрайса,
    ВременнаяТЧ.НоменклатураПредставление,
    ВременнаяТЧ.ХарактеристикаНоменклатурыПредставление,
    ВременнаяТЧ.ЗаказПокупателяПредставление,
    ВременнаяТЧ.ДоговорКонтрагентаПредставление,
    ВременнаяТЧ.ДокументПродажиПредставление,
    ВременнаяТЧ.ПодразделениеПредставление,
    ВременнаяТЧ.ПроектПредставление,
    ВременнаяТЧ.ОрганизацияПредставление,
    ВременнаяТЧ.КонтрагентПредставление,
    ВременнаяТЧ.СерияНоменклатурыПредставление,
    ВременнаяТЧ.НоменклатураБазоваяЕдиницаИзмеренияПредставление,
    ВременнаяТЧ.РегистраторПредставление,
    ВременнаяТЧ.ПериодДень,
    ВременнаяТЧ.ПериодНеделя,
    ВременнаяТЧ.ПериодДекада,
    ВременнаяТЧ.ПериодМесяц,
    ВременнаяТЧ.ПериодКвартал,
    ВременнаяТЧ.ПериодПолугодие,
    ВременнаяТЧ.ПериодГод
{УПОРЯДОЧИТЬ ПО
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    ЗаказПокупателя.*,
    ДоговорКонтрагента.*,
    ДокументПродажи.*,
    Подразделение.*,
    Проект.*,
    Организация.*,
    Контрагент.*,
    СерияНоменклатуры.*,
    НоменклатураБазоваяЕдиницаИзмерения.*,
    КоличествоОборот,
    СтоимостьОборот,
    СтоимостьБезСкидокОборот,
    НДСОборот,
    СтоимостьБезСкидокОборотБезНДС,
    СтоимостьСУчетомСкидкиОборотБезНДС,
    ЦенаПрайса,
    ЦенаПродажи,
    ЦенаПродажиСоСкидкой,
    ОтклонениеОтЦеныПрайса,
    СуммаФинСкидки,
    СуммаСкидкиОтЦеныПрайса,
    ОбщаяСуммаСкидки,
    СуммаПродажиПоЦенамПрайса,
    ПроцентСкидки,
    СреднийПроцентФинСкидки,
    СреднийПроцентОбщейСкидки,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод,
    ПоследнееПоступлениеРегистратор,
    ПоследнееПоступлениеКонтрагент}
ИТОГИ
    СУММА(КоличествоОборот),
    СУММА(СтоимостьОборот),
    СУММА(СтоимостьБезСкидокОборот),
    СУММА(НДСОборот),
    СУММА(СтоимостьБезСкидокОборотБезНДС),
    СУММА(СтоимостьСУчетомСкидкиОборотБезНДС),
    СРЕДНЕЕ(ЦенаПрайса),
    СРЕДНЕЕ(ЦенаПродажи),
    ВЫБОР
        КОГДА СУММА(КоличествоОборот) = 0
            ТОГДА 0
        ИНАЧЕ (СУММА(СтоимостьОборот) - СУММА(НДСОборот)) / СУММА(КоличествоОборот)
    КОНЕЦ КАК ЦенаПродажиСоСкидкой,
    СРЕДНЕЕ(ОтклонениеОтЦеныПрайса),
    СУММА(СуммаФинСкидки),
    СУММА(СуммаСкидкиОтЦеныПрайса),
    СУММА(ОбщаяСуммаСкидки),
    СУММА(СуммаПродажиПоЦенамПрайса),
    ВЫБОР
        КОГДА СУММА(СуммаПродажиПоЦенамПрайса) = 0
            ТОГДА 0
        ИНАЧЕ СУММА(СуммаСкидкиОтЦеныПрайса) / СУММА(СуммаПродажиПоЦенамПрайса)
    КОНЕЦ * 100 КАК ПроцентСкидки,
    СРЕДНЕЕ(СреднийПроцентФинСкидки),
    ВЫБОР
        КОГДА СУММА(СуммаПродажиПоЦенамПрайса) = 0
            ТОГДА 0
        ИНАЧЕ СУММА(СуммаСкидкиОтЦеныПрайса) / СУММА(СуммаПродажиПоЦенамПрайса)
    КОНЕЦ * 100 + ВЫБОР
        КОГДА СУММА(СтоимостьБезСкидокОборот) - СУММА(НДСОборот) = 0
            ТОГДА 0
        ИНАЧЕ (СУММА(СтоимостьБезСкидокОборот) - СУММА(СтоимостьОборот)) / (СУММА(СтоимостьБезСкидокОборот) - СУММА(НДСОборот))
    КОНЕЦ * 100 КАК СреднийПроцентОбщейСкидки,
    МАКСИМУМ(ПоследнееПоступлениеРегистратор),
    МАКСИМУМ(ПоследнееПоступлениеКонтрагент)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    ЗаказПокупателя.*,
    ДоговорКонтрагента.*,
    ДокументПродажи.*,
    Подразделение.*,
    Проект.*,
    Организация.*,
    Контрагент.*,
    СерияНоменклатуры.*,
    НоменклатураБазоваяЕдиницаИзмерения.*,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод,
    ПоследнееПоступлениеРегистратор.*,
    ПоследнееПоступлениеКонтрагент.*,
    ЦенаПрайса,
    ЦенаПродажи,
    ЦенаПродажиСоСкидкой,
    СреднийПроцентФинСкидки}
АВТОУПОРЯДОЧИВАНИЕ

а вот результат
https://yadi.sk/i/vLpL63vy3P9AxW
   first_may
 
16 - 27.10.17 - 11:24
тут должно быть

Средний % финскидки = Сумма фин. скидки, руб. без НДС / Сумма продажи без скидок, руб. без НДС * 100

но не по всем строкам это выполняется..
   SleepyHead
 
17 - 27.10.17 - 11:41
Че так сложно -=то? В ресурсах вычислитьвыражение и использовать агрегатные функции для расчета среднего

и назначит его только для итогов группировки
   first_may
 
18 - 27.10.17 - 11:43
(17) вы про СКД?
   Ёпрст
 
19 - 27.10.17 - 12:10
(16) да уж.
вычислять среднее от процента ?
   first_may
 
20 - 27.10.17 - 12:10
(19) да, руководство так хочет..
   Ёпрст
 
21 - 27.10.17 - 12:17
(20) в школе арифметику то хоть проходил ?
   first_may
 
22 - 27.10.17 - 12:18
(21) изучал
   Ёпрст
 
23 - 27.10.17 - 12:18
у тебя сейчас

10%,22%,45% .. ты берешь среднее от этих чисел.
Это не тоже самое, что и среднее от показателей, из которых эти проценты получены. Так яснее ?
   first_may
 
24 - 27.10.17 - 12:24
(23) хорошо, тогда общий вопрос - можно ли в отчете сделанном на построителе в общих итогах использовать какую нибудь свою формулу? бред конечно, но допустим логарифм от строк, находящейся в этой группировки?
   Ёпрст
 
25 - 27.10.17 - 12:32
(24) ключевое слово - Итоги. Дальше думать
   АнализДанных
 
26 - 27.10.17 - 12:37
(0) Поиграйся на простом примере:

ВЫБРАТЬ
    "Измерение1" КАК Измерение,
    20 КАК Сумма1,
    80 КАК Сумма2
ПОМЕСТИТЬ втИсходныеДанные

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Измерение1",
    30,
    70

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Измерение2",
    95,
    100
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    втИсходныеДанные.Измерение КАК Измерение,
    втИсходныеДанные.Сумма1 / втИсходныеДанные.Сумма2 * 100 КАК ПроцентСкидки,
    втИсходныеДанные.Сумма1,
    втИсходныеДанные.Сумма2
ИЗ
    втИсходныеДанные КАК втИсходныеДанные
ИТОГИ
    //// Вариант 1:

    //СУММА(втИсходныеДанные.Сумма1) / СУММА(втИсходныеДанные.Сумма2) * 100 КАК ПроцентСкидки

    //// Вариант 2:

    //Среднее(втИсходныеДанные.Сумма1 / втИсходныеДанные.Сумма2 * 100) КАК ПроцентСкидки

    //// Вариант 3:

    СУММА(втИсходныеДанные.Сумма1 / втИсходныеДанные.Сумма2 * 100) КАК ПроцентСкидки
    //// Вариант 4:

    //// Пиши любую формулу


ПО
    ОБЩИЕ,
    Измерение


---
Исходная таблица
Измерение_1 20 80
Измерение_1 30 70
Измерение_2 95 100

---
Вариант 1 вернет
Общие итоги 58
Измерение_1 33,33
Измерение_2 95

58 это 20+30+95/80+70+100*100

---
Вариант 2 вернет 54,28
Общие итоги 54,28
Измерение_1 33,95
Измерение_2 95

54,28 это среднее от построчных значений 25+42,85+95/3 (3 это кол-во строк детальных записей)

---
Вариант 3 вернет
Общие итоги 162,85
Измерение_1 67,85
Измерение_2 95

162,85 это сумма всех построчных значений
   first_may
 
27 - 28.10.17 - 20:25
(26) спасибо, переписал запрос.. теперь получилось..

последний вопрос - как можно вот тут

//// Пиши любую формулу
...

написать формулу, что бы считалось среднее из положительных итогов по полю, то есть

ПроцентСкидки
<вот тут надо среднее от 4,648391 и 4,330552>
-4,685727
4,648391
-5,606112
4,330552
   first_may
 
28 - 28.10.17 - 20:26
пишу
СРЕДНЕЕ(ПроцентСкидки)

и получаю
-0,328224
   first_may
 
29 - 28.10.17 - 20:27
а надо, что бы вывелось 4,490..
   h-sp
 
30 - 28.10.17 - 21:00
(29) выкинь это среднее никогда больше не пользуйся. Делай СУММА1 / СУММА2
   first_may
 
31 - 28.10.17 - 21:01
(30)  выкинь это среднее - хорошо, а как отобрать только положительные?
   h-sp
 
32 - 28.10.17 - 21:18
(31) ВЫБОР КОГДА Сумма(ааппаааппр.) > 0 Тогда
    тото
ИНАЧЕ
    тото
Конец
   АнализДанных
 
33 - 28.10.17 - 23:53
(32) Эта проверка будет только на итоги накладываться, а ему надо на детальные записи. Надо как-то так:

Сумма(Выбор
      Когда (сумма1>0 и сумма2>0) Тогда
         втИсходныеДанные.Сумма1 / втИсходныеДанные.Сумма2 * 100
      Иначе 0
      Конец) / Сумма(Выбор Когда (сумма1>0 и сумма2>0) Тогда 1 иначе 0 Конец)

Я в конце проверку на деление на 0 писать не стал, но тебе ее надо будет дописать.
 
  Рекламное место пустует
   first_may
 
34 - 29.10.17 - 09:34
сейчас в запросе написано

ВЫБРАТЬ
    ВременнаяТЧ.Номенклатура,
    ВременнаяТЧ.Контрагент,
    ВЫБОР
        КОГДА СУММА(ВременнаяТЧ.СуммаПродажиПоЦенамПрайса) = 0
            ТОГДА 0
        ИНАЧЕ СУММА(ВременнаяТЧ.СуммаСкидкиОтЦеныПрайса) / СУММА(ВременнаяТЧ.СуммаПродажиПоЦенамПрайса)
    КОНЕЦ * 100 КАК ПроцентСкидки
ИЗ
    ВременнаяТЧ КАК ВременнаяТЧ

СГРУППИРОВАТЬ ПО
    ВременнаяТЧ.Номенклатура,
    ВременнаяТЧ.Контрагент
ИТОГИ
    СРЕДНЕЕ(ПроцентСкидки)
ПО
    ОБЩИЕ
АВТОУПОРЯДОЧИВАНИЕ
и получается вот такой результат

ПроцентСкидки
-1,1768255 - итоговое значение
0
-77,999288
7,068797
37,700249
5,334941
20,834348

и действительно
(-77,999288 + 7,068797 + 37,700249 + 5,334941 + 20,834348 + 0) / 6 = -1,1768255
   first_may
 
35 - 29.10.17 - 09:36
но как только переписываю на этот

ВЫБРАТЬ
    ВременнаяТЧ.Номенклатура,
    ВременнаяТЧ.Контрагент,
    ВЫБОР
        КОГДА СУММА(ВременнаяТЧ.СуммаПродажиПоЦенамПрайса) = 0
            ТОГДА 0
        ИНАЧЕ СУММА(ВременнаяТЧ.СуммаСкидкиОтЦеныПрайса) / СУММА(ВременнаяТЧ.СуммаПродажиПоЦенамПрайса)
    КОНЕЦ * 100 КАК ПроцентСкидки
ИЗ
    ВременнаяТЧ КАК ВременнаяТЧ

СГРУППИРОВАТЬ ПО
    ВременнаяТЧ.Номенклатура,
    ВременнаяТЧ.Контрагент
ИТОГИ
    //СРЕДНЕЕ(ПроцентСкидки)

    ВЫБОР
        КОГДА СУММА(ВЫБОР
                    КОГДА ПроцентСкидки > 0
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ) = 0
            ТОГДА 0
        ИНАЧЕ СУММА(ВЫБОР
                    КОГДА ПроцентСкидки > 0
                        ТОГДА ПроцентСкидки
                    ИНАЧЕ 0
                КОНЕЦ) / СУММА(ВЫБОР
                    КОГДА ПроцентСкидки > 0
                        ТОГДА 1
                    ИНАЧЕ 0
                КОНЕЦ)
    КОНЕЦ КАК ПроцентСкидки
ПО
    ОБЩИЕ
АВТОУПОРЯДОЧИВАНИЕ


то получается вот такой результат

17,735 - итоговое значение
0
0
7,069
37,700
5,335
20,834

и действительно
(7,069 + 37,700 + 5,335 + 20,834) / 4 = 17,735
   first_may
 
36 - 29.10.17 - 09:37
то есть, в итоговой строке то, что надо, но вот в детальной записи теперь не отображается минусовое значение..
   first_may
 
37 - 29.10.17 - 09:38
как написать, что бы получилось вот это

17,735 - итоговое значение 

-77,999288 
7,069 
37,700 
5,335 
20,834 
   first_may
 
38 - 29.10.17 - 15:47
Может быть это из за того, что запрос используется в отчете сделанном на построителе?
   АнализДанных
 
39 - 29.10.17 - 23:40
(38) Условия в построителе не накладываешь?
   first_may
 
40 - 30.10.17 - 06:44
Делаю ли отбор?
Да, проверяю на одной позиции.
   АнализДанных
 
41 - 30.10.17 - 11:52
(40) Покажи весь текст запроса.



Список тем форума
Рекламное место пустует  
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует