Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
today2 / today2 / Лабраб10.doc
Скачиваний:
242
Добавлен:
08.11.2013
Размер:
41.58 Mб
Скачать

2.10.1.3 Отчет «ВыручкаМастеров»

Отчет «Выручка мастеров» будет содержать информацию о том, какая выручка была получена предприятием благодаря работе каждого из мастеров, с детализацией по всем дням в выбранном периоде и разворотом по клиентам, обслуженным в каждый из дней. На примере этого отчета мы проиллюстрируем, как строить многоуровневые группировки в запросе, как обходить все даты в выбранном периоде, и как управлять состоянием группировок в табличном документе. Создадим новый объект конфигурации «Отчет «ВыручкаМастеров»».

Рис. 28

Перейдем на закладку «Макет» и запустим конструктор выходной формы.

Рис. 29

Выберем виртуальную таблицу регистра накопления «Продажи.Обороты». Зададим для нее значения параметров «НачалоПериода», «КонецПериода» и «Периодичность».

Рис. 30

После этого выберем из таблицы следующие поля:

• «ПродажиОбороты.Мастер»,

• «ПродажиОбороты.Период»,

• «ПродажиОбороты.Клиент»,

• «ПродажиОбороты.ВыручкаОборот».

Рис. 31

Теперь перейдем на закладку «Объединения/Псевдонимы» и зададим псевдоним «Выручка» для поля «ПродажиОбороты.ВыручкаОборот».

Рис. 32

На закладке «Порядок» определим, что результат запроса будет отсортирован по возрастанию значения поля «Период» и на закладке «Итоги» зададим получение общих итогов и промежуточных итогов по полям «Мастер» и «Период».

Рис. 33

Рис. 34

На закладке «Отчет» сбросим флаг «Использовать построитель отчета». На закладке «Выходная форма» отметим, что тип параметров «ДатаНачала» и «ДатаОкончания» будет «Дата». Нажмем «ОК».

Сразу, как и в предыдущем отчете, определим состав даты для полей ввода, расположенных в форме, и затем в вызове процедуры «ВыручкаМастеров» уточним передачу последнего параметра при помощи функции «КонецДня()»:

Рис. 35

Рис. 36

Рис. 37

Рис. 38

Теперь обратимся к процедуре «ВыручкаМастеров» и в первую очередь рассмотрим текст запроса, сформированный конструктором. В части описания запроса обратите внимание, что у источника данных, кроме задания начала и окончания периода расчета итогов, задана периодичность выбираемых данных - «День».Именно благодаря этому у нас появляется возможность описать среди выбранных полей поле «Период».

Далее в тексте запроса следует известная нам часть упорядочивания результатов, и в следующей части - описание итогов - мы видим новые для нас строки:

Помимо общих итогов, в нашем запросе будут рассчитаны промежуточные итоги по полям «Мастер» и «Период».

Рис. 39

Теперь, чтобы наглядно продемонстрировать смысл наших дальнейших действий, запустите 1С:Предприятие в режиме отладки и посмотрите на результат работы отчета «Выручка мастеров» за некоторый период:

Рис. 40

Если вы помните, в начале раздела мы говорили, что этот отчет должен показывать данные с детализацией по всем дням в выбранном периоде. У нас же отображаются только те дни, для которых существуют ненулевые записи в таблице регистра накопления. Поэтому сейчас мы займемся тем, что изменим текст программы таким образом, чтобы в отчет попадала каждая дата из указанного периода. Вернемся к модулю отчета «ВыручкаМастеров» и, в части описания итогов запроса, уточним, каким образом должны рассчитываться итоги по полю «Период»:

Рис. 41

Такая запись говорит о том, что итоги должны быть, рассчитаны периодами равными дню, в интервале дат, задаваемом параметрами «ДатаНачала» и «ДатаОкончания».

И для того, чтобы все эти итоги попали в итоговый табличный документ, нам нужно будет уточнить порядок вывода итогов в выборке результата запроса:

Рис. 42

Смысл внесенных нами уточнений заключается в том, что теперь при формировании выборки по группировке «Период» будут выбираться все имеющиеся значения группировок. Запустим 1С:Предприятие в режиме отладки и выполним отчет «ВыручкаМастеров» за некоторый период, например, неделю.

Рис. 43

Очевидно, что такой внешний вид отчета абсолютно «нечитабелен», поэтому мы снова вернемся к модулю отчета и внесем небольшие уточнения в алгоритм вывода областей табличного документа:

Рис. 44

Смысл внесенных нами изменений заключается в том, что при выводе областей детальных записей и периода, мы сворачиваем группировки, которые по умолчанию выводятся развернутыми. Запустим 1С:Предприятие в режиме отладки и снова выполним отчет «ВыручкаМастеров» за период в месяц. На этот раз результат выглядит гораздо лучше:

Рис. 45

Итак, на примере этого отчета мы продемонстрировали, как строить многоуровневые группировки в запросе, как обходить все даты в выбранном периоде, и как управлять состоянием группировок в табличном документе.

Соседние файлы в папке today2