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

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С 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    799809    4931    9561    

2864

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

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

9700 руб.

10.11.2015    43247    33    1    

19

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

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом. ВНИМАНИЕ! 09.01.25 г. планируется повышение цен на 20%!

28500 руб.

21.04.2017    96938    134    42    

215

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

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

8970 руб.

15.12.2015    171070    962    364    

401

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

Расширение конфигурации для УТ 11.5, КА 2.5 ,ERP 2.5 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

5000 руб.

27.08.2018    123047    1041    586    

875

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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 или интернет. Поддержка маркировки и разрешительного режима.

5880 руб.

25.05.2015    336477    1967    3064    

1033

SALE! 20%

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

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    235437    1066    898    

1006
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. pumbaE 28.03.12 16:03 Сейчас в теме
cf забыли выложить или это просто статья?
2. charushkin 109 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 109 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, Правильная (непротиворечивая, полная, слабо изменяющаяся со временем) классификация - большое преимущество учётной системы. Может быть создана только грамотными специалистами. Слышал, что с удачных внедрений классификаторы денежных средств и доходов и расходов копируют на память :)
Оставьте свое сообщение