Главная Статьи Обмен опытом Практика использования запросов в 1С 8. Универсальный ABC-анализ данных
Практика использования запросов в 1С 8. Универсальный ABC-анализ данных
13.08.2010 11:05

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

Основная идея ABC-анализа заключается в определении относительно небольшой группы элементов общей выборки, которая в своей сумме вносит наибольший вклад в анализируемый показатель деятельности предприятия (http://ru.wikipedia.org/wiki/ABC-анализ)

Примерами применения ABC-анализа могут быть:

1. Определение основных покупателей, которые в сумме покупают 70% от общего объема продаж;

2. Определение группы товаров, продажи которых которых в сумме составляют 70% от общего объема продаж;

3. Определение группы товаров, остатки которых составляют основную массу складских остатков

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

Механизмы ABC-анализа входят в существующие на сегодня типовые решениях 1С. Более того, они являются одними из самых основных инструментов анализа эффективности торговой деятельности предприятия.

 

В статье обобщен накопленный опыт и описан универсальный подход, позволяющий использовать механиз запросов 1С для эффективного расчета ABC-классов объектов в любой выборке.

Метод состоит из двух основных этапов:

1) Организация выборки данных;

2) ABC-анализ предоставленной выборки.

 

Начиная с версии 1С 8.1, язык запросов позволяет создавать пакетные запросы с использованием временных таблиц. Это существенно упрощает процесс обработки данных в нашем случае. Для примера приведем текст запроса, в котором анализируется выборка продаж за указанный период в разрезе договоров контрагентов (запрос может быть использован в конфигурации "Управление производственным предприятием для Украины", редакция 1.1")

"Управление производственным предприятием для Украины", редакция 1.1
Разработка конфигурации: "ABBYY Ukraine", 2005-2006 (1.1.5.6)

 


 

// Первая часть запроса - организация выборки данных и размещение ее в виде временной таблицы

ВЫБРАТЬ

ПродажиОбороты.ДоговорКонтрагента КАК ЗначениеГруппировки,

СУММА(ПродажиОбороты.СтоимостьОборот) КАК ЗначениеПоказателя

ПОМЕСТИТЬ ТаблицаВыборки

ИЗ

РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , ) КАК ПродажиОбороты

СГРУППИРОВАТЬ ПО

ПродажиОбороты.ДоговорКонтрагента

ИМЕЮЩИЕ

СУММА(ПродажиОбороты.СтоимостьОборот) > 0

 

;

 

// Вторая часть запроса - ABC-анализ выборки данных

ВЫБРАТЬ

ЗначенияПоказателяПоГруппировкам.ЗначениеГруппировки,

ЗначенияПоказателяПоГруппировкам.ЗначениеПоказателя,

ВЫБОР КОГДА СУММА(ЗначенияПоказателяПоГруппировкамДляСоединения.ЗначениеПоказателя) <= ВыборкаОбщегоПоказателя.ОбщаяСуммаПоказателя * &ОбъемКласса_C / 100

ТОГДА "C-класс"

КОГДА СУММА(ЗначенияПоказателяПоГруппировкамДляСоединения.ЗначениеПоказателя) <= ВыборкаОбщегоПоказателя.ОбщаяСуммаПоказателя * (&ОбъемКласса_C + &ОбъемКласса_B) / 100

ТОГДА "B-класс"

ИНАЧЕ "A-класс"

КОНЕЦ КАК ABC_класс

ИЗ

ТаблицаВыборки КАК ЗначенияПоказателяПоГруппировкам

 

ЛЕВОЕ СОЕДИНЕНИЕ

ТаблицаВыборки КАК ЗначенияПоказателяПоГруппировкамДляСоединения

ПО

ЗначенияПоказателяПоГруппировкам.ЗначениеПоказателя >= ЗначенияПоказателяПоГруппировкамДляСоединения.ЗначениеПоказателя

 

ЛЕВОЕ СОЕДИНЕНИЕ

(ВЫБРАТЬ // Общая сумма показателя

СУММА(ТаблицаВыборки.ЗначениеПоказателя) КАК ОбщаяСуммаПоказателя

ИЗ

ТаблицаВыборки

) КАК ВыборкаОбщегоПоказателя

ПО

ИСТИНА

 

СГРУППИРОВАТЬ ПО

ЗначенияПоказателяПоГруппировкам.ЗначениеГруппировки,

ЗначенияПоказателяПоГруппировкам.ЗначениеПоказателя,

ВыборкаОбщегоПоказателя.ОбщаяСуммаПоказателя

УПОРЯДОЧИТЬ ПО

ABC_класс,

ЗначенияПоказателяПоГруппировкам.ЗначениеПоказателя УБЫВ

 

// Третья часть запроса - уничтожение временной таблицы

;

УНИЧТОЖИТЬ

ТаблицаВыборки

 


 

Параметры запроса:

1. Дата1 - дата начала анализа

2. Дата2 - дата окончания анализа

3. ОбъемКласса_C  -  часть (в процентах, как правило, 10%) малого класса C

4. ОбъемКласса_B  -  часть (в процентах, как правило, 20%) среднего класса B

 

Пример результата запроса по продажам товаров:

