Сложное ранжирование клиентов по классам

28.03.12

Функциональные - Управление взаимоотношениями с клиентами (CRM)

Пример реализации усложненной ABC-классификации клиентов.
Данная статья написана для конфигурации "1С: Управление торговлей, ред. 10.3", но, я думаю, предложенный метод подойдет и для других конфигураций, имеющих механизм ABC-классификации.

Руководство поставило задачу следующего характера:

  1. требуется иметь возможность ранжировать контрагентов по индексам ценности (классам) "A", "B" и "C";
  2. необходимо хранить историю изменения индекса ценности контрагента;
  3. классифицироваться должны не только покупатели, но и остальные контрагенты (поставщики, конкуренты и т.д.);
  4. индекс ценности должен рассчитываться по нескольким показателям, каждый из которых будет иметь свой вес;

 

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

 Совместно с моим коллегой мы придумали такой способ реализации:

  1. В регистр сведений ABC-классификация покупателей добавляем дополнительное измерение - статус контрагента (или тип, это уж кому как удобнее - покупатель, поставщик и т.д.)
  2. Создаем справочник возможных показателей - "Показатели ABC-классификации". Алгоритм расчета показателя будем хранить в самом справочнике. Благодаря такому решению можно добавить сколько угодно новых показателей, не открывая для этого конфигуратор.
  3. Создаем регистр сведений "Матрица ABC-классификации" - в нем будем указывать, какие показатели использовать для различных типов клиентов, а так же способ ранжирования значений показателей по классам.
  4. Дорабатываем заполнение документа "ABC-классификация покупателей" таким образом, чтобы контрагенты классифицировались не по одному параметру, установленному в учетной политике, а по итогу нескольких показателей.

 

