- •2.10 Лабораторная работа № 10. Конструктор запросов.
- •2.10.1. Теоретические сведения
- •2.10.1.1 Отчет «РеестрДокументовОказаниеУслуги»
- •2.10.1.2 Отчет «Рейтинг услуг»
- •2.10.1.3 Отчет «ВыручкаМастеров»
- •2.10.1.4 Отчет «ПереченьУслуг»
- •2.10.1.5 Отчет «РейтингКлиентов»
- •2.10.1.5.1 Диаграмма
- •2.10.1.5.2 Создание отчета «РейтингКлиентов»
- •2.10.1.6 Универсальный отчет
- •2.10.2 Задание на лабораторную работу
- •2.10.3 Контрольные вопросы
2.10.1.4 Отчет «ПереченьУслуг»
Отчет «Перечень услуг» будет содержать информацию о том, какие услуги и по какой цене оказывает предприятие. На его примере мы познакомимся с возможностью получения последних значений из периодического регистра сведений и вывода иерархических справочников. Создадим новый объект конфигурации «Отчет «ПереченьУслуг»».
Рис. 46
Перейдем на закладку «Макеты» и вызовем конструктов выходной формы.
Рис. 47
Выберем объектную (ссылочную) таблицу справочника «Номенклатура» и виртуальную таблицу регистра сведений «ЦеныНоменклатуры.СрезПоследних». Для того чтобы исключить неоднозначность имен в запросе, переименуем таблицу «Номенклатура» в «СпрНоменклатура».
Рис. 48
Вызовем диалог ввода параметров виртуальной таблицы «ЦеныСрезПоследних» и укажем, что период будет передан в параметре «ДатаОтчета».
Рис. 49
Затем выберем из таблиц следующие поля:
«СпрНоменклатура.Родитель»,
«СпрНоменклатура.Ссылка»,
«ЦеныСрезПоследних.Цена».
Рис. 50
Перейдем на закладку «Связи» и сбросим флаг «Все» у таблицы регистра и установим его у таблицы справочника.
Рис. 51
На закладке «Условия» зададим условие выбора элементов справочника «Номенклатура» - выбираемые элементы должны принадлежать группе, переданной в параметре запроса «ВидНоменклатуры»:
Рис. 52
На закладке «ОбъединенияПсевдонимы» укажем, что поле «Родитель» будет иметь псевдоним «ГруппаУслуг», а поле «Ссылка» - «Услуга».
Рис. 53
Перейдем на закладку «Итоги» и укажем, что группировка будет производиться по полю «ГруппаУслуг» с типом итогов «Элементы и иерархия», а значения суммируемых полей задавать не станем.
Рис. 54
На закладке «Отчет» сбросим флаг «Использовать построитель отчета». На закладке «Выходная форма» отметим, что тип параметра «ДатаОтчета» будет «Дата», а параметр «ВидНоменклатуры» в форме редактироваться не будет. Нажмем «ОК».
Рис. 55
Откроем модуль формы и в процедуре «ДействияФормыПереченьУслугСформировать()» определим значение параметра процедуры «ПереченьУслуг».
Рис. 56
Откроем модуль формы и в процедуре «ПереченьУслуг()» определим значение параметра запроса.
Рис. 57
Теперь рассмотрим текст запроса, сформированный конструктором. Практически все конструкции, использованные в этом запросе, нам уже известны, за исключением ключевого слова «ИЕРАРХИЯ», использованного в части описания итогов. Это ключевое слово позволяет рассчитывать итоги по иерархии справочника, однако поскольку в нашем случае какие либо итоги в отчете не нужны, мы использовали эту возможность для создания группировок по иерархии справочника «Номенклатура». Теперь запустим 1С:Предприятие в режиме отладки и, прежде всего, откроем периодический регистр «ЦеныНоменклатуры» и добавим изменение цены некоторой услуги на текущую дату. После этого выполним отчет «Переченьуслуг» на текущую дату, и убедимся, что в отчет выдается последняя исправленная цена. Затем выполним отчет «Переченьуслуг» на предыдущую дату, и убедимся, что в отчет выдается старое значение цены.
Таким образом, на примере этого отчета мы показали, как при помощи запроса можно получить последние значения из периодического регистра сведений и как вывести группировки по иерархии справочника.
Рис. 58