7.7 Отчет средний счет

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем vladislavus, 25 сен 2009.

  1. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Разработать отчет «Средний чек» для расчета суммы среднего проведенного счета по заданному периоду.

    Итоговая строка отчета помимо среднего должна содержать дополнительные параметры:
    - количество счетов
    - минимальная сумма счета
    - максимальная сумма счета
    - среднеквадратическое отклонение суммы счета.

    Затычка на Итоговой строке отчета.
    Может кто подскажет как получить количество документов вошедших в отчет?
    :unsure:
  2. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    В зависимости от того, как формируется отчет:
    1. Если перебором - то во время перебора вести подсчет нужных данных.
    2. Если запросом - то выгружается запрос в таблицу, и идет работа с таблицей
    3. Если другой вариант - телепаты еще не вернулись с отпуска, будут позже - жди.
  3. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Отчет формируется запросом, спс за подсказку.
    Как это будет выглядеть в модуле?

    :unsure:
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Приблизительно так:
    Код:
    //здесь твой запрос
    ТЗ=СоздатьОбъект("ТаблицаЗначений);
    Запрос.Выгрузить(ТЗ,0,0);
    Сообщить("Всего документов "+ТЗ.КоличествоСтрок());
    </span>
    </FONT></FONT></pre>
  5. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Спасибо!


    :unsure:
  6. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Еще вопрос в тему.
    что то не получается получить
    - минимальная сумма счета
    - максимальная сумма счета
    Искать в ТЗ или в запросе?
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Можно и там и там....

    Макс , Максимум соответственно. Только в таблице придется еще цикл крутить
  8. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Код:
    СумМин=Мин(Запрос.ТекущийДокумент.Сумма);
    
    Вроде так должно быть, но возвращает: Сумма Минимум.
    Или что то не так делаю???
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Синтаксис:
    Мин(<Элемент1>,...,<ЭлементN>)
    Назначение:
    Возвращает значение наименьшего параметра.
    Параметры:
    <Элемент1>,...,<ЭлементN> - список выражений базовых типов данных.
  10. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Спасибо! разобрался!
  11. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Если по запросу, получаем Минимальную/Максимальную сумма товаров в документе.
    Надо из Таблицы Значений получить Минимальную/Максимальную сумму документов.
    Как применить цикл?
    :unsure:
  12. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Это в цикл не надо засовывать. Если есть запрос, используйте функцию запроса Минимум.

    Вместо примера рекомендую открыть желто-красные книги. Там куча примеров на данную тему.

    Подробнее см. в документации, глава ''Язык Генерации Запросов''
  13. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Запрос есть, Функция запроса Минимум

    Код:
      |Функция СуммаСумма = Сумма(Сумма);
    |Функция СуммаСреднее = Среднее(Сумма);
    |Функция СуммаМинимум = Минимум(Сумма);
    |Функция СуммаМаксимум = Максимум(Сумма);
    
    Но по этой функции получаю только суммы из документа по номенклатуре.
    Нужны же суммы документов Минимальная сумма, максимальная сумма Документа
    В желто-красных книгах примеров не нашел. ((((

    :unsure:
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Воспользуйся группировкой не только по номенклабуре, но и по документу. И будет тебе счастье
  15. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Код:
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |ЗаявкаПокупателя = Документ.ЗаявкаПокупателя.ТекущийДокумент;
    |ТекущийДокумент = Документ.ЗаявкаПокупателя.ТекущийДокумент;
    |ДатаДок = Документ.ЗаявкаПокупателя.ДатаДок;
    |НомерДок = Документ.ЗаявкаПокупателя.НомерДок;
    |Контрагент = Документ.ЗаявкаПокупателя.Контрагент;
    |СуммаВклНДС = Документ.ЗаявкаПокупателя.СуммаВклНДС;
    |ВидОперации = Документ.ЗаявкаПокупателя.ВидОперации;
    |Код = Документ.ЗаявкаПокупателя.Номенклатура.Код;
    |Наименование = Документ.ЗаявкаПокупателя.Номенклатура.Наименование;
    |ВидНоменклатуры = Документ.ЗаявкаПокупателя.Номенклатура.ВидНоменклатуры;
    |Количество = Документ.ЗаявкаПокупателя.Количество;
    |Цена = Документ.ЗаявкаПокупателя.Цена;
    |Сумма = Документ.ЗаявкаПокупателя.Сумма;
    
    |ДатаПоставки = Документ.ЗаявкаПокупателя.ДатаПоставки;
    |Функция КоличествоСумма = Сумма(Количество);
    |Функция СуммаСумма = Сумма(Сумма);
    |Функция СуммаСреднее = Среднее(Сумма);
    |Функция СуммаМинимум = Минимум(Сумма);
    |Функция СуммаМаксимум = Максимум(Сумма);
    |Группировка ТекущийДокумент без групп все ВошедшиеВЗапрос;
    |Группировка Наименование без групп все ВошедшиеВЗапрос;
    |Условие(ВидНоменклатуры = ВыбВидНоменклатуры);
    |Условие(ВидОперации = ВыбВидОперации);
    |"//}}ЗАПРОС
    
    Не помогает ((((
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Выгрузи запрос в таблицу значений для ясности. Все долгдо работать. И позволь спросить - зачем заводить столько лишних переменных, когда до них можно "дотянуться" при выводе отчета?
  17. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    Запрос выгрузил, как из Таблицы Значений получить Максимум и Минимум?
    :unsure:
    Переменные не лишние, эти данные выводятся в отчете.
  18. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Переменные - ЛИШНИЕ. Пример:
    Код:
    Запрос.ВидОперации 
    
    
    Это тоже самое что
    Код:
    Запрос.ТекущийДокумент.ВидОперации 
    
    
    Что касается таблицы значений
    Код:
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ,1,0);
    ТЗ.ВыбратьСтроку(); //так ты можешь полюбоваться на итоги и может поймешь что делаешь не правильно
    
    
  19. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Не могу согласиться, первый вариант работает куда быстрее, так что ув. Vladislavus делай как делаешь ;-)

    А что касается таблицы, то проще ее вывести на форму, тогда будет видно все.

    PS над запросом подумаю позже, пока нет времени
  20. TopicStarter Overlay
    vladislavus
    Offline

    vladislavus

    Регистрация:
    25 сен 2009
    Сообщения:
    17
    Симпатии:
    0
    Баллы:
    1
    СПС за консультации.
    Разобраться бы с Таблицей Значений и Запросом.

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