Отчет ПереченьУслуг



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

Создадим новый объект конфигурации Отчет «ПереченьУслуг». Перейдем на закладку «Макеты» и вызовем конструктов выходной формы.

Выберем объектную (ссылочную) таблицу справочника «Номенклатура» и виртуальную таблицу регистра сведений «Цены.СрезПоследних». Для того чтобы исключить неоднозначность имен в запросе, переименуем таблицу «Номенклатура» в «СпрНоменклатура».

Вызовем диалог ввода параметров виртуальной таблицы «ЦеныСрезПоследних» и укажем, что период будет передан в параметре «ДатаОтчета».

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

· «СпрНоменклатура.Родитель»,

· «СпрНоменклатура.Ссылка»,

· «ЦеныСрезПоследних.Цена»:

Перейдем на закладку «Связи» и сбросим флаг «Все» у таблицы регистра и установим его у таблицы справочника.

 

На закладке «Условия» зададим условие выбора элементов справочника «Номенклатура» - выбираемые элементы должны соответствовать виду номенклатуры переданному в параметре запроса «ВидНоменклатуры»:

На закладке «Объединения/Псевдонимы» укажем, что поле «Родитель» будет иметь псевдоним «ГруппаУслуг», а поле «Ссылка» - «Услуга»:

Перейдем на закладку «Итоги» и укажем, что группировка будет производиться по полю «ГруппаУслуг» с типом итогов «Элементы и иерархия», а значения суммируемых полей задавать не станем:

На закладке «Отчет» сбросим флаг «Использовать построитель отчета».

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

Нажмем «ОК».

Откроем модуль формы и в процедуре «ПереченьУслуг» определим значение параметра запроса:

Запрос.УстановитьПараметр("ВидНоменклатуры", Перечисления.ВидыНоменклатуры.Услуга);

Запрос.УстановитьПараметр("ДатаОтчета",ДатаОтчета);

Теперь рассмотрим текст запроса, сформированный конструктором:

Запрос.Текст =

"ВЫБРАТЬ

СпрНоменклатура.Родитель КАК ГруппаУслуг,

СпрНоменклатура.Родитель.Представление,

СпрНоменклатура.Ссылка КАК Услуга,

СпрНоменклатура.Представление,

ЦеныСрезПоследних.Цена

ИЗ

Справочник.Номенклатура КАК СпрНоменклатура

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаОтчета,)

КАК ЦеныСрезПоследних

ПО ЦеныСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка

 

ГДЕ

СпрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры

ИТОГИ ПО

ГруппаУслуг ИЕРАРХИЯ";

Практически все конструкции, использованные в этом запросе, нам уже известны, за исключением ключевого слова ИЕРАРХИЯ, использованного в части описания итогов. Это ключевое слово позволяет рассчитывать итоги по иерархии справочника, однако поскольку в нашем случае какие либо итоги в отчете не нужны, мы использовали эту возможность для создания группировок по иерархии справочника «Номенклатура».

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

Добавим в него еще одно значение для услуги «Диагностика» - новая цена услуги на 01.03.20__ г. (это позволит нам протестировать отчет):

Теперь выполним отчет «Перечень услуг» по состоянию на 28.02.20__ г.:

Наш отчет правильно отражает цену услуги «Диагностика» на 28.02. – 200 руб.

Еще раз выполним отчет, но теперь уже на другую дату -01.03.20__ г.:

Как видите, показана новая цена услуги «Диагностика» - 350 руб.

Внимание! Если у вас не получилось создать этот отчет с новой суммой, то попробуйте сформировать ее на 02.03.20__ г. Теперь видите 350 руб.? А теперь подумайте, что надо еще прописать в коде, что бы отображалась сумма 350 руб. при формировании отчета на 01.03.20__ г.

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

 


Дата добавления: 2015-12-20; просмотров: 23; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!