Рассмотрим решение подробнее:

  • Статус контрагента - обычное перечисление или справочник, кому что больше нравится. Значения можно задавать совершенно любые (покупатель, поставщик, конкурент, прочее ...). В справочнике контрагентов хранить статус не нужно. Статус будем указывать в шапке документа "ABC-классификация покупателей", т.к. он нужен только для заполнения измерения регистра сведений "ABC-классификация покупателей". 
  • Выбор статуса контрагентов
  • Справочник "Показатели ABC-классификации" мы честно слизали, взяв за основу справочник "Алгоритмы" из подсистемы Инструменты разработчика (огромное спасибо разработчику - Сергею AKA tormozit), т.к. он подхоил нам идеально. Важно: должно соблюдаться следующее условие - в коде алгоритма должна инициализироваться переменная Результат, в которую должна помещаться таблица значений с колонками "Контрагент" (справочник "Контрагенты"). и "ЗначениеПоказателя" (число) . 
  • Редактирование алгоритма вычисления показателя


  • Примеры показателей (для разукрашивания кода была использована замечательная обработка - Разукрашка, автором которой является Константинов Алексей AKA alexk-is):
    •  1. Объем поступлений денежных средств. Текст алгоритма:
  • Текст =
    "
    |ВЫБРАТЬ
    |   Т.Контрагент КАК Контрагент,
    |   Т.СуммаУпрОборот КАК ЗначениеПоказателя
    |ИЗ
    |   РегистрНакопления.ДвиженияДенежныхСредств.Обороты(
    |           &Дата1,
    |           &Дата2,
    |           ,
    |           Контрагент <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    |               И Контрагент <> НЕОПРЕДЕЛЕНО
    |               И ПриходРасход = &ВидДвиженияПриход) КАК Т";

    Запрос = Новый Запрос(Текст);
    Запрос.Параметры.Вставить("Дата1", Дата1);
    Запрос.Параметры.Вставить("Дата2", Дата2);
    Запрос.Параметры.Вставить("ВидДвиженияПриход", ВидДвиженияПриход);
    Результат = Запрос.Выполнить().Выгрузить();


    • 2. Количество возвратов. Текст алгоритма:
  • Текст =
    "
    |ВЫБРАТЬ
    |   Т.Контрагент КАК Контрагент,
    |   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Т.Регистратор) КАК ЗначениеПоказателя
    |ИЗ
    |   РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, Регистратор, ) КАК Т
    |ГДЕ
    |   Т.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя
    |
    |СГРУППИРОВАТЬ ПО
    |   Т.Контрагент";

    Запрос = Новый Запрос(Текст);
    Запрос.Параметры.Вставить("Дата1", Дата1);
    Запрос.Параметры.Вставить("Дата2", Дата2);
    Результат = Запрос.Выполнить().Выгрузить();

  • Регистр сведений "Матрица ABC-классификации", как я уже говорил, используется для настройки состава показателей для каждого статуса контрагента, а также их ранжирования. Данные регистр имеет следующую структуру:
  •  

    Измерения

     

      1. Статус контрагента (покупатель, поставщик и т.д.)
      2. Показатель (справочник "Показатели ABC-классификации")
  •  

    Ресурсы:

     

      1. Вид сравнения (перечисление "Виды сравнения": "БольшеИлиРавно", "МеньшеИлиРавно")
      2. ГраницаAКласс
      3. ГраницаBКласс
      4. ГраницаCКласс
      5. ОценкаAКласс
      6. ОценкаBКласс
      7. ОценкаCКласс
  • Матрица показателей

  • Я думаю, по поводу измерений вопросов ни у кого нет. Остановимся подробнее на ресурсах (они все, кроме вида сравнения, числовые):
  • Границы нужны для ранжирования значений, а оценки - это числовые выражения, соотвествующие заданному диапазону значений.
  • В зависимости от вида сравнения должны выполнятся следующие условия:
  • Вид сравнения "Больше или равно" : ГраницаAКласс >= ГраницаBКласс >= ГраницаCКласс

    Вид сравнения "Меньше или равно": ГраницаAКласс <= ГраницаBКласс <= ГраницаCКласс

    Это необходимо, чтобы обеспечить три диапазона значений. В зависимости от того, в какой диапозон входит значение, мы получаем оценку клиента по показателю. 

    На примере двух описанных выше показателей (сумма оплат и количество возвратов):

    допустим, получили две таблицы значений:

    Оплаты (значение показателя - сумма поступлений денежных средств в валюте упр. учета)

    Контрагент Значение показателя
    Оптовый Покупатель, ООО 2 700 000
    Сеть магазинов, ЗАО 1 500 000
    Мелкооптовый покупатель, ИП 800 000

     

    Возвраты (значение показателя - количество возвратов)

    Контрагент Значение показателя
    Оптовый покупатель, ООО 1
    Сеть магазинов, ЗАО 5
    Мелкооптовый покупатель, ИП 0

     

    В регистре "Матрица ABC-классификации" имеем следующие записи:

    Статус Показатель Вид сравнения Граница A Оценка A Граница B Оценка B Граница C Оценка C
    Покупатель Объем поступлений ДС >= 2 000 000 30 1 000 000 20 0 10
    Покупатель Количество возвратов <= 0 30 2 20 5 10

     

    На основе данных в регистре сведений ранжируем (получаем оценку) первые две таблицы и объединяем их в одну:

    Контрагент Показатель Значение показателя Оценка
    Оптовый покупатель, ООО Объем поступлений ДС 2 700 000 30
    Оптовый покупатель, ООО Количество возвратов 1 20
    Сеть магазинов, ЗАО Объем поступлений ДС 1 500 000 20
    Сеть магазинов, ЗАО Количество возвратов 5 10
    Мелкооптовый покупатель, ИП Объем поступлений ДС 800 000 10
    Мелкооптовый покупатель, ИП Количество возвратов 0 30

     

    Соответственно, итоговые оценки (сумма оценок по всем показателям) будут такие:

    Оптовый покупатель, ООО - 50 баллов

    Мелкооптовый покупатель, ИП - 40 баллов

    Сеть магазинов, ЗАО - 30 баллов

     

    Остался последний штрих - распределить по классам A, B и C клиентов. В качестве параметра распределения используем полученные итоговые оценки. Тогда при стандартных пропорциях (A - 70%, B - 20%, C - 10%) получим следующий результат:

     

    Класс A:

    Оптовый покупатель, ООО

    Мелкооптовый покупатель, ИП

     

    Класс B:

    Сеть магазинов, ЗАО

     

    Класс C:

    ---

  • Если скорретировать оценки в регистре "Матрица ABC-классификации", можно получить другие результаты.
  • В данном решении вес показателя определяется оценками в матрице классификации.
  • Можно сделать и немного иначе - в регистр "Матрица ABC-классификации" добавить ресурс "Вес", и при расчете итоговой оценки учитывать этот вес. 
  • Опишу подробнее изменения в документе "ABC-классификация покупателей"
    1. добавить реквизит шапки - статус контрагентов
    2. Добавить табличную часть - Таблица показателей (Контрагент, Показатель, Значение, Оценка)
    3. Добавить кнопку заполнения табличной части "Заполнить по матрице показателей" (в принципе, можно заменить процедуру заполнения на свою, но если добавить отдельную кнопку, то можно оставить и типовой способ заполнения документа)
    4. Прописать процедуру заполения (получить список используемых показателей, для каждого показателя получить таблицу значений показателя, сформировать запрос для заполнения табличных частей "ТаблицаПоказателей" и "ТаблицаРаспределенияКонтрагентов", в который параметрами передать все полученные таблицы значений показателей)
    5. Немножко поправить проведение документа - нужно, чтобы в регистре сведений "ABC-классификация" заполнялось измерение "СтатусКонтрагента"
  • На этом все. При таком решении мы получаем достаточно гибкий механизм ABC-классификации при минимальных изменениях типовой конфигурации: в основном добавляются новые объекты + добавлено несколько реквизитов документа "ABC-классификация покупателей" (обработку заполнения табличной части документа можно вынести в дополнительные внешние обработки заполнения табличных частей)
  • P.S. Если уж совсем минимизировать изменения типового функционала, то можно вообще не трогать документ "ABC-классификация покупателей", отказавшись от дополнительной аналитики (Статус контрагента) и не добавляя табличную часть "Таблица показателей", ограничившись написанием внешней обработки заполнения документа.

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    90931    108    40    

