На примере этого отчета мы продемонстрируем другие, не рассмотренные ранее возможности системы компоновки данных, а также использование в схеме компоновки вложенного отчета. Разработаем простой отчет, представляющий список услуг фирмы и соответствующую информацию из отчета продаж номенклатуры для каждой услуги (рис. 2.193).
Рис. 2.193. Требуемый вид отчета
Создадим новый объект конфигурации Отчет и назовем его ОказаниеУслуг. Откроем конструктор схемы компоновки данных и добавим новый набор данных – запрос. Откроем конструктор запроса. В качестве источника данных для запроса выберем объектную таблицу справочника Номенклатура. В список полей перенесем поля из этой таблицы:
Поле Ссылка нам понадобится в качестве ссылки на вложенную схему компоновки данных. Перейдем на закладку Условия, раскроем таблицу Номенклатура и перетащим мышью поле ВидНоменклатуры в список условий. Оставим предложенное условие по умолчанию. Это условие нам нужно, чтобы в отчете отражались только услуги из справочника номенклатуры (рис. 2.194).
Рис. 2.194. Создание условия запроса
Нажмем ОК и вернемся в конструктор схемы компоновки данных. На закладке Параметры мы видим параметры компоновки данных, созданные платформой. Для параметра ВидНоменклатуры по умолчанию установлен тип ПеречислениеСсылка.ВидыНоменклатуры и установлена его недоступность для пользователя. Зададим значение параметра по умолчанию – Перечисление.ВидыНоменклатуры.Услуги (рис. 2.195).
Рис. 2.195. Параметры компоновки данных, созданные платформой
Определим структуру отчета. На закладке Настройки выделим корневой элемент Отчет и добавим группировку без указания группировочного поля ДетальныеЗаписи. Затем на закладке Выбранные поля перенесем из списка доступных полей поля (рис. 2.196):
Рис. 2.196. Определение полей и группировок отчета
На закладке Сортировка укажем, что данные в отчете будут упорядочиваться по полю Наименование. Для этого перенесем это поле из списка доступных полей в список сортировки. Но вместо стандартного представления для этого поля на закладке Наборы данных мы зададим собственное выражение, по которому и будет проводиться упорядочивание записей в отчете (). Нажав кнопку выбора для поля Наименование в колонке Выражение упорядочивания, вызовем диалог его свойств, который содержит:
Нажмем кнопку Добавить и введем в колонку Выражение следующий текст (листинг 2.31).
Листинг 2.31. Выражение для упорядочивания поля «Наименование»
Выбор Когда Наименование = "Ремонт компьютера" Тогда 1 Иначе 2 Конец
Укажем Тип упорядочивания – По возрастанию. Нажмем еще раз кнопку Добавить и выберем в колонке Выражение поле Код. Укажем Тип упорядочивания – По убыванию. Таким образом, мы установили, что первой в списке услуг должна располагаться услуга с наименованием Ремонт компьютера, а остальные записи в отчете должны располагаться по мере убывания кода услуги. В результате окно диалога примет вид (рис. 2.197).
Рис. 2.197. Задание выражения упорядочивания
В результате выражение упорядочивания для поля Наименование примет вид (рис. 2.198).
Рис. 2.198. Выражение упорядочивания для поля «Наименование»