Это старая версия документа.




Количество должностей и подразделений

Рассмотрим пример создания отчета "Количество должностей и подразделений".

Для понимания этой статьи требуется знание того:

Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в Business Studio, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов.

Постановка задачи

Необходимо создать отчет формата MS Word, который будет запускаться от любой оргединицы типа "Должность", "Подразделение" или "Папка". В отчете должна быть показана информация по количеству всех должностей и подразделений, которые находятся ниже по иерархии от оргединицы, от которого вызван отчет. Информация должна быть представлена в виде таблицы, приведенной ниже.

Тип Кол-во оргединиц
Подразделение X
Должность Y
Таблица 1. Форма подачи информации по условиям задачи

Идея решения задачи

По заданными условиям нельзя получить информацию напрямую из одного справочника. Для решения задачи необходимо выбирать данные из имеющихся справочников.

Задачи выборки данных решаются через использование в отчетах фильтров. Данные о количественных оценках в отчеты могут быть вставлены только с использованием фильтров (вкладка Агрегаты) или с использованием кода VBA. Сначала необходимо создать фильтр, а потом использовать его при создании привязки в отчете.

Ключевым вопросом при решении является создание правильных условий фильтра.

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

Создание фильтра "Для отчета кол-ва Д и П"

Справочник для построения фильтра

Речь идет о создании фильтра для отчета по оргединицам. Поэтому и фильтр будет создаваться по справочнику "Оргединицы".

Вкладка "Условия"

В условиях фильтра необходимо указать конкретные типы оргединиц, от которых будет выводиться отчет: Должность, Подразделение, Папка.

Параметр Тип фильтрации Оператор Значение Не Потомки
Тип Список значений = Подразделение, Должность, Папка    
Таблица 2. Условия фильтра "Для отчета кол-ва Д и П"

Вкладка "Показ"

После создания условий можно закончить настройку фильтра и сохранить его в папке "Пользовательские фильтры" под названием "Для отчета кол-ва Д и П". Чтобы проверить, что настройка выполнена верно, можно вывести на показ параметры и выполнить фильтр.

Показывать Параметр
+ Название
+ Тип
Таблица 3. Настройка отображения параметров для показа фильтра "Для отчета кол-ва Д и П"

Создание фильтра "Кол-во должностей и подразделений"

Справочник для построения фильтра

Так как в задаче речь идет о типах оргединиц и их количестве, то фильтр необходимо будет создавать по справочнику "Оргединицы".

Вкладка "Условия"

При детальном рассмотрении задачи, можно сформулировать 2 подзадачи по формированию условий:

  1. Условия, отбирающие оргединицы только с типами "Должность" и "Подразделение".
  2. Условия, указывающие, что оргединица, который входит в подсчет количества, находится в нужной ветке иерархии. Для этих целей можно использовать параметр типа "Список" – "Предки".

Согласно указанной ранее логике в фильтре выставляются условия, приведенные ниже.

Параметр Тип фильтрации Оператор Значение Не Потомки
Предки Подфильтр =      
- guid Значение =      
Тип Список значений = Должность, Подразделение    
Таблица 4. Условия фильтра "Кол-во должностей и подразделений"

Пояснение по параметру "Предки". Считаем, что оргединица находится в нужной ветке иерархии, если среди её родителей есть оргединица, от которой будет вызван отчет. Список, который содержит данные о родителях, называется "Предки". Оргединица, от которой вызывается отчет, будет определяться в момент вызова этого отчета. Поэтому конкретного значения в фильтре указать нельзя. Конкретное указание будет задаваться в настройках соответствия фильтра в Мастере отчетов.

Вкладка "Группировка"

Найденные по условиям оргединицы необходимо будет разделить на 2 группы для будущего подсчета количества: "Должности" и "Подразделения". Для этого на вкладке Группировка нужно указать, что группировку необходимо делать по параметру "Тип".

Группировать Параметр Шаг
+ Тип  
Таблица 5. Настройки на вкладке "Группировка" фильтра "Кол-во должностей и подразделений"

Вкладка "Агрегаты"

Подсчет оргединиц необходимо вести по параметру, который однозначно идентифицирует одну оргединицу от других. Таким параметров является "guid". Поэтому на вкладке Агрегаты подсчет будет именно по этому параметру.

Параметр Сумма Максимум Минимум Среднее Количество
guid         +
Таблица 6. Настройки на вкладке "Агрегаты" фильтра "Кол-во должностей и подразделений"

Вкладка "Показ"

На вкладке Показ нет необходимости выставлять что-либо, так как настройка этой вкладки была предопределена настройками на вкладках Группировка и Агрегаты. Внешне она будет настроена так, как показано ниже.

Показывать Параметр
  Количество (guid)
+ Тип
Таблица 7. Вид настройки параметров на вкладке "Показ" фильтра "Кол-во должностей и подразделений"

Сохранение фильтра

Сохраняем фильтр с названием "Кол-во должностей и подразделений". Место сохранения – папка "Пользовательские фильтры".

Создание отчета

Так как отчет будет создаваться только от некоторых оргединиц, то при его создании в Мастере отчетов выбираем условия использования – ранее созданный и сохраненный фильтр "Для отчета кол-ва Д и П".

Добавление привязки

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

Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки – "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Кол-во должностей и подразделений".

Для того чтобы указать конкретную вызываемую оргединицу, от которого зависит выполнение фильтра, необходимо настроить соответствия фильтра.

Название условия фильтра Источник данных Параметр Параметр фильтра
  Объект отчета guid СписокРодителей.guid
Таблица 8. Настройка блока "Соответствия фильтра" для привязки "Кол-во должностей и подразделений"

Пояснение к настройке  "Название условия фильтра". Так как фильтр содержит лишь основное условие, поэтому ничего в этой ячейке не указываем.

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

Пояснение к настройке "Параметр".  Указываем тот параметр объекта из ячейки "Источник данных", который нам нужно подставить в фильтр - guid.

Пояснение к настройке "Параметр фильтра". В фильтре на вкладке Условия было оставлено пустое место в параметре "Предки" по параметру "guid". Поэтому и в параметрах фильтра необходимо выбрать этот же параметр. Тем самым мы говорим, что из фильтра необходимо брать к рассмотрению именно это условие – guid из списка предков оргединицы.

В окне "Настройка сложной привязки к данным" делаем переименование названия привязки "Количество (guid)" в "Кол-во оргединиц".

Рисунок 1. Вид окна Настройка сложной привязки к данным после всех необходимых настроек

Редактирование шаблона

В шаблоне отчета вносим необходимые изменения в оформление, а так же добавляем привязку типа "Объект" к параметру "Название", чтобы было ясно, от какой оргединицы вызывается отчет. Оформляем добавленную привязку в шаблоне. Сохраняем и выполняем отчет.

Рисунок 2. Вид привязки "Единицы деятельности без единой оргединицы" типа "Фильтр" в окне шаблона отчета

Результат

Пример одного из возможных результатов выполнения отчета "Количество должностей и подразделений" приведен на Рис. 3.

Рисунок 3. Пример выполнения отчета "Количество должностей и подразделений"

Рекомендация

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

 
Driven by DokuWiki