8.х Вычислить среднее

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем LexaDF, 23 мар 2012.

  1. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток!
    Нужна помощь/совет/консультация все что может помочь :)) заранее спасибо!

    Дело обстоит так, есть документ у которого нет движений по регистрам. У него есть свои справочник в котором хранятся параметры .Они передаются в документ и их необходимо заполнять оценками, сотрудникам. Абсолютный примитив.
    Но вот новая цель - нужно сделать отчет....что бы там вычиталось среднее по принципу: суммирование оценок идет по дням (сделано)/ на кол-во дней указанных в отчете. 2 дня ожесточенных боев, чтения и т.д. привили к результату очень близкому к абсолютному 0 :(

    [sql]ТекстЗапроса =
    "ВЫБРАТЬ
    | ДляОбщегоОтчетаСводка.Ссылка КАК Документ,
    | ДляОбщегоОтчетаСводка.НаборБукавок,
    | ДляОбщегоОтчетаСводка.КоличествоОтклонений КАК КоличествоОтклонений,
    | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ) КАК День,
    | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ) КАК Неделя,
    | НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ) КАК Месяц
    |
    |{ВЫБРАТЬ
    | Документ.*,
    | НаборБукавок.*,
    | КоличествоОтклонений,
    | День,
    | Неделя,
    | Месяц}
    |ИЗ
    | Документ.ДляОбщегоОтчета.Сводка КАК ДляОбщегоОтчетаСводка
    |ГДЕ
    | ДляОбщегоОтчетаСводка.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
    | И (НЕ ДляОбщегоОтчетаСводка.Ссылка.ПометкаУдаления)
    |{ГДЕ
    | ДляОбщегоОтчетаСводка.Ссылка.*,
    | ДляОбщегоОтчетаСводка.НаборБукавок.*,
    | ДляОбщегоОтчетаСводка.КоличествоОтклонений,
    | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, ДЕНЬ)) КАК День,
    | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, НЕДЕЛЯ)) КАК Неделя,
    | (НАЧАЛОПЕРИОДА(ДляОбщегоОтчетаСводка.Ссылка.Дата, МЕСЯЦ)) КАК Месяц}
    |{УПОРЯДОЧИТЬ ПО
    | Документ.*,
    | НаборБукавок.*,
    | КоличествоОтклонений,
    | День,
    | Неделя,
    | Месяц}
    |ИТОГИ
    | СУММА(КоличествоОтклонений)
    |ПО
    | ОБЩИЕ
    |{ИТОГИ ПО
    | Документ.*,
    | НаборБукавок.*,
    | КоличествоОтклонений,
    | День,
    | Неделя,
    | Месяц}";


    [/sql]

    Я хочу передать в ИТОГ что то Результат((СУММА(КоличествоОтклонений))/ (&ДатаОкончания - &ДатаНачала)) КАК Результат
    как то так :)
    Я начинающий в этом деле :(
    Приму любую помощь, спасибо!
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.984
    Симпатии:
    398
    Баллы:
    104
    Если честно, то не понятно. Формулу что ли в запросе не можете прописать? И еще. По правилам, данные, полученные из документа не являются достоверными. Правильно будет сделать этот документ регистратором какого либо регистра и данные для отчета брать уже от туда.
  3. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    В теории я согласен что правильно через регистр.
    Суть в том что мне нужно вычислить в итоговой колонке среднее путем сложения параметра , суммирования дней и разделить кол-во параметра на кол-во дней.
  4. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    Код:
    РАЗНОСТЬДАТ(&НачПериода, &КонПериода, ДЕНЬ) КАК КоличествоДнейВПериоде
    вот например наваял на коленке "средняя сумма документа в день за произвольный период":


    Код:
    ВЫБРАТЬ
    РАЗНОСТЬДАТ(&НачПериода, &КонПериода, ДЕНЬ) КАК КоличествоДнейВПериоде,
    РеализацияТоваровУслуг.СуммаДокумента
    ПОМЕСТИТЬ Таблица1
    ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ГДЕ
    РеализацияТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(Таблица1.КоличествоДнейВПериоде) КАК КоличествоДнейВПериоде,
    СУММА(Таблица1.СуммаДокумента) КАК СуммаДокумента
    ПОМЕСТИТЬ Таблица2
    ИЗ
    Таблица1 КАК Таблица1
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    Таблица2.СуммаДокумента / Таблица2.КоличествоДнейВПериоде КАК СредняяСуммаДокументаВДень
    ИЗ
    Таблица2 КАК Таблица2
  5. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Спасибо, vartanet.
    Идеи ты мне подкинул, но к сожалению реализовать не получается... :(
    Как я понимаю ПОМЕСТИТЬ Таблица1 это виртуальная таблица? почему то у меня он ее создавать отказывается :((
    [sql]РАЗНОСТЬДАТ(&НачПериода, &КонПериода, ДЕНЬ) КАК КоличествоДнейВПериоде[/sql]

    Не получается у меня сделать деление, по идее мне остается в Итоги СУММА (КоличетсвоОтклонений) / КоличествоДнейВпериоде Как среднее
    Но не работает так :(
  6. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    1) вроде итоги в виртуальных таблицах не работают.
    2) используйте систему компоновки данных, а не построитель отчета. построитель отчет - устаревший механизм.
  7. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Я про бывал, в итоге получается ерунда. Надо потренироваться и почитать по более литературы.
    Я не очень поимаю как в СКД сделать так что бы складывались показатели и делились на кол-во дней.
  8. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Это все настраивается в вычисляемых полях. Почитайте литературу:)
  9. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Задействовать то что в 1 посте не получится? :(

Поделиться этой страницей