Кейс: Использование константы из справочника в OLAP-кубе
Частый кейс: нужно сопоставить (перемножить, поделить, сравнить) одни значения с другими.
Предположим, мы хотим посчитать цену отгруженного товара. Или посчитать ставку сотрудников по трудозатратам.
Разберемся на яблоках.
Чтобы всё получилось как надо, нам нужно 2 справочника:
Системный справочник содержит какие-то константы или, по крайней мере, значения, актуальные на протяжении какого-то времени.
Например:
| Дата записи | Фрукты | Цена за ед. |
| 01.01.2010 | Яблоки | 10 |
| 01.01.2018 | Яблоки | 50 |
И обычный справочник, с информацией об объёмах проданного товара:
| Дата записи | Фрукты | Единиц |
| 01.06.2013 | Яблоки | 2 |
| 02.03.2015 | Яблоки | 3 |
| 30.12.2017 | Яблоки | 1 |
| 10.02.2018 | Яблоки | 4 |
| 29.10.2018 | Яблоки | 2 |
| 16.07.2019 | Яблоки | 1 |
Предположим, надо узнать, сколько всего мы заработали на всех поставках суммарно. Для этого перемножим цену яблок, актуальную на определённые даты, на объём проданных яблок.
Как это сделать в ADVANTA?
Шаг 1. Создать и заполнить системный справочник
Создайте системный справочник "Цена на фрукты".
Администрирование → Структура базы данных → Справочники → создать новый справочник.
Использовать дату – Да, ручной ввод.
Структура записей справочника – Горизонтальный список.
Остальные значения – оставить по умолчанию.
-
-
Заполнить значения этого справочника:
Администрирование → Структура базы данных → Справочники → напротив нужного справочника

Добавить/изменить необходимые записи.
Важно!
Даты в этом справочнике должны быть более ранними, чем те, которые будут в обычном, куда пользователи будут
делать записи. В противном случае, даты друг друга "не найдут".
Шаг 2. Создать и заполнить обычный справочник
Создайте справочник "Продажа фруктов".
Администрирование → Структура базы данных → Справочники →
создать новый справочник.
В настройках справочника ориентируйтесь на свои бизнес-процессы и удобство пользователей.
-
-
Заполнить значения этого справочника:
пригласить пользователей заполнить значения справочника;
импортировать записи справочника;
-
Шаг 3. Создать OLAP-куб и настроить его
3.1 Новый шаблон куба
Создайте новый OLAP-куб "Цена сделок по фруктам".
Администрирование → Структура базы данных → OLAP-кубы → Создать.
Заполните поля формы:
Название – Цена сделок по фруктам;
Описание – может помочь для поиска нужного OLAP-куба при дальнейших настройках;
выберите иконку, чтобы было проще ориентироваться;
Число цифр после запятой – укажите количество знаков, до которого будут округляться значения показателей в отчетах; по умолчанию значение "2".
чек-бокс Показывать только одну (последнюю по времени) запись по проекту оставить пустым.
Режим обновления – выберите в зависимости от общей нагруженности системы и размеров данных, с которыми куб будет работать.
Чтобы данные для пользователей в отчётах открывались быстро, выберите "Один раз в сутки" или "По таймеру".
Настройки таймера.
3.2 Создать измерения
В созданном шаблоне OLAP-куба в блоке "Измерения" → Создать.
-
Создайте измерение-связь между справочниками – это реквизит-классификатор "Фрукты":

Если у вас есть другие реквизиты-классификаторы в справочниках, добавьте их в измерения. Вдруг пригодятся. ;)
Так будет выглядеть блок с измерениями в примере с яблоками:
3.3 Показатель-запрос из обычного справочника
Создайте показатель-запрос "Фруктов продано всего".
В блоке "Показатели" → Создать.
Блок "Свойства показателя OLAP-куба":
введите название измерения – Фруктов продано всего;
"Тип показателя" – Запрос;
"Свойства" – поставить чек-бокс на Агрегация.
Блок "Настройки запроса":
"Источник" – Справочник → выберите из списка справочник "Продажа фруктов" (название того справочника в который пользователи вносят информацию);
"Реквизит" – выберите тот числовой реквизит, в который пользователи вносят количество проданных фруктов.
Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.
"Параметры":
"Измерение OLAP-куба" – выберите измерение-связующее между справочниками – Фрукты;
"Дата источника" – все даты, кроме "Системной" – это даты, которые относятся к объекту, из которого была сделана запись в справочник; чтобы получить дату именно записи в справочник, выбирайте Системный;
"Дата OLAP-куба" – Дата (точный).
Сохраните изменения.
3.4 Показатель-запрос из системного справочника
Создайте показатель-запрос "Актуальная цена на дату".
В блоке "Показатели" → Создать.
Блок "Свойства показателя OLAP-куба":
введите название измерения – Актуальная цена на дату;
"Тип показателя" – Запрос;
"Свойства" – поставить чек-бокс на Скрытый.
Блок "Настройки запроса":
"Источник" – Справочник → выберите из списка справочник "Цена на фрукты" (название системного справочника);
"Реквизит" – выберите тот числовой реквизит, куда внесена цена на фрукты.
Если числовой реквизит в справочнике один, то и выбора не будет. Он встанет сюда сам.
"Параметры":
"Измерение OLAP-куба" – выберите измерение-связующее между справочниками – Фрукты;
"Дата источника" – Системный;
"Дата OLAP-куба" – Дата (относительный).
Сохраните изменения.
3.5 Показатель-формула, чтобы посчитать
Создайте показатель-формулу "Цена сделки".
В блоке "Показатели" → Создать.
Блок "Свойства показателя OLAP-куба":
введите название измерения – Цена сделки;
"Тип показателя" – Формула;
"Свойства" – поставить чек-бокс на Агрегация.
Блок "Формула" → последовательно Добавить показатель Актуальная цена на дату, знак *, показатель Фруктов продано всего.
Сохраните изменения.

Шаг 4. Проверить, что получилось
Создайте OLAP-отчёт, чтобы проверить, что получилось.
Рабочий стол ADVANTA (Главная страница) → в модуле слева "Мои отчёты" → "+ Добавить отчёт".
Выберите в блоке с отчётами OLAP-куб с "Цена сделок по фруктам".
Выберите в
фильтре те объекты, к которым привязан справочник, куда пользователи вносят данные.
Посмотрите, что получилось.
Вероятно, у вас возникнет вопрос, как вытащить, поменять поля, которые формируются показателями OLAP-куба.
Они находятся не в блоке "Вывести список скрытых колонок", а прячутся в "Заголовках полей данных":


См. также: