Практическая работа № 9
Тема: План видов расчета, регистр расчета, выполнение заданий по расписанию, настройки командного интерфейса, приемы разработки форм
Цель: Формирование умения и навыков создания плана видов расчетов, регистра расчета, настройка интерфейса.
Время выполнения: 10 часов
Теоретический материал
В этой работе мы познакомимся с системой компоновки данных. Для этого создадим шесть отчетов.
Чаще всего данные, необходимые для отчета, находятся в базе данных. Для указания системе компоновки данных, какая информация и откуда должна быть получена, используется язык запросов.
В начале этой работы мы познакомимся с общими сведениями о языке запросов системы 1С: Предприятие и о системе компоновки данных.
Способы доступа к данным
Система поддерживает два способа доступа к данным, хранящимся в БД:
• Объектный (для чтения и записи),
• Табличный (для чтения).
Объектный способ реализован через использование объектов встроенного языка.
Важная особенность этого способа - при обращении к объекту встроенного языка, мы обращаемся к совокупности данных в БД как к единому целому.
Например, объект ДокументОбъект.ОказаниеУслуги будет содержать значения всех реквизитов документа ОказаниеУслуги и всех его табличных частей.
Объектный способ обеспечивает сохранение целостности объектов, их кэширование, вызов соответствующих обработчиков событий и т.д.
Табличный способ доступа к данным реализован с помощью запросов к БД наязыке запросов.
В данном способе разработчик получает возможность оперировать отдельными полями таблиц.
Этот способ предназначен для отбора, группировки, сортировки, объединения выборок, расчета итогов и т.д. Т.е. оптимизирован для обработки больших объемов информации в БД и получения данных по заданным критериям.
Работа с запросами
Для работы с запросами используется объект встроенного языка Запрос. Он позволяет получать информацию, хранящуюся в полях БД в виде выборки.
Исходную информацию запрос получает из набора таблиц. Все таблицы, которыми оперирует язык запросов, можно разделить на группы.
|
Рисунок 98 – Таблица запроса
Реальные таблицы содержат данные одной реальной таблицы в БД. Виртуальные таблицы формируются в основном из данных нескольких таблиц БД. Общим для виртуальных таблиц является то, что им можно задать ряд параметров, определяющих, какие данные будут в них включены.
Объектные (ссылочные) таблицы представляют информацию ссылочных типов данных (справочники, документы, планы видов характеристик и т.д.). Анеобъектные (нессылочные) - все остальные типы данных (константы, регистры и т.д.).
Отличительной особенностьюобъектных таблиц является то, что они включают в себя поле Ссылка, содержащее ссылку на текущую запись. Для таких таблиц возможно получение пользовательского представления объекта.
Язык запросов
Текст запроса может состоять из нескольких частей:
• Описание запроса,
• Объединение результатов,
• Упорядочивание результатов
• Автоупорядочивание,
• Описание итогов.
Обязательная часть запроса - первая. Остальные присутствуют по необходимости.
Описание запроса определяет источники данных, поля выборки, группировки и т.д.
Мы не будем писать запросы «руками». Для большинства отчетов с помощьюсистемы компоновки данных, запрос можно создать при помощи конструктора запросов.
Поэтому наша задача в этой работе - научиться читать и понимать тексты этих запросов, чтобы в дальнейшем иметь возможность изменять их.
Система компоновки данных
Она предназначена для создания произвольных отчетов в системе 1С: Предприятие и состоит из нескольких основных частей.
Исходные данные для компоновки отчета содержит в себесхема компоновки данных. Это наборы данных и методы работы с ними.
Отчет системы компоновки имеет сложную иерархическую структуру и может состоять из различных элементов (группировки, таблицы, диаграммы).
Пользователь может изменить существующую структуру отчета или создать новую, может настроить необходимый ему отбор, оформление элементов структуры, получить расшифровку по каждому элементу и т.д.
Последовательность работы системы компоновки можно представить так:
Разработчик создаетсхему компоновки данных и настройки по умолчанию. На основе этогокомпоновщик макета создает макет. Процессор компоновки выбирает данные из информационной базы согласно макету, собирает и оформляет эти данные.Результат компоновки обрабатываетсяпроцессором вывода и пользователь получает результирующий табличный документ.
Рисунок 99 - Схема работы системы компоновки данных
Выбор данных из одной таблицы
Создадим отчёт Реестр документов оказание услуги, используя систему компоновки данных.
На примере этого отчета мы покажем, как выбрать данные из одной таблицы и как вывести их в определенном порядке, а также познакомимся, как использовать расшифровку в готовом отчете. Этот отчёт будет выводить список существующих в базе данных документов ОказаниеУслуги в порядке их дат и номеров.
Добавим в Конфигураторе объект конфигурации Отчёт. Повторим первые шаги по созданию отчета, описанные в работе №6.
Установите свойство Расширенное представление как Список оказанных услуг для представления отчета в интерфейсе программы.
Создайте схему компоновки данных для отчета. Для этого нажмите кнопку Открыть схему компоновки данных или кнопку со значком лупы.
Рисунок 100 –Схема компоновки данных
В открывшемся окне нажмите Готово. В конструкторе схемы компоновки создайте Набор данных - запрос.
Рисунок 101 – Создание запроса
Запрос для набора данных
Нажмите кнопку Конструктор запроса. В качестве источника данных для запроса выберите объектную (ссылочную) таблицу документа ОказаниеУслуги. Из этой таблицы выберите следующие поля:
• Склад
• Мастер
• Клиент
• Ссылка
Рисунок 102 – Выбор полей
Перейдите на закладку Объединения/Псевдонимы и укажите, что поле Ссылка будет иметь псевдоним Документ.
Совет: имена полей лучше изменять в запросе, т.к. в этом случае в схему компоновки данных они перенесутся сразу в три колонки: Поле, Путь и Заголовок, и не нужно будет лишний раз их менять
Рисунок 103 – Обединение/Псевдоним
Перейдите в закладку Порядок и укажите, что результат запроса должен быть упорядочен по значению поля Документ.
Рисунок 104– Упорядочивание документа
Анализ текста запроса
Нажмите ОК и посмотрите, какой запрос сформировал конструктор:
Рисунок 104 – Код конструктора
Если Вы знакомы с языком SQL, то увидите, что это его аналог на русском.
Описание запроса начинается с обязательного ключевого слова ВЫБРАТЬ. Затем следует список полей выборки. В нем описываются поля, которые должны содержаться в результате запроса. Этот список может содержать как сами поля, так и выражения, вычисляемые на основе значений полей.
После ключевого слова ИЗ указываютсяисточники данных - исходные таблицы запроса, содержимое которых обрабатывается в запросе.
После ключевого слова КАК указывается псевдоним источника данных, чтобы в дальнейшем обращаться к этому источнику через псевдоним.
Предложение УПОРЯДОЧИТЬ ПО позволяет сортировать строки в результате запроса. После этого оператора располагается выражение упорядочивания, которое представляет собой перечисление полей (выражений) и порядка вывода.
Настройки
Перейдите на закладку Настройки и создайте стандартные настройки, определяющие вывод информации в отчете.
Иерархическая структура отчета может содержать в различных сочетания три основных элемента:
• Группировка - для вывода информации в виде обычного линейного отчета.
• Таблица - для вывода информации в виде таблицы.
• Диаграмма - для вывода информации в виде диаграммы.
Для добавления нового элемента, в нашем случае группировки, выделите в дереве структуры отчета корневой элемент Отчет и вызовите его контекстное меню. Можно также нажать кнопку Добавить, расположенную в командной панели окна или нажать клавишу Insert.
Рисунок 105 – Новая группировка
В окне выбора поля группировки просто нажмите ОК (указываем, что будут выводиться детальные записи из информационной базы).
В структуре отчета появится группировка Детальные записи.
На закладке Выбранные поля перенесите мышью из списка доступных полей те, которые будут выводиться в отчет:
• Документ
• Склад
• Мастер
• Клиент
Рисунок 106 – Включение полей в отчет
На этом создание отчета закончено. В заключение определим, в каких подсистемах будет отображаться наш отчет.
Закройте конструктор схемы компоновки данных и в окне редактирования объекта конфигурации Отчет
РеестрДокументовОказаниеУслгуи перейдите на закладку Подсистемы.
Отметьте в списке подсистему ОказаниеУслуг. Так наш отчет попадет в панель действий этой подсистемы.
Рисунок 107 - Подсистемы
Запустите 1С: Предприятие в режиме отладки и посмотрите, как работает отчет.
Рисунок 108 –Список связанных услег
В открывшемся окне мы видим, что в панели действий раздела Оказание услуг в группе команд для выполнения отчетов появилась команда для формирования отчета Реестр документов оказание услуги. Причем если подвести к ней мышь, то появится всплывающая подсказка Список оказанных услуг, которая определяется свойством Расширенное представление, заданное нами для отчета.
Выполните эту команду и перед Вами откроется форма отчета, автоматически сформированная системой.
Заметьте, что заголовок этой формы называется Список оказанных услуг и определяется свойством Расширенное представление.
Нажмите кнопку Сформировать.
Рисунок 109 – Формировние документа
Отчет содержит реестр документов Оказание услуги. Двойным щелчком на поле Документ мы можем открыть исходный документ, а также выполнить другие действия расшифровки, которые предоставляет нам система компоновки данных.
Таким образом, на примере этого отчета мы показали, как использовать конструктор схемы компоновки данных и познакомились с некоторыми основными конструкциями языка запросов.
Выбор данных из двух таблиц
Отчет Рейтинг услуг будет содержать информацию о том, выполнение каких услуг принесло нашей фирме наибольшую прибыль в указанном периоде.
На примере этого отчета будет показано, как отбирать данные в некотором периоде, как задавать параметры запроса, как использовать в запросе данные из нескольких таблиц и как включать в результат запроса все данные одного из источников. Также вы узнаете, как работать с параметрами системы компоновки данных, как использовать стандартные даты и быстрые пользовательские настройки отчетов.
Закройте режим отладки. Добавьте новый объект конфигурации Отчет. Назовите его РейтингУслуг и запустите конструктор схемы компоновки данных. Добавьте новый Набор данных - запрос и вызовите конструктор запроса.
Запрос для набора данных
Левое соединение двух таблиц
В качестве источника данных для запроса выберите объектную (ссылочную) таблицу Номенклатура и виртуальную таблицу регистра накопления Продажи.Обороты.
Чтобы исключить неоднозначность имен в запросе, переименуйте таблицу Номенклатура в спрНоменклатура. Для этого выделите ее в списке Таблицы, в контекстном меню выберите Переименовать таблицу.
Рисунок 110 – Переименование таблицы
В список полей перенесите поля СпрНоменклатура.Ссылка и ПродажиОбороты.ВыручкаОборот из этих таблиц.
Рисунок 111 – Включение полей
Перейдите на закладку Связи. Т.к. в запросе участвует несколько таблиц, необходимо определить связи между ними.
По умолчанию уже будет создана связь по полю Номенклатура. Т.е. значение измерения Номенклатура регистра Продажи должно быть равно ссылке на элемент справочника Номенклатура.
Рисунок 112 – регистр Продажи
Нужно снять флажок Все у таблицы ПродажиОбороты и установить его там же у таблицы спрНоменклатура. Тем самым мы задаем тип связи Левое соединение, т.е. в результат запроса будут включены все записи справочника Номенклатура и те записи регистра Продажи, которые удовлетворяют условию связи по полю Номенклатура.
Рисунок 113 – Включить записи
Условие отбора записей
Перейдите на закладку Условия и установите отбор, чтобы группы справочника Номенклатура не попадали в отчет. Для этого раскройте таблицу спрНоменклатура, перетащите мышью поле ЭтоГруппа в список условий, установите флажок Произвольное и напишите в поле Условие следующий текст:
Тем самым мы указали, что из БД нужно выбрать только те записи справочника Номенклатура, которые не являются группами.
Создайте второе условие, что выбранный элемент является услугой. Это Простое условие. Для его создания перетащите поле ВидНоменклатуры в список условий. Сформируется условие, когда вид номенклатуры должен быть равен значению параметра ВидНоменклатуры. В дальнейшем перед выполнением запроса мы передадим в параметр ВидНоменклатуры значение перечисления - Услуга.
Рисунок 114 – Выбор полей
Псевдонимы полей
Перейдите на закладку Объединения/Псевдонимы и укажите, что поле Ссылка будет иметь псевдоним Услуга, а поле регистра будет иметь псевдоним Выручка.
Рисунок 115 – Создание нового поля
Порядок записей
Перейдите на закладку Порядок и укажите, что результат запроса должен быть отсортирован по убыванию значения поля Выручка.
Рисунок 116 – Выручка
Создание запроса закончено, нажмите ОК и вернитесь в конструктор схемы компоновки данных.
Анализ текста запроса
Текст запроса, сформированный платформой примет вид:
Рисунок 117 – Код запроса
Сначала идет часть описания
запроса и в ней есть новые для нас конструкции.
При описании источников запроса (после ИЗ)
использована возможность определения нескольких источников запроса. В данном
случае выбираются записи из двух источников: спрНоменклатура и ПродажиОбороты,
причем ключевым предложением ЛЕВОЕ СОЕДИНЕНИЕ...ПО описан способ, которым будут
соединены записи этих двух источников.
ЛЕВОЕ СОЕДИНЕНИЕ означает, что в результат запроса нужно включить комбинации записей из обоих источников, которые соответствуют указанному после ключевого слова ПО условию. Кроме этого, в результат запроса нужно включить еще и записи из первого (указанного слева от слова СОЕДИНЕНИЕ) источника, для которых не найдено соответствующих условию записей из второго источника.
В части описания запроса есть еще одна новая конструкция - задание условий отбора данных из исходных таблиц.
Условию отбора всегда предшествует оператор ГДЕ. После него описывается условие. Обратите внимание, что поля исходных таблиц, на которые накладывается условие, могут и не входить в список выборки (как в нашем случае). Кроме того, в нашем условии использован параметр запроса ВидНоменклатуры (перед именем параметра указывается символ & - амперсанд). & - Используется в языке запросов для указания системе, что далее будет использовано имя внешнего параметра. Имя задается в соотвествии с правилами формирования идентификаторов. Внешние параметры используются в тех случаях, когда в момент формирования системой текста запроса в режиме исполнения этот параметр может быть заменен конкретным значением. Для определения значения параметра необходимо использовать метод объекта встроенного языка "Запрос" - УстановитьПараметр().
Ресурсы
В нашем отчете мы хотим видеть итоговые значения выручки для каждой услуги. Для этого нам нужно определить поля ресурсов отчета.
Ресурсы в системе компоновки - поля, значения которых рассчитываются на основании детальных записей, входящих в группировку. По сути, ресурсы являются групповыми или общими итогами отчета.
Итоговые данные формируются на закладке Ресурсы. Перейдите туда и выберите все доступные ресурсы, по которым можно вычислять итоги. В нашем случае это единственный ресурс Выручка. По умолчанию рассчитывается сумма этого поля, что нам и нужно.
Рисунок 118 – Ресурс
Параметры
Параметры отчета задают условия отбора записей в отчет. Перейдите на закладку Параметры.
Вы увидите еще два параметра, которые не задавали - начало периода и конец периода расчета итогов. Они задаются с точностью до секунды.
Допустим, заранее известно, что пользователю не нужно будет задавать период с точностью до секунды.
Во-первых, для этого нужно избавить пользователя от необходимости указывать время при вводе даты периода, за который формируется отчет.
Изменим существующее описание типа для параметра НачалоПериода.
Вернитесь на закладку Параметры схемы компоновки данных и дважды щелкните на ячейке Тип параметра НачалоПериода. Нажмите кнопку выбора и в нижней части окна редактирования типа данных установим Состав даты в значение Дата.
Во-вторых, по умолчанию время в дате установлено 00:00:00, поэтому если пользователь задаст период отчета с 01.07.2011 по 14.07.2011, итоги регистра будут рассчитаны с начала дня 01.07 00:00:00 по начало дня 14.07 00:00:00. Т.о. данные за 14-е число, отличные от начала дня, в расчет не войдут, что сильно удивит пользователя.
Чтобы исключить эту ситуацию, добавим еще один параметр, в который пользователь будет вводить дату окончания. А значение параметра КонецПериода будем рассчитывать автоматически так, чтобы оно указывало на конец дня даты, введенной пользователем.
Рисунок 119 – Состав Дата
Для параметра КонецПериода установите флажок Ограничение доступности.
Если этот флажок не установлен, то параметр будет доступен для настройки пользователем. Если же установить, то пользователь не увидит этот параметр.
Нажмите кнопку Добавить - параметр с именем ДатаОкончания. Автоматически сформируется заголовок Дата окончания. Оставим его без изменений. Тип значения - Дата. При этом, как и для параметра НачалоПериода, укажите состав даты - Дата. Для параметра НачалоПериода задайте заголовок, который будет отображаться пользователю - Дата начала.
Перейдите к параметру КонецПериода. Зададим формулу вычисления значения этого параметра через язык выражений системы компоновки. В нем есть функция КонецПериода(), которая позволяет получить дату, соответствующую концу какого-либо периода.
В ячейке Выражение напишите следующее выражение:
Рисунок 120 – Выбор полей
Настроим параметр ВидНоменклатуры.
Поскольку отчет должен отображать выручку, полученную только от реализации услуг, значение параметра ВидНоменклатуры пользователь изменять не должен. Оно должно быть задано непосредственном в схеме компоновки какПеречисление. ВидыНоменклатуры.Услуга.
Воспользуйтесь кнопкой выбора значения и выберите из списка Услуга.
Рисунок 121 – Кнопка выбора
Рисунок 122 – Значение
Настройки
Перейдем к формированию структуры отчета. На вкладке Настройки добавьте группировку и не указывайте поле группировки.
На закладке Выбранные поля укажите поля Услуга и Выручка.
Рисунок 123 – Выбранные поля
Затем перейдите на вкладку Другие настройки и задайте заголовок отчета - Рейтинг услуг.
Рисунок 124 – Заголовок отчета
Быстрые пользовательские настройки
В заключение мы должны предоставить пользователю возможность задавать отчетный период перед формированием отчета. Т.е. параметры ДатаНачала и ДатаОкончания должны быть включены в состав пользовательских настроек, отображаемых в форме отчета.
На вкладке Параметры выделите по очереди каждый из параметров и нажмите кнопку Свойства элемента пользовательских настроек в правом нижнем углу окна настроек.
Рисунок 125 – Свойства элемента
Установите флажок Включать в пользовательские настройки и оставьте предложенное по умолчанию значение Быстрый доступ.
Рисунок 126 – Включение в пользовательские настройки
При этом пользователь будет иметь быстрый доступ к настройке даты начала и окончания прямо на форме отчета.
Для улучшения интерфейса пользователя, зададим для параметров Дата Начала и Дата окончания в качестве начальных значений соответственно Начало этого месяца и Начало этого дня. Т.о., при выполнении отчета, даты начала и окончания отчетного периода будут динамически меняться и показывать период с начала текущего месяца по сегодняшнее число и пользователю, возможно, не придется менять их вручную.
Рисунок 127 – Значение
Определим подсистемы для отображения отчета. Закройте конструктор схемы компоновки и в окне редактирования объекта Отчет РейтингУслуг перейдите на вкладку Подсистемы, отметьте ОказаниеУслуг и Бухгалтерия.
Рисунок 128 – Включение в подсистемы
Таким образом, ссылка на наш отчет автоматически попадет в панель действий этих подсистем.
Запустите 1С: Предприятие в режиме отладки, вкладка Оказание услуг. Нажмите на Рейтингуслуг, Сформировать.
Рисунок 127 – Оказание услуг
Рисунок 128 – Результат
Настройки в конфигураторе и в режиме 1С: Предприятие
Теперь на примере этого отчета покажем создание и использование других настроек отчета - Условное оформление и Отбор. В процессе мы будем периодически переходить из Конфигуратора в Предприятие и обратно.
Условное оформление
В отчете Рейтинг услуг удобно было бы выделять цветом записи отчета, содержащие услуги с наименьшей или с наибольшей выручкой или другим условием.
В режиме Конфигуратор
В конфигураторе откройте схему компоновки данных на закладке Настройки.
В нижней части окна перейдите на закладку Условное оформление и нажмите кнопку Добавить. Укажите Оформление - красный цвет текста.
Рисунок 129 – Выбор полей
Затем укажем Условие, при наступлении которого будет применяться оформление (красный текст).
Нажмите кнопку выбора в
поле Условие и в появившемся окне добавьте Новый
Элемент отбора. Каждый элемент задает одно условие. Условий может быть несколько. Нажмите кнопку Добавить и укажите в графе Левое значение - поле Выручка, в графе Вид сравнения - Меньше, в Правое значение - 700. Нажмите ОК.
Т.е. когда в поле Выручка окажется значение меньше 700, что-то будет выделено красным цветом текста.
Рисунок 130 – Выбор полей
Теперь укажем это «что-то», т.е. зададим список оформляемых полей. Если мы хотим выделять всю строку отчета, то можно оставить этот
список пустым. Или же нажать кнопку выбора в поле Оформляемые поля и в появившемся окне
Добавить поля Услуга и Выручка.
Рисунок 131– Добавление полей
В нашем случае этого можно было и не делать, т.к. Услуга и Выручка и есть все поля отчета. Нажмите ОК.
Зададим Представление условного оформления как Непопулярная услуга. Это то, что увидит пользователь в своих настройках. Т.е. вместо пугающей строки «Выручка меньше 700» он увидит осмысленное выражение, которое задано в поле Представление.
Мы задали условное оформление отчета, по которому все услуги с выручкой менее 700 руб. будут считаться непопулярными и выделяться красным цветом. Теперь добавьте это условие в пользовательские настройки.
Рисунок 132 – Представление
Тем самым Вы включили созданную настройку условного оформления в обычные пользовательские настройки. Эти настройки расположены не в форме отчета, а вызываются нажатием кнопки Настройка и появляются в отдельном окне, т.к. эти настройки используются реже, чем настройки отчетного периода.
В режиме 1С: Предприятие
Перейдите в режим отладки. Вызовите отчет. Задайте Дату окончания как Начало этого дня и нажмите Сформировать.
Рисунок 133 – Режим 1С ПРедприятие
Как видите, сумма услуг менее 700 руб. выделена красным. Нажмите кнопку Настройка. Появится окно пользовательских настроек отчета, содержащее параметры отчетного периода и настройку условного оформления Непопулярная услуга.
Снимите флажок использования этой настройки и нажмите Завершить редактирование, снова сформируйте отчет.
Рисунок 134– Формирование отчета
Выделение цветом исчезнет.
Данная настройка условного оформления задана жестко и пользователь может лишь включить или выключить ее. Но для более продвинутых пользователей мы можем предоставить более широкую свободу в использовании настроек, т.е. возможность самостоятельно задавать настройки отчета: отбор, порядок, оформление и прочие. Рассмотрим их в следующем примере.
Пользовательские настройки
В режиме Конфигуратор
Вернитесь в конфигуратор.
На закладке Настройки схемы компоновки нажмите кнопку Свойства
элемента пользовательских настроек расположенную сверху в командной панели окна настроек. Установите галочку использования для настроек Отбор и Условное оформление и свойство Режим редактирования – Обычный.
Рисунок 135 – Выбор полей
Таким образом, мы включили настройки отбора и оформления в состав пользовательских настроек и предоставили пользователю возможность задавать их в отдельном окне, вызываемом кнопкой Настройка.
Отбор
В режиме Конфигуратор
Группировки
Теперь создадим настройку отбора в отчете. Для этого в нижней части окна настроек перейдем на закладку Отбор. Слева увидим список доступных полей отчета. Раскройте поле Услуга и перенесите поле Родитель в список условий отбора в правой части окна. Таким образом, мы создали возможность отбора по группам услуг, которые пользователь может задать в режиме 1С: Предприятие.
Рисунок 136 – Настройка отбора
В режиме 1С: Предприятие
Откройте отчет в режиме 1С: Предприятие и нажмите кнопку Настройка. Появились настройки Отбор и Условное форматирование.
Рисунок 137 – Выбор полей
Сейчас мы зададим отбор в отчете так, чтобы в него
попадали только услуги, относящиеся к установке стиральных машин. Для этого
нажмите кнопку выбора
в окне пользовательских настроек в строке Отбор.В открывшемся окне
Редактирование отбора мы видим созданное нами ранее в конфигураторе условие
отбора. Нажмите в строке Значение, раскройте группу Услуги,
выберите группу Стиральные машины из справочника Номенклатура.
Рисунок 138 – Выбор значения
Нажмите ОК. Т.о. мы задали отбор по услугам, родителем которых является группа Стиральные машины справочника Номенклатура.
Нажмите Завершить редактирование и сформируйте отчет
Рисунок 139 – Выбор полей
Видно, что в отчет включены только услуги по установке стиральных машин и в заголовке отчета отражена информация об отборе.
Вызвав
окно настроек, мы можем очистить настройку отбора, нажав кнопку очистки или создать ее по другому
критерию, нажав кнопку выбора
в строке Отбор.
Таким образом, пользователь может, при наличии определенной квалификации, задавать многие настройки по своему желанию. Если же нет такого желания или способностей, лучше задавать эти настройки жестко, а пользователю останется включать или выключать их использование.
Вернитесь в Конфигуратор и снимите галочку использования у настройки отбора - это нам понадобится в дальнейшем.
Рисунок 140 – Отбор
Вывод данных по всем дням в выбранном порядке
Следующий отчет будет называться Выручка мастеров и будет содержать информацию о том, какая выручка была получена благодаря работе каждого из мастеров, с детализацией по всем дням в выбранном периоде и разворотом по клиентам, обслуженным в каждый из дней.
На примере этого отчета мы покажем, как строить многоуровневые группировки в запросе и как обходить все даты в выбранном периоде. Также покажем настройку отдельных элементов структуры отчета, научимся выводить данные в диаграмму и создавать несколько вариантов отчета в конфигураторе.
В конфигураторе добавьте новый отчет ВыручкаМастеров и запустите конструктор схемы компоновки данных. Добавьте новый Набор данных
- запрос и вызовите конструктор запроса. Источник данных для запроса
- виртуальная таблица регистра накопления Продажи.Обороты.
Запрос для набора данных
Параметры виртуальной таблицы
Задайте один из параметров этой виртуальной таблицы Периодичность. Для этого перейдите в поле Таблицы, выделите таблицу и нажмите Параметры виртуальной таблицы. Задайте значение Периодичность - День. Нажмите ОК.
Рисунок 141– Параметры виртуальной таблицы
После этого выберите из таблицы поля:
• ПродажиОбороты.Мастер
• ПродажиОбороты.Период
• ПродажиОбороты.Клиент
• ПродажиОбороты. ВыручкаОборот
Рисунок 142 – Выбор полей из таблицы
Перейдите на закладку Объединения/Псевдонимы и задайте псевдоним Выручка для поля ПродажиОбороты.ВыручкаОборот.
Рисунок 143 – Обединение/Псевдонимы
Анализ текста запроса
Нажмите ОК и проанализируйте текст запроса, сформированный конструктором.
В части описания запроса обратите внимание, что у источника данных задана периодичность выбираемых данных - День. Именно поэтому у нас появляется возможность описать среди выбранных полей поле Период.
Ресурсы
Перейдите на закладку Ресурсы схемы компоновки и перенесите единственный ресурс Выручка.
Рисунок 144 – Выбор ресурсов
Параметры
Перейдите на закладку Параметры и для параметра НачалоПериода задайте заголовок Дата начала, тип и состав даты - Дата.
Добавьте еще один параметр - ДатаОкончания, тип Дата, состав даты - Дата.
Для параметра КонецПериода задайте выражение и в поле Ограничение доступности установите флажок.
Рисунок 145 – Ограничение допустимости
Настройки
Теперь создадим структуру отчета. На закладке Настройки последовательно создайте две вложенные группировки:
• Верхнего уровня - по полю Мастер
• Вложенная в нее - по полю Период
Рисунок 146 – Настройка
Затем добавьте в группировку Мастер вложенную группировку по полю Период.
Для этого выделите группировку Мастер и нажмите Добавить.
Рисунок 147 – Добавление Мастер
Затем добавим еще одну группировку, вложенную в группировку по полю Период, - Детальные записи (без указания поля группировки).
Рисунок 148 – Включение детальных записей
После перейдите на вкладку Выбранные поля и добавьте в список выбранных полей Клиент и Выручка.
Рисунок 149 – Выбранные поля
Поля Мастер и Период не задаем, т.к. по ним идет группировка, и они будут выведены автоматически.
Перейдите на закладку Другие настройки и измените следующие параметры:
1. Расположение полей группировок - Отдельно и только в итогах.
Рисунок 150 – Другие настройки
Установка этого свойства означает, что каждая группировка будет располагаться в отдельной области отчета слева направо и ее наименование будет выводиться только в данной группировке.
2. Расположение общих итогов по вертикали - Начало.
Установка этого свойства означает, что общие итоги будут отображаться в начале
перед строками группировки.
2. Заголовок - Выручка мастеров.
Затем укажите, что параметры Дата начала и Дата окончания будут включены в состав пользовательских настроек и эти настройки будут находиться в форме (быстрые). Т.о. пользователь перед формированием запроса сможет указать отчетный период.
Рисунок 151 – Другие настройки
Определим, в каких подсистемах будет отображаться наш отчет. Закройте конструктор и перейдите на закладку Подсистемы, отметьте ОказаниеУслуг и РасчетЗарплаты.
В режиме 1С: Предприятие
Запустите отладку. В панели действий разделов Оказание услуг и Расчет зарплаты в группе команд для выполнения отчетов появилась команда для формирования отчета Выручка мастеров. Выполните этот отчет, задав отчетный период.
Рисунок 152 – Расчет зарплаты
Вывод всех дат в выбранном периоде
Этот отчет должен показывать данные с детализацией по всем дням в выбранном периоде. У нас же отображаются только те дни, для которых существуют ненулевые записи в таблице регистра накопления Продажи.
Для детализации данных в отчете система компоновки позволяет указывать для группировокдополнение периодов с заданной периодичностью в указанном интервале. Поэтому сейчас мы изменим настройки отчета, чтобы в отчет попадала каждая дата из периода.
В режиме Конфигуратор
Вернитесь в конфигуратор и откройте схему компоновки на закладке Настройки. До сих пор мы выполняли настройку всего отчета в целом. Но можно настраивать и отдельные его элементы.
Выделите группировку Период в верхней части окна и нажмите кнопку Период в командной панели (рядом с Отчет).
Перейдите на закладку Поля группировки. Для поля Период установите Тип дополнения - День. Тем самым укажем, что для этой группировки существующие записи с ненулевым значением ресурса будут дополняться записями для каждого из дней.
Рисунок 153 – Настройка периода
Рисунок 154 – Настройка периода
После этого нужно указать, в каком именно периоде
будет выполняться такое дополнение. Но нам нужно, чтобы пользователь мог задать
произвольную дату. Для этого зайдите в режим редактирования поля Начальная дата периода, дважды щелкнув на нем, и нажмите
кнопку очистки Затем нажмите кнопку выбора данных
выберите
тип данных Поле компоновки данных.
Рисунок 155 – Выбор типа данных
Нажмите ОК. Теперь нажмите кнопку выбора
и
отметьте параметр НачалоПериода.
Рисунок 156 – Выбор параметра
Для второго периода аналогично укажите, что дата окончания периода будет получена из параметра ДатаОкончания.
Рисунок 157 – Период
В режиме 1С Предприятие Запустите режим отладки и сделайте отчет Выручка мастеров за период выполнения ваших работ
Рисунок 158– Выручка мастера
Новый вариант отчета
Для анализа работы мастеров за определенный период может понадобиться представить информацию в более наглядном виде. Например, в виде диаграммы, отражающей вклад каждого мастера в общую выручку предприятия. Поэтому мы создадим другой вариант отчета ВыручкаМастеров в виде диаграммы
Диаграмма является совокупностью точек, серий и значений серий в точке. В качестветочек используются моменты или объекты, для которых мы получаем значения характеристик, а в качествесерий - характеристики, значения которых нас интересуют. На пересечении серии и точки находитсязначение диаграммы. Например, диаграмма продаж видов номенклатуры по месяцам будет состоять източек - месяцев,серий - видов номенклатуры изначений - оборотов продаж.
В режиме Конфигуратор
Вернитесь в Конфигуратор и откройте схему компоновки на закладке Настройки. В левой части окна находится список вариантов отчета.
При создании настроек отчета в первый раз система компоновки по умолчанию создает Основной вариант настроек.
Чтобы добавить новый вариант, нажмите кнопку Добавить над этим списком. Задайте имя варианта - ОбъемВыручки.
Если у отчета несколько вариантов, то мы видим и можем изменять настройки только выделенного варианта.Добавим в структуру отчета диаграмму с помощью контекстного меню элемента Отчет. Затем выделите ветку Точки и добавьте в нее группировку по полю Мастер. Серии оставим без изменений.
В значения диаграммы всегда выводится один из ресурсов отчета. У нас всего один ресурс - Выручка (поле ресурса помечено особой пиктограммой). Поэтому перейдите на закладку Выбранные поля, нажмите кнопку Отчет и выберите поле Выручка для вывода в отчет.
Рисунок 159 – Настройка периода
На закладке Другие настройки выберите тип диаграммы Измерительная. Прокрутив список свойств диаграммы, задайте ее полосы - Плохо, Хорошо, Отлично.
Рисунок 160 – Другие настройки
Включите параметры Дата начала и Дата окончания в состав быстрых пользовательских настроек (на вкладке Параметры). Учтите, что состав пользовательских настроек для каждого варианта отчета - свой.
В режиме 1С: Предприятие
Запустите отладку и выполните Выручка мастеров в панели действий Расчет зарплаты. Нажмите Выбрать вариант, выделите Объем выручки и Выбрать.
Рисунок 161 – Объем выручки
Задайте отчетный период и сформируйте отчет.
Рисунок 162 – Отчет о объеме выручки
Если же понадобится просмотреть данные о работе какого-либо мастера с разбивкой по дням и клиентам, достаточно выбрать Основной вариант отчета и переформировать его.
Т.о. на примере отчета Выручка мастеров мы показали создание и использование различных вариантов отчета в целях наилучшего представления информации о работе мастеров.
Получение актуальных значений из периодического регистра сведений
Следующий отчет - Перечень услуг - будет содержать информацию о том, какие услуги и по какой цене оказывает наша фирма
На его примере мы познакомимся с возможностью получения последних значений из периодического регистра сведений и с возможностью вывода иерархических справочников.
В режиме Конфигуратор
Добавьте новый отчет ПереченьУслуг и запустите конструктор схемы компоновки данных. Добавьте новый Набор данных - запрос и вызовите конструктор запроса.
Запрос для набора данных
В качестве источника данных для запроса выберете объектную (ссылочную) таблицу справочника Номенклатура и виртуальную таблицу регистра сведений Цены.СрезПоследних. Переименуйте таблицу Номенклатура в СпрНоменклатура
Рисунок 163 – Номенклатура
Параметры виртуальной таблицы
Вызовите диалог ввода параметров виртуальной таблицы ЦеныСрезПоследних и укажите, что период будет передан в параметре ДатаОтчета. Затем выберете следующие поля из таблиц:
• СпрНоменклатура.Родитель
• СпрНоменклатура.Ссылка
• ЦеныСрезПоследних.Цена
Рисунок 164 – Параметры виртуальной таблицы
Рисунок 165 – Параметры виртуальной таблицы
Левое соединение таблиц
Перейдите на закладку Связи и укажите в поле Условие связи, что значение измерения Номенклатура регистра сведений должно быть равно ссылке на элемент справочника Номенклатура. А также снимите флажок Все у таблицы регистра и установите его у таблицы справочника, тем самым установив вид связи каклевое соединение для таблицы справочника.
Рисунок 166 – Левое соединение
На закладке Условия задайте условие выбора элементов справочника Номенклатура - выбираемые элементы должны соответствовать виду номенклатуры, переданному в параметре запроса Вид Номенклатуры.
Рисунок 167 – Условие выбора
Псевдонимы полей
На закладке Объединения/Псевдонимы укажите, что поле Родитель будет иметь псевдоним ГруппаУслуг, а поле Ссылка - Услуга. Нажмите ОК.
Рисунок 168– Объединение
Анализ текста запроса
Рассмотрим текст запроса, сформированного конструктором.
Перейдем к редактированию схемы компоновки данных. На закладке Ресурсы выберем единственный доступный ресурс - Цена.
Параметры
На закладке Параметры задайте значения параметра ВидНоменклатуры как Перечисление.ВидыНоменклатуры.Услуга.
Снимите ограничение доступности для параметра ДатаОтчета. В поле Тип этого параметра задайте состав даты - Дата.
Для параметра Период, наоборот, установите ограничение доступности.
Рисунок 169 – Параметры
Настройки
Перейдите на закладку Настройки и создайте группировку по полю ГруппаУслуг с типом группировки Иерархия.
Существуют следующие типы иерархии для группировки отчета:
• Без иерархии - в группировке выводятся только неиерархические записи.
• Иерархия - выводятся неиерархические и иерархические записи.
• Только иерархия - выводятся только иерархические записи.
Рисунок 170– Группировка
Внутри этой группировки создайте еще одну без указания группового поля.Она будет содержать детальные записи отчета.
Перейдите на закладку внизу
Выбранные поля и укажите поля Услуга и Цена.
Теперь перейдем на закладку Другие настройки и определим внешний вид отчета.
Т.к. наш отчет будет представлять собой просто список оказываемых услуг, в котором интересны цены на конкретные услуги, выводить значения ресурса Цена для каждой из группировок и для всего отчета не имеет смысла. Чтобы запретить вывод общих итогов в отчете, установите параметр Отчета Расположение общих итогов по вертикали в значение Нет.
Затем перейдите к настройкам конкретной группировки - ГруппаУслуг. Для параметра РасположениеИтогов этой группировки укажите Нет.
Рисунок 171 – Настройка группировки
Вернитесь к настройкам отчета в целом. Для параметра Расположение полей группировок укажите значение Отдельно и только в итогах(так наш отчет будет лучше читаться). Задайте заголовок отчета - Перечень услуг
Рисунок 172 – Перечень услуг
Включите параметр Дата отчета в состав пользовательских быстрых настроек (вкладка Параметры в нижнем окне). Также определите, в каких подсистемах будет отображаться наш отчет - Оказание услуг и Бухгалтерия.
В режиме 1С: Предприятие
Запустите отладку и откройте периодический регистр Цены на номенклатуру. Добавьте в него еще одно значение для услуги Диагностика: новая цена услуги на текущее число - 350. Это позволит нам протестировать отчет.
Рисунок 173 – Цены на номенклатуру
Теперь выполним отчет Перечень услуг по состоянию на пару дней раньше текущей даты (у меня это 01.04.2011).
Рисунок 174 – Отчет Перечень услуг
Наш отчет правильно отражает цену услуги Диагностика на прошлые числа - 200р. Еще раз сформируйте отчет, но уже на текущую дату (или на день позже).
Рисунок 175– Результат перечень услуг
Как видите, показана новая цена услуги Диагностика - 350 р.
На примере этого отчета было показано, как система компоновки данных получает последние значения из периодического регистра сведений и как вывести группировки по иерархии справочника.
Использование вычисляемого поля в отчете
Следующий отчет - Рейтинг клиентов - будет показывать в графическом виде доход от оказания услуг каждому из клиентов за все время работы фирмы. На его примере мы продемонстрируем возможность использования вычисляемого поля и вывод результата в виде круговой диаграммы и гистограммы.
В режиме Конфигуратор
Добавьте новый отчет РейтингКлиентов и запустите конструктор схемы компоновки. Создайте новый Набор данных - запрос и вызовите конструктор запроса.
Запрос для набора данных
В качестве источника данных для запроса выберем виртуальную таблицу регистра
накопления Продажи.Обороты. Затем выберем из нее следующие поля:
• ПродажиОбороты.Клиент
• ПродажиОбороты.ВыручкаОборот
• ПродажиОбороты. СтоимостьОборот
Рисунок 176 – Настройка периода
На закладке Объединения/Псевдонимы укажите, что поле ВыручкаОборот будет иметь псевдоним Выручка, а поле СтоимостьОборот - Стоимость. Нажмите ОК.
Ничего нового и непонятного в запросе нет, поэтому рассматривать его не будем. Перейдем к редактированию схемы компоновки данных.
Вычисляемые поля
Теперь нам нужно создать дополнительное поле для отображения дохода от оказания услуг в разрезе клиентов. Для этого в системе компоновки есть возможность определениявычисляемого поля.
Вычисляемое поле - дополнительное поле схемы компоновки, значения которых будут вычисляться по некоторой формуле.
Перейдите на закладку Вычисляемые поля и нажмите Добавить.
Задайте имя в колонке Путь к данным - Доход. В колонку Выражение введите следующее выражение:
Рисунок 177 – Настройка периода
Ресурсы
На закладке Ресурсы выберите все доступные ресурсы отчета.
Рисунок 178 – Выбор ресурсов
Настройки
На закладке Настройки добавьте в структуру отчета диаграмму. Затем выделите ветку Точки и добавьте в нее группировку по полю Клиент. В значения диаграммы всегда выводится один из ресурсов отчета.
Рисунок 179 – Настройка диаграммы
Перейдите на закладку Выбранные поля и выберете поле Доход для вывода в отчет
Рисунок 180 – Выбранные поля
На закладке Другие настройки выберете тип диаграммы - Круговая объемная и задайте заголовок отчета - Рейтинг клиентов. Отметьте в списке подсистем Оказание услуг и Бухгалтерия.
В режиме 1С: Предприятие
Запустите режим отладки и выполните Рейтинг клиентов в панели действий Бухгалтерии. Нажмите Сформировать.
Рисунок 181– Рейтинг клиентов
Вернитесь в конфигуратор и измените тип диаграммы на Гистограмма объемная. Заново сформируйте отчет.
Таким образом, мы продемонстрировали, как можно использовать различные виды диаграмм для визуализации данных отчета
Рисунок 182 – Рейтинг клиентов
Вывод данных в таблицу
На примере создания универсального отчета, мы продемонстрируем вывод данных в таблицу.
Мы покажем как сделать отчет максимально универсальным, чтобы позволить пользователю в режиме 1С: Предприятие, не обращаясь к полным настройкам отчета ( не выполняя Все действия - Изменить вариант), изменять его структуру и внешний вид. Например, поменять местами строки и колонки таблицы или изменить данные, выводящиеся в ячейках таблицы.
В режиме Конфигуратор
Добавим новый отчет Универсальный и запустим конструктор компоновки данных. Создайте новый Набор данных - запрос и зайдите в конструктор запроса.
Запрос для набора данных
В качестве источника данных для запроса выберем виртуальную таблицу регистра накопления Продажи.Обороты. Затем выберем из нее указанные поля.
Рисунок 183 – Продажи Обороты
Ресурсы
На закладке Ресурсы выберете все доступные ресурсы отчета. Настройки
На закладке Настройки добавим в структуру отчета таблицу. Для этого нажмите Добавить в командной панели окна настроек.
Рисунок 184 – Создание новой таблицы
Мы не будем задавать строки и колонки этой таблицы и
список выбранных полей, потому что хотим предоставить полную свободу
пользователю в этих действиях. Для этого выделим в структуре элементов отчета Таблица и нажмем кнопку Свойства элемента
пользовательских настроек .
Установите галочки для Выбранные поля, Группировки строк и Группировки колонок. Оставим их свойства по умолчанию.
Рисунок 185 – Группировка колонок
Так мы предоставили пользователю возможность самостоятельно определять состав выбранных полей, группировок строк и колонок таблицы непосредственно в отчетной форме перед формированием отчета.
Определим, что отчет будет отображаться в подсистеме Оказание услуг.
В режиме 1С: Предприятие
Запустите отладку и выполните команду Универсальный в панели действий Оказание услуг.
Нажмите кнопку выбора в строке Выбранные поля и выберете поле ВыручкаОборот.
В поле Строки добавьте в строки таблицы группировку по полю Номенклатура с типом Иерархия.
В строке Колонки добавьте в колонки таблицы группировку по полю Мастер. Нажмите Сформировать
Рисунок 186 – Сформировать универсальный отчет
Теперь добавим в список выбранных полей СтоимостьОборот. И в строки таблицы вместо группировки по полю Номенклатура поместите группировку по полю Клиент.
Рисунок 187 – Выручка оборота
Теперь исключите из списка выбранных полей СтоимостьОборот. В строках таблицы заменим прежнюю группировку по Клиент на группировку по полю Номенклатура с типом Только Иерархия. Вколонки таблицы добавим группировку по полю Клиент и поместим ее первой в списке группировок.
Рисунок 188– Универсальный отчет
Таким образом, используя этот отчет, мы предоставили пользователю альтернативную возможность самостоятельно формировать отчет по регистру Продажи.
Контрольные вопросы:
1. Для чего предназначена система компоновки данных.
2. Для чего предназначены настройки компоновки данных.
3. В чем отличие между реальными и виртуальными таблицами.
4. Что является источником данных запроса.
5. Что такое псевдонимы в языке запросов.
6. Что такое параметры запроса.
7. Что такое параметры виртуальной таблицы.
8. Что такое левое соединение.
9. Как использовать конструктор запроса.
10. Как выбрать данные в некотором периоде для отчета.
11. Как упорядочить данные в отчете.
12. Как использовать в отчете данные нескольких таблиц.
13. Как использовать группировки в структуре отчета.
14. Как получить последние значения регистра сведений.
15. Как вывести в отчет иерархические данные.
16. Как управлять выводом итогов по группировкам и общих итогов.
17. Как создать отчет с диаграммой.
18. Как использовать параметры в системе компоновки данных.
19. Что такое ресурсы в системе компоновки данных.
20. Что такое вычисляемые поля в системе компоновки данных.
21. Как создать пользовательские настройки отчета
22. В чем отличие быстрых настроек от остальных пользовательских.
23. Как определить состав пользовательских настроек отчета.
24. Как вывести данные в виде таблицы.
25. Как сделать отчет универсальны
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.