ЗначениеГруппировки ЗначениеПоказателя ABC_класс
Диван для отдыха 10 796,58 A-класс
МИНСК-АТЛАНТ 1733-03 7 632,87 A-класс
СТИНОЛ RF-370 4 711,65 A-класс
Кресло-качалка 4 103,45 A-класс
Телевизор SONY KV-21 LT 1 K 4 089,47 A-класс
Телевизор SAMSUNG CS-21 S 4 WR 2 705,27 A-класс
Телевизор "SHARP" 2 091,93 B-класс
Телевизор SAMSUNG CS-21 K 2 1 917,54 B-класс
Телевизор "JVC" 1 752,72 B-класс
СТИНОЛ RF-305 1 430,57 B-класс
Станок для фигурного плетения 678,46 C-класс
Стеллаж складской 452,3 C-класс
Мясорубка MOULINEX  A 15 325,09 C-класс
Ботинки женские демисезонные 304,34 C-класс
Мужские сапоги с натуральным мехом 298,47 C-класс
Женские модельные туфли 223,78 C-класс
Коньяк Courvoisier VS 0.5л 150,75 C-класс
Кофеварка BRAUN KF22R 144,17 C-класс
Коньяк Одесса Шустов 0.7л 141,33 C-класс
Ботинки мужские 134,61 C-класс
Женские босоножки 134,27 C-класс
Коньяк Коктебель 5* 0.5л 89,52 C-класс
Водка Nemiroff Nemirovskaya 0.7л 76,88 C-класс
Пиво Bitburger бочонок 5л 75,37 C-класс
Водка Nemiroff Nemirovskaya особая 0.5л 66,9 C-класс
Вино Baron Philippe de Rothschild Medoc 0.75 66,14 C-класс
Водка Smirnoff Blue 0.5л 62,42 C-класс
Коньяк Martell VS 0.5л 61,24 C-класс
Вино Basvinex Совиньон белое 0.75л 53,28 C-класс
Коньяк Hennessy VS 0.7л 48,06 C-класс
Пиво Оболонь Premium 0.5л 47,94 C-класс
Ремонт дивана 47,5 C-класс
Вино Askaneli Brothers Оджалеши 0,75л 45,23 C-класс
Водка Nemiroff особая (черная) 0.7л 40,03 C-класс
Вино Askaneli Brothers Киндзмараули 0.75л 39,57 C-класс
Водка Smirnoff Red 0.5л 36,74 C-класс
Пиво Heineken с/б 0.33л 27,13 C-класс
Вино Alegre Лидия де люкс 0.7л 21,21 C-класс
Вино Bonacchi Montepulciano DOC 2000 11.5% 0.75л 19,22 C-класс
Водка Nemiroff Пшеничная 0.5л 13,57 C-класс
Пиво De Koninck Antoon blond 6% с/б 0.75л 11,87 C-класс
BOSCH холодильник 9,24 C-класс
Пиво Belle-Vau Kriek 0.375л 9,05 C-класс
Пиво Невское светлое 0,5л 9,05 C-класс
Мужские сапоги с искуственным мехом 7,54 C-класс
Пиво Bavaria 8,6 ж/б 0.5л 5,09 C-класс
Транспортные расходы 2,83 C-класс
Поддон деревянный 2,83 C-класс
Междугородные переговоры 0,95 C-класс

 

Основным достоинством данного метода является его универсальность, ведь он работает с любой выборкой данных. Кроме того, благодаря использованию механизма запросов, существенно повышена производительность работы с большими объемами данных (более чем в 10 раз по сравнению с традиционными алгоритмами обработки, использующими таблицы значений). Для анализа различных показателей остается лишь правильно организовать входящую выборку.

Примеры организации выборок:

1. Выборка продаж в разрезе товарной номенклатуры:

ВЫБРАТЬ  // Значения показателя в разрезе установленных группировок

Номенклатура КАК ЗначениеГруппировки,

СУММА(СтоимостьОборот) КАК ЗначениеПоказателя

ПОМЕСТИТЬ ТаблицаВыборки

ИЗ

РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2)

СГРУППИРОВАТЬ ПО

Номенклатура

ИМЕЮЩИЕ

СУММА(СтоимостьОборот) > 0

 

2. Выборка товарных остатков в разрезе номенклатуры:

ВЫБРАТЬ  // Значения показателя в разрезе установленных группировок

Номенклатура КАК ЗначениеГруппировки,

СУММА(СтоимостьОстаток) КАК ЗначениеПоказателя

ПОМЕСТИТЬ ТаблицаВыборки

ИЗ

РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата1)

СГРУППИРОВАТЬ ПО

Номенклатура

ИМЕЮЩИЕ

СУММА(СтоимостьОстаток) > 0

 

3. Выборка таблицы дебиторской задолженности:

 

ВЫБРАТЬ

ДоговорКонтрагента КАК ЗначениеГруппировки,

СУММА(СуммаУпрОстаток) КАК ЗначениеПоказателя

ПОМЕСТИТЬ ТаблицаВыборки

ИЗ

РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки

СГРУППИРОВАТЬ ПО

ДоговорКонтрагента

ИМЕЮЩИЕ

СУММА(СуммаУпрОстаток) > 0



Прокопенко Константин Игоревич

 

Направление бизнес-приложений
Руководитель сектора управленческого учета
ЗАТ "Спец-інвест"

 

Добавить комментарий


Защитный код
Обновить

 

     

   
тел. : (044) 200-02-74 © «ООО "Спец-инвест"» 2009
Все права защищены. При полном или частичном использовании материалов сайта активная ссылка на spec-i.com.ua обязательна!
e-mail: 1С@spec-i.com.ua