197

1С:CRM ПРОФ, КОРП, СТАНДАРТ, редакция 3.0

Управление взаимоотношениями с клиентами (CRM) Управление маркетингом (EMM) Платформа 1С v8.3 Управленческий учет Платные (руб)

Решение 1С:CRM 3.0 предназначено для компаний с потребностью совместной работы более 5 пользователей в единой информационной базе. Решение позволяет автоматизировать все бизнес-процессы компании в соответствии с концепцией CRM, включая закупки, продажи, маркетинг, сервисное обслуживание и пр.

9700 руб.

10.11.2015    42419    24    1    

15

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

6000 руб.

27.02.2017    766468    4694    9501    

2792

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    166427    702    362    

390

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211133    630    526    

446

54-ФЗ и Разрешительный режим. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима.

5400 руб.

25.05.2015    318006    1851    3012    

998

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    110655    34    114    

178
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. pumbaE 28.03.12 16:03 Сейчас в теме
cf забыли выложить или это просто статья?
+
2. charushkin 104 29.03.12 07:02 Сейчас в теме
(1) pumbaE, вообще-то задумывалось как просто статья :)
cf не выложил, т.к. эта система работает на древней "Управление торговлей и взаимоотношениями с клиентами (CRM)"
Теоретически, я могу, конечно, доработать торговлю и выложить тут cf, но ведь с точки зрения авторских прав это тоже будет неправильно - выкладывать конфу 1С )
+
3. pumbaE 30.03.12 17:23 Сейчас в теме
(2) просто вы меня за живое зацепил: сам планировал, подобным образом похожее делать, если не жалко просьба поделиться shenja@sosna.zp.ua "Моя благодарность не будет знать границ ... "
+
4. charushkin 104 31.03.12 15:46 Сейчас в теме
(3) pumbaE, выберу на днях время, сделаю cf-ку ;)
+
5. ZLENKO 398 03.05.12 11:17 Сейчас в теме
Очень полезная разработка.
Несколько лет нечто подобное по классификации делал, но негибкое - все было зашито в код.
Для классификации номенклатуры наверное тоже имеет смысл сделать подобное.
+
6. Glemar 22.01.15 23:24 Сейчас в теме
а можно и сотрудников (менеджеров, операторов, кассиров, продавцов) также ранжировать для объективной оценки их работы
+
7. EugenePol 16.09.15 17:16 Сейчас в теме
А если у контрагента несколько статусов?
+
8. Зеленоград 16.09.15 17:36 Сейчас в теме
(7) EugenePol, Правильная (непротиворечивая, полная, слабо изменяющаяся со временем) классификация - большое преимущество учётной системы. Может быть создана только грамотными специалистами. Слышал, что с удачных внедрений классификаторы денежных средств и доходов и расходов копируют на память :)
+
Оставьте свое сообщение