Постановка задачи
Все наверняка сталкивались с таким понятием, как ABC-анализ.
ABC-анализ— метод, позволяющий классифицировать ресурсы фирмы по степени их важности. Этот анализ является одним из методов рационализации и может применяться в сфере деятельности любого предприятия.
Возникла необходимость реализовать такой отчет.
Особенностью данного отчета является то, что наборы данных описываются схемами компоновки данных, которые хранятся в справочнике.
Ниже приведена часть этого отчета, в которой рассматривается принцип построения отчета на основании нескольких схем компоновки данных.
Описание
Для демонстрации работы отчета добавим объекты в пустую конфигурацию:
Справочник "Номенклатура" - это объект для анализа.
Справочник "Показатели Анализа" - справочник, который будет хранить СКД с расчетом показателей.
Заведем пару показателей: "Количество продаж" и "Сумму продаж" и загрузим в них СКД.
ВЫБРАТЬ
РегистрАнализа.Номенклатура КАК Объект,
РегистрАнализа.КоличествоОборот КАК ПоказательАнализа
ПОМЕСТИТЬ ОригинальныйЗапрос
ИЗ
РегистрНакопления.РегистрАнализа.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, , {(Номенклатура)}) КАК РегистрАнализа
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОригинальныйЗапрос.Объект КАК Объект,
ОригинальныйЗапрос.ПоказательАнализа КАК ПоказательАнализа,
ВЫБОР
КОГДА ЕСТЬNULL(ИтогиТаблицы.ПоказательИтог, 0) > 0
ТОГДА ОригинальныйЗапрос.ПоказательАнализа / ИтогиТаблицы.ПоказательИтог * 100
ИНАЧЕ 0
КОНЕЦ КАК ДоляПоказателяАнализа
ПОМЕСТИТЬ ДолиОборотов
ИЗ
ОригинальныйЗапрос КАК ОригинальныйЗапрос,
(ВЫБРАТЬ
СУММА(ОригинальныйЗапрос.ПоказательАнализа) КАК ПоказательИтог
ИЗ
ОригинальныйЗапрос КАК ОригинальныйЗапрос) КАК ИтогиТаблицы
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДолиОборотов.Объект КАК Объект,
ДолиОборотов.ДоляПоказателяАнализа КАК ДоляПоказателяАнализа,
ДолиОборотов.ПоказательАнализа КАК ПоказательАнализа,
СУММА(ЕСТЬNULL(ДолиОборотов1.ДоляПоказателяАнализа, 0)) + ДолиОборотов.ДоляПоказателяАнализа КАК ДоляНакопительная
ИЗ
ДолиОборотов КАК ДолиОборотов
ЛЕВОЕ СОЕДИНЕНИЕ ДолиОборотов КАК ДолиОборотов1
ПО ДолиОборотов.Объект <> ДолиОборотов1.Объект
И (ДолиОборотов.ДоляПоказателяАнализа < ДолиОборотов1.ДоляПоказателяАнализа
ИЛИ ДолиОборотов.ДоляПоказателяАнализа = ДолиОборотов1.ДоляПоказателяАнализа
И ДолиОборотов.Объект > ДолиОборотов1.Объект)
СГРУППИРОВАТЬ ПО
ДолиОборотов.Объект,
ДолиОборотов.ДоляПоказателяАнализа,
ДолиОборотов.ПоказательАнализа
Заведем документ, который будет формировать движения для анализа.
Создадим несколько документов и проведем их.
Отчет "Анализ показателей"
В правой части отчета находится таблица, в которой можно указать показатели анализа и период для данного показателя.
После добавления очередного показателя происходит процесс переформирования СКД. Сразу же становятся доступны настройки объединенного отчета с возможностью добавить отборы или выбрать необходимые поля.
В первом примере выбраны данные по количеству продаж за 3 разных периода.
Во втором примере изменен третий показатель на сумму продаж.
Проверялось на платформе 8.3.13.1690.
Возможно вас заинтересуют другие публикации:
Структура компании. Такого нигде не увидите.
Схемы показателей. Объединение наборов СКД.
Групповая отправка документов по электронной почте.
Подсистема "Согласование документов с произвольным маршрутом"