Отчет ПереченьУслуг
Отчет «Перечень услуг» будет содержать информацию о том, какие услуги и по какой цене оказывает ООО «Мастер». На его примере мы познакомимся с возможностью получения последних значений из периодического регистра сведений и вывода иерархических справочников.
Создадим новый объект конфигурации Отчет «ПереченьУслуг». Перейдем на закладку «Макеты» и вызовем конструктов выходной формы.
Выберем объектную (ссылочную) таблицу справочника «Номенклатура» и виртуальную таблицу регистра сведений «Цены.СрезПоследних». Для того чтобы исключить неоднозначность имен в запросе, переименуем таблицу «Номенклатура» в «СпрНоменклатура».
Вызовем диалог ввода параметров виртуальной таблицы «ЦеныСрезПоследних» и укажем, что период будет передан в параметре «ДатаОтчета».
Затем выберем из таблиц следующие поля:
· «СпрНоменклатура.Родитель»,
· «СпрНоменклатура.Ссылка»,
· «ЦеныСрезПоследних.Цена»:
Перейдем на закладку «Связи» и сбросим флаг «Все» у таблицы регистра и установим его у таблицы справочника.
На закладке «Условия» зададим условие выбора элементов справочника «Номенклатура» - выбираемые элементы должны соответствовать виду номенклатуры переданному в параметре запроса «ВидНоменклатуры»:
На закладке «Объединения/Псевдонимы» укажем, что поле «Родитель» будет иметь псевдоним «ГруппаУслуг», а поле «Ссылка» - «Услуга»:
Перейдем на закладку «Итоги» и укажем, что группировка будет производиться по полю «ГруппаУслуг» с типом итогов «Элементы и иерархия», а значения суммируемых полей задавать не станем:
|
|
На закладке «Отчет» сбросим флаг «Использовать построитель отчета».
На закладке «Выходная форма» отметим, что тип параметра «ДатаОтчета» будет Дата, а параметр «ВидНоменклатуры» в форме редактироваться не будет.
Нажмем «ОК».
Откроем модуль формы и в процедуре «ПереченьУслуг» определим значение параметра запроса:
…
Запрос.УстановитьПараметр("ВидНоменклатуры", Перечисления.ВидыНоменклатуры.Услуга);
Запрос.УстановитьПараметр("ДатаОтчета",ДатаОтчета);
…
Теперь рассмотрим текст запроса, сформированный конструктором:
…
Запрос.Текст =
"ВЫБРАТЬ
СпрНоменклатура.Родитель КАК ГруппаУслуг,
СпрНоменклатура.Родитель.Представление,
СпрНоменклатура.Ссылка КАК Услуга,
СпрНоменклатура.Представление,
ЦеныСрезПоследних.Цена
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаОтчета,)
КАК ЦеныСрезПоследних
ПО ЦеныСрезПоследних.Номенклатура = СпрНоменклатура.Ссылка
ГДЕ
СпрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры
|
|
ИТОГИ ПО
ГруппаУслуг ИЕРАРХИЯ";
…
Практически все конструкции, использованные в этом запросе, нам уже известны, за исключением ключевого слова ИЕРАРХИЯ, использованного в части описания итогов. Это ключевое слово позволяет рассчитывать итоги по иерархии справочника, однако поскольку в нашем случае какие либо итоги в отчете не нужны, мы использовали эту возможность для создания группировок по иерархии справочника «Номенклатура».
Теперь запустим 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!