Два способа реализации ABC-анализа контрагентов для БП 3.0

17.03.20

Задачи пользователя - Адаптация типовых решений

В данной статье рассматриваются 2 способа реализации ABC анализа контрагентов для конфигурации Бухгалтерия предприятия 3.0 (версия  3.0.75.109).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ABC анализа контрагентов (на основе алгоритма).
.erf 9,47Kb ver:1.0.0.1
4
4 Скачать (1 SM) Купить за 1 850 руб.
ABC анализа контрагентов (на основе функции СКД).
.erf 8,68Kb ver:1.0.0.1
9
9 Скачать (1 SM) Купить за 1 850 руб.

ABC анализ является довольно распространенным методом классификации различных ресурсов. На просторах сети мы скорее всего найдем описание применения этого метода для классификации номенклатуры, чуть реже - контрагентов. Основан на знаменитом правиле Паретто, aka 80/20, который как известно позволяет разделить рассматриваемый ресурс на 2 группы: более значимая часть, требующая меньше затрат на обслуживание и менее значимая часть, требующая больше затрат на обслуживание. ABC анализ чаще всего применяют для разделения на большее количество категорий, например 3 или 4. Рассмотрим классификацию контрагентов по признаку доли выручки. Классифицировать будем на 3 группы:

  • в первую группу будут входить контрагенты, суммарная доля выручки которых составляет 80%. На основании правила Паретта мы можем ожидать, что количество контрагентов в данной группе составит 20% от общего числа.
  • во вторую группу войдут контрагенты, суммарная доля выручки которых составляет 15%,
  • в третью группу - все остальные контрагенты. Суммарная доля их выручки составит 5%.

Классификационные группы по традиции обозначают заглавными буквами английского алфавита: A, B, C.

Для выборки первоначальных данных мы обратимся к оборотам бухгалтерского регистра Хозрасчетный, и получим из него данные запросом. Выбирать будем по условию Счет равно Счет выручки 90.01. Причем рассмотрим 2 случая: когда корр. счет равен счету кассы 50.01 и когда нет. Тем самым мы выберем данные по оптовым и розничным продажам. Продажи по сертификатам и прочее для простоты рассматривать не будем.

Ниже приведен листинг запроса:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ОптоваяПродажа.СуммаОборотКт КАК Сумма,
    ВЫРАЗИТЬ(ОптоваяПродажа.КорСубконто1 КАК Справочник.Контрагенты) КАК Контрагент,
    ОптоваяПродажа.Счет КАК Счет,
    ОптоваяПродажа.КорСчет КАК КорСчет,
    ОптоваяПродажа.Организация КАК Организация,
    ЛОЖЬ КАК РозничныйПокупатель,
    ОптоваяПродажа.Регистратор КАК Документ,
    ОптоваяПродажа.ПериодДень КАК Период,
    ОптоваяПродажа.КоличествоОборотКт КАК Количество
ПОМЕСТИТЬ ВТ_Продажи
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Авто, Счет В ИЕРАРХИИ (&СчетаВыручки), , , НЕ КорСчет В (&СчетаКассы), ) КАК ОптоваяПродажа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    РозничнаяПродажа.СуммаОборотКт,
    РозничнаяПродажа.Субконто1,
    РозничнаяПродажа.Счет,
    РозничнаяПродажа.КорСчет,
    РозничнаяПродажа.Организация,
    ИСТИНА,
    РозничнаяПродажа.Регистратор,
    РозничнаяПродажа.ПериодДень,
    РозничнаяПродажа.КоличествоОборотКт
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Авто, Счет В ИЕРАРХИИ (&СчетаВыручки), , , КорСчет В (&СчетаКассы), ) КАК РозничнаяПродажа;

    
Поместив результат данного запроса во временную таблицу и выполнив на её основании еще ряд запросов мы в итоге получим результирующий запрос, который будет содержать следующие данные:

  • Контрагент,
  • Выручка,
  • Общая выручка,
  • Доля в выручке,
  • Доля в выручке в процентах.

 
Итак, на данном этапе мы располагаем исходными данными. Следующая задача - присвоение контрагентам классификационных групп. Ниже представлен листинг алгоритма присвоения классификационных групп:

категорияA = "A";
категорияB = "B";
категорияC = "C";

ДоляКатегории_A = 0.8;
ДоляКатегории_B = 0.15;
ДоляКатегории_C = 0.05;

текущаяКатегория = катA; 
суммаДоли = 0;
        
ИсходныеДанныеКонтрагентов.Сортировать("ДоляВВыручке Убыв");

Для Каждого контр ИЗ ИсходныеДанныеКонтрагентов Цикл

    суммаДоли = суммаДоли + контр.ДоляВВыручке;
    контр.Категория1 = текущаяКатегория;

    Если текущаяКатегория = катA Тогда
        Если суммаДоли > ДоляКатегории_A Тогда
            текущаяКатегория     = категорияB;
            ДоляКатегории_A     = суммаДоли;
            ДоляКатегории_B     = 1 - ДоляКатегории_A - ДоляКатегории_C;
            суммаДоли             = 0;
        КонецЕсли;

    ИначеЕсли текущаяКатегория = катB Тогда
        Если суммаДоли > ДоляКатегории_B Тогда
            текущаяКатегория     = категорияC; 
            ДоляКатегории_B     = суммаДоли;
            ДоляКатегории_C     = 1 - ДоляКатегории_A - суммаДоли;
            суммаДоли             = 0;
        КонецЕсли;

    КонецЕсли;

КонецЦикла;

Настроив в СКД условное оформление для разных категорий, а также обозначение категорий привычными символами A, B и C (через настройку макетов), мы получаем примерно следующий результат:

Рис. 1. Отчет ABC Классификация контрагентов по признаку доли в выручке.

 

Попытки найти способ получения классификации в самом запросе привели меня к более короткому и более профессиональному пути решения данной задачи. Сам механизм СКД имеет встроенную функцию КлассификацияABC, которая может быть применена для написания выражения ресурса. Синтаксис данной функции:

КлассификацияABC(<Выражение>, <КоличествоГрупп>, <ПроцентыГрупп>, <ГруппировкиПрименения>)

Параметры:

<Выражение> - тип Строка, выражение вычисления классификации,
<КоличествоГрупп> - тип Число,
<ПроцентыГрупп> - тип Строка, распределение процентов по группам. Обратите внимание - записывается нарастающим итогом, проценты последней группы не указываются,
<ГруппировкиПрименения> - тип Строка, наименование группировки, в которой нужно вычислять классификацию.

В нашем случае вызов данной функции выглядит следующим образом:

КлассификацияABC("Сумма(ДоляВВыручке)", 3, "80,95", "Контрагент")

 

Рис. 2. Настройка функции КлассификацияABC в СКД отчета.

 


В итоге получаем следующий результат:

 


Рис. 3. Отчет ABC Классификация контрагентов по признаку доли в выручке с помощью функции СКД.

 

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

См. также

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4426    17    1    

35

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    6318    15    5    

24

Печатные формы Адаптация типовых решений Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    7006    75    17    

31

Адаптация типовых решений Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    5424    dimanich70    15    

22

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    7845    dimanich70    10    

20

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    3850    30    TempTablesManager    14    

54

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3818    60    progmaster    9    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 21.03.20 16:48
Сообщение было скрыто модератором.
...
2. user1272849 23.03.20 13:11 Сейчас в теме
здравствуйте, скачала вашу обработку. есть ли какая-нибудь возможность переделать под номенклатуру? пытаюсь заменить контрагент в скд на номенклатуру, выводить лишь номенклатурные группы. вероятно стоит вообще иначе делать?
3. Астиг 19 23.03.20 13:51 Сейчас в теме
(2) Добрый день! Я попробую сегодня-завтра и напишу вам. Вообще-то я думаю да, должно все получиться.
4. Астиг 19 23.03.20 15:43 Сейчас в теме
(2) Посмотрел. Да, в таком исполнении анализировать номенклатуру не получится. Потому что 90.01 не имеет субконто Номенклатура, только Номенклатурные группы. Что можно предпринять? Брать не 90.01, а 90.01.1 - там 3-е субконто как раз номенклатура, но непонятно совершаются ли вообще такие проводки. Ну и запрос в компоновке конечно придется переделать. Другой вариант - добавить в счет 90.01 3-м субконто номенклатуру, перепровести несколько документов и посмотреть - может быть заработает (запрос все равно переделать).
5. user1272849 23.03.20 16:40 Сейчас в теме
(4) самое забавное, что у меня стал выводить номенклатуру, без настроек по 90.0.1 счету, но видимо не всю, что есть в базе. окончательно запуталась
Прикрепленные файлы:
6. Астиг 19 23.03.20 16:44 Сейчас в теме
(5) Посмотрите в плане счетов - у 90.01 есть субконто номенклатура? И какое оно по счету?
7. user1272849 23.03.20 16:49 Сейчас в теме
(6) ага, третье, у меня подключено. и правда
8. user1272849 21.04.20 09:52 Сейчас в теме
прошу прощения. возник вопрос. можно прикрутить сюда прибыль?
9. Астиг 19 21.04.20 10:40 Сейчас в теме
(8) Добрый день! Вопрос только в том, как и откуда мы будем её брать. Если есть идеи - намекните - я постараюсь изобразить.
10. Lina_Buh 19.10.21 10:57 Сейчас в теме
Добрый день. Подскажите, пожалуйста, как вывести значение функции КлассификацияABC буквами?
11. Lina_Buh 19.10.21 14:37 Сейчас в теме
Вопрос снят) Для тех кто изучает скд как я, параметр нужно делать во вкладке "Вычисляемы поля" и там же прописывать соответствие букв в "доступные значения".
12. Touch_Of_Soul 30 10.02.23 18:02 Сейчас в теме
ABC по номенклатуре в иерархии есть?
ABC по контрагентам?
Для топ релиза БП 3.0
Оставьте свое сообщение