Кейс: посчитать количество записей в справочнике

Это – одна из основополагающих операций для многих аналитических расчётов. Но не очень очевидная с т.зр. реализации.

Чтобы было что посчитать, нужно добавить к справочнику/объекту пустой числовой реквизит.
А чтобы система поняла, что это счётчик, в показателе OLAP-куба сделать каждую его запись константой со значением «1».

Предположим, что мы хотим посчитать, сколько раз отгружали фрукты по договорам поставки. Справочник с исходными данными называется «Фруктов отгружено».

Добавьте колонку «Индекс» в справочник «Фруктов отгружено».

  1. Если числовой реквизит «Индекс» еще не создан, создайте его: Администрирование → Структура базы данных → Реквизиты → Создайте новый реквизит:
    • «Название» – Индекс;
    • «Тип реквизита» – Число;
    • «Число цифр до запятой» – 1;
    • «Число цифр после запятой» – 0;
    • «Максимальное значение» – 1;
    • «Формат» – Число.
  2. В настройке реквизитов в справочке → изменить в поле с реквизитом «Индекс» → снимите с него галки «Показывать» и «Обязательный». Сохраните изменения.

Создайте новый OLAP-куб «Количество транзакций».

  1. Администрирование → Структура базы данных → OLAP-кубы → Создать.
  2. Заполните поля формы:
    • НазваниеКоличество транзакций;
    • Описание – может помочь для поиска нужного OLAP-куба при дальнейших настройках;
    • выберите иконку, чтобы было проще ориентироваться;
    • Число цифр после запятой – 0;
    • чек-бокс Показывать только одну (последнюю по времени) запись по проекту оставить пустым.
    • Режим обновления – выберите в зависимости от общей нагруженности системы и размеров данных, с которыми куб будет работать.
      Чтобы данные для пользователей в отчётах открывались быстро, выберите «Один раз в сутки» или «По таймеру».
      Настройки таймера.

  1. В созданном шаблоне OLAP-куба в блоке «Измерения» → Создать.
  2. Создайте измерение – реквизит-классификатор. В нашем примере это «Фрукты»:
Если у вас есть другие реквизиты-классификаторы в справочниках, добавьте их в измерения. Вдруг пригодятся. ;)

Так будет выглядеть блок с измерениями в примере с яблоками:

Создайте показатель-запрос «Индикатор».

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

Создайте показатель-формулу «Количество сделок».

  1. В блоке «Показатели» → Создать.
  2. Блок «Свойства показателя OLAP-куба»:
    1. введите название измерения – Количество сделок;
    2. «Тип показателя» – Формула;
    3. «Свойства» – поставить чек-бокс на Агрегация.
  3. Блок «Формула» → выбрать «Константа» → указать «1».
  4. Сохраните изменения.

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