|
||
|
||
|
|
Как быстро разработать красивый отчет используя Универсальный отчет в прикладных решениях фирмы 1С
Конфигурации: БП, УТ, УПП и прочие фирмы 1С на платформе 8.1
![]() рисунок 1
Универсальный отчет – объект конфигурации, который можно использовать как самостоятельно, так и в других отчетах. Данный отчет присутствует во многих конфигурациях фирмы 1С: Управление торговлей, Бухгалтерия предприятия, Управление производственным предприятием и пр. Разбираться в его работе нет нужды, достаточно разобраться, как его можно использовать
![]() рисунок 2 Как видим, у данного отчета только один реквизит – Универсальный отчет. Зададим новое имя нашему отчету – «Товары на остатках и в резерве»: ![]() рисунок 3 Откроем форму отчета: ![]() рисунок 4 Форма отчета абсолютна безлика, нет даже названия в шапке. Зато есть две даты. Обратим внимание на это, ведь нам нужна одна дата. Но не спешим убирать одну из дат, это настраивается в модуле отчета, откроем его. Для этого закрываем форму, нажимаем «Действия – Открыть модуль объекта». Модуль объекта выглядит на диво лаконично, Вот он весь ![]() рисунок 5 Обратим внимание на строки в конце модуля: ![]() рисунок 6
Собственно здесь настраивается то, как мы вводим период: 1 – на дату (как нам и нужно), 0 – произвольный период (в это случае будут две даты), неделя, декада и прочее. Оставим без изменения.
![]() рисунок 7
В начале, как мы видим, находятся некоторые настройки универсального отчета: какое название выводить в шапке, выводить ли отрицательное красным и пр. Нас это не интересует, листаем дальше, пока не найдем запрос. Запрос начинается со строки
![]() рисунок 8
Содержание этого запроса нас так же не интересует, ведь это запрос для старого отчета. Напишем вместо него новый.
![]() рисунок 9
В левой части находятся возможные источники данных, в средней – таблицы, которые мы будем использовать, в правой части – те поля, которые будем использовать при выводе данных отчета.
![]() рисунок 10 Заполним поля (правая часть). Из таблицы Товары на складах выберем поля Склад, Номенклатура, Характеристика номенклатуры, Серия номенклатуры, Количество остаток. Из таблицы Товары в резерве на складах выберем Количество остаток (это другой остаток — резерв), из таблицы Цены номенклатуры Тип цен и Цена: ![]() рисунок 11
Кнопкой ![]() рисунок 11 Это Сумма на складе, аналогично, Сумма в резерве: ![]() рисунок 12 В итоге, в полях у меня получилось следующее: ![]() рисунок 13 Для таблиц Товары на складах, Товары в резерве на складах, Цены номенклатуры необходимо установить даты, на которые мы рассчитываем остатки и цены. Для этого выберем таблицу Товары на складах и нажмем кнопку - параметры виртуальной таблицы. Откроется окно параметров. В строке Период напишем &ДатаКон: ![]() рисунок 14
Этим мы указали, что остатки будут рассчитываться на конец периода, который мы будем задавать при формировании отчета. Аналогично настроим для других таблиц.
![]() рисунок 15
Отредактированные псевдонимы выделяются черным. Псевдонимы, которые мы присвоили полям, запоминаем, это понадобится дальше.
![]() рисунок 16 На закладке «Итоги» выберем числовые поля, — по ним будут рассчитываться итоги. По полю Цена берем максимум, по остальным – считаем суммы. ![]() рисунок 17
Теперь выберем те поля, которые будут использованы в настройках построителя. Перейдем на закладку «Построитель». На закладке «Построитель» находятся еще пять закладок. На закладке «Поля» выберем те поля, которые будут использоваться при настройке отчета.
![]() рисунок 18
Галочки в средней колонке «Использовать дочерние» означают, что мы можем выбирать не только Склад, Номенклатуру и т.п., но и любое дочернее поле – Тип склада у склада, ставку НДС, артикул у номенклатуры и т.д. Дочерние можем использовать только у сложных типов данных, у простых (Цена, Количество, Сумма) – нет.
![]() рисунок 19 На закладке «Порядок» выберем поля упорядочивания. Выберем поле Номенклатура: ![]() рисунок 20 Ну и наконец, закладка «Итоги». Выберем Склад, Номенклатура, — по этим полям будут вычисляться итоги: ![]() рисунок 21
Обращаю внимание, и здесь есть колонка «Использовать дочерние», т.е. итоги можно будет вычислять и по реквизитам этих полей.
![]() рисунок 22 Ниже находится раздел, в котором настраиваются представление полей. Настроим представления для полей Склад, Номенклатура, Характеристика номенклатуры, Серия номенклатуры, Тип цен: ![]() рисунок 23
При этом первое поле – то, как мы настроили представление на закладке «Объединения / псевдонимы», второе поле – то, как оно будет отображаться в отчете. Например характеристика в запросе указана как «ХарактеристикаНоменклатуры», а представление укажем «Характеристика номенклатуры».
![]() рисунок 24
При этом первое поле – то, как мы настроили представление на закладке «Объединения / псевдонимы». Второе поле – то, как оно будет отображаться в отчете. Третье – будет ли данный показатель включен по умолчанию. Четвертое – формат поля. Пятое и шестое – наименование группы и представление (можно несколько полей объединить в одно поле).
![]() рисунок 25
Этими настройками мы установили то, что по-умолчанию, строки будут группироваться сперва по складу, затем по номенклатуре. Могли бы и не ставить, а настраивать в самом отчете, но я считаю, что по-умолчанию группировки должны быть. Аналогично, есть настройка и для колонок, но их использовать не будем.
![]() рисунок 26
Эти поля будут отображаться в быстрых отборах. Пути к данным должны быть те, которые мы указали при настройки построителя на закладке Отборы. Причем, на закладке Отборы строк может быть больше, чем в быстрых отборах.
![]() рисунок 27
Аналогично, если у нас есть поля, не показатели, по которым мы не группируем данные, то в отчет они по умолчанию не попадут. Но мы можем указать их в качестве дополнительных полей что бы отображались.
![]() рисунок 28 Как видите, дата одна и она не заполнена (расчет производится на конец текущего дня), три предопределенных отбора. Щелкнув по кнопке «Настройка» откроем настройки: ![]() рисунок 29 Есть показатели, настроены группировки. А если щелкнуть по кнопке «Расширенная настройка», то увидим в дополнительных полях Артикул: ![]() рисунок 30
Характеристику и Серию я выбрал сам. Выводиться данные поля будут с группировками (это у нас номенклатура) причем, показаны будут после Наименования.
![]() рисунок 31
Замечание 1: В настройка запроса мы указали параметр ДатаКон. Кроме этого показателя есть еще три предопределенных: ДатаНач, ДатаНачала, ДатаКонца. Чем они отличаются? ДатаНачала и ДатаКонца это именно даты, первая – дата начала периода (если дата пустая, то начало ведения учета), вторая – дата конца периода (если дата пустая, то конец текущего дня). ДатаНач и ДатаКон – это границы периодов (дата + указание включения или исключения пограничного значения). Чем это грозит? К примеру, нужно отобрать документы по датам. Если в тексте запроса указать Документ.Дата >= &ДатаНачала, то все будет хорошо, если же сравнивать не с ДатаНачала, а с ДатаНач, то выполнение отчета будет прервано с ошибкой, ибо нельзя сравнивать Границу и Дату! Таблицы данных понимают все эти параметры.
![]() рисунок 32 Процедура СформироватьОтчет должна быть такой: ![]() рисунок 33
ТипЦен должен быть реквизитом отчета, иначе этот параметр не будет виден в модуле объекта!
|
|