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

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    795543    4895    9534    

2858

SALE! 20%

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

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

8970 7176 руб.

15.12.2015    170636    954    364    

400

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    233507    1057    898    

998

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 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-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4500 руб.

27.08.2018    121800    1015    582    

860

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

Универсальная конфигурация Хамелеон Меркурий для взаимодействия с системой Меркурий (тестовый+рабочий+демо контур) может использоваться для интеграции в любую конфигурацию на базе 1С, версии ПРОФ и выше. Основное отличие от других решений - работа через веб-интерфейс и API 2.0(API 2.1). Для удобства реализован общий интерфейс в виде обработки, схожей с интерфейсом Меркурий, но возможностей гораздо больше, т.к. при интеграции в Вашу учетную систему, можно на основании Ваших справочников и документов, создавать соответствующие документы и справочники в системе Меркурий и наоборот.

44000 руб.

08.11.2017    122838    291    140    

398

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

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

30000 руб.

02.11.2015    112153    101    87    

184

Оптовая торговля Производство готовой продукции (работ, услуг) Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Бухгалтер Платформа 1С v8.3 Бухгалтерский учет Управляемые формы 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Выгрузка УПД, товарной накладной ТОРГ-12, акта, счета-фактуры по реализации (в БП сч-ф на аванс) в xml-файл в формате ФНС приказ 820 от 19.12.2018. Выгрузка УПД в формате ФНС 970 от 19.12.2023 г. Выгрузка УКД и корректировочного счета-фактуры в xml-файл в формате ФНС приказ 736 от 12.10.2020. Выгрузка товарной накладной в xml-файл ФНС приказ 551 от 13.11.2015, редакция 08.04.2019. Выгрузка акта приемки-сдачи работ (услуг) в xml-файл ФНС приказ 552 от 13.11.2015, редакция 08.04.2019. Добавлена выгрузка счетов на оплату по документам ЗаказПокупателя (в УНФ), ЗаказКлинета (в УТ / КА / ERP), СчетНаОплатуПокупателю (в БП). Добавлена обработка Выгрузка УПД c документов реализации 1С в Контур.Диадок по API.

7440 руб.

13.04.2018    85158    410    13    

435
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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, Правильная (непротиворечивая, полная, слабо изменяющаяся со временем) классификация - большое преимущество учётной системы. Может быть создана только грамотными специалистами. Слышал, что с удачных внедрений классификаторы денежных средств и доходов и расходов копируют на память :)
Оставьте свое сообщение