Как настроить сложную бонусную систему в 1С:Управление торговлей 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При внедрении программ лояльности в торговых предприятиях часто возникают нестандартные требования к бонусным системам, которые выходят за рамки типового функционала. В данном материале мы рассмотрим, как можно реализовать такие пожелания в 1С:Управление торговлей 11 (УТ 11), проанализируем возможности стандартных настроек и определим, когда потребуется разработка.

Основные пожелания к бонусной системе и их реализация

Перед нами стоят две основные задачи, озвученные пользователем:

  1. Реализовать условное списание бонусов: если сумма покупки в 2 раза больше, чем количество бонусов на карте, то можно потратить 100% бонусов на покупку; если меньше, то 50%.
  2. Настроить выдачу новой карты лояльности таким образом, чтобы на ней было 10% скидки и 500 бонусов, при этом скидка не должна действовать на товары, оплачиваемые бонусами.

Давайте разберем каждое из этих пожеланий подробнее.

1. Условное списание бонусов: 100% или 50% в зависимости от суммы покупки

Рассмотрим возможности типового функционала УТ 11 для реализации такого сложного условия списания бонусов.

Стандартные возможности настройки списания бонусов

В 1С:УТ 11 функционал бонусных программ позволяет достаточно гибко настраивать правила их применения. Для этого используются настройки в разделе «НСИ и администрирование» → «CRM и маркетинг» → «Бонусные программы».

  1. Максимальный процент оплаты бонусами: В карточке бонусной программы вы можете установить параметр «Максимальный процент оплаты бонусами». Этот процент определяет, какую долю от стоимости покупки можно оплатить бонусами. Например, если установлено 50%, то покупатель сможет оплатить бонусами не более половины чека.
  2. Детализация по ценовым группам: Этот максимальный процент может быть детализирован для различных ценовых групп товаров, что позволяет применять разные ограничения к разным категориям товаров.
  3. Минимальная сумма/количество баллов: Также можно задать условия, при которых скидка или бонусная программа активируется, например, минимальную сумму покупки или минимальное количество баллов.

Однако, здесь мы сталкиваемся с ограничением: типовая система позволяет задать фиксированный максимальный процент (или фиксированный процент для каждой ценовой группы), но не умеет динамически изменять этот процент в зависимости от сложного условия, такого как соотношение суммы покупки и текущего бонусного баланса на карте.

Ограничения стандартного функционала для первого пожелания

Типовой функционал УТ 11 не предусматривает встроенного механизма для реализации динамического изменения максимального процента оплаты бонусами в зависимости от соотношения суммы покупки и количества бонусов на карте. Система не может автоматически проанализировать это соотношение в момент оформления продажи и принять решение о 100% или 50% списании.

Например, если вы установите максимальный процент 50%, то клиент никогда не сможет оплатить 100% покупки бонусами, даже если его бонусов в два раза меньше суммы чека. И наоборот, если установить 100%, то система не будет ограничивать списание до 50% при невыполнении условия.

Возможные пути реализации через доработку

Для реализации первого пожелания потребуется доработка конфигурации. Мы можем рассмотреть следующие подходы:

  1. Модификация формы рабочего места кассира (РМК) или документа «Чек ККМ»:

    Нам потребуется внести изменения в алгоритмы расчета списания бонусов. Это может быть реализовано путем:

    • Добавления обработчика события в форме документа продажи (например, ЧекККМ) или в рабочем месте кассира.
    • В этом обработчике мы будем получать текущую сумму покупки и доступный баланс бонусов клиента.
    • Далее, мы реализуем логику проверки:
      
      // Пример псевдокода для обработки списания бонусов
      // Предположим, у нас есть СуммаПокупки и ДоступныеБонусы
      Если СуммаПокупки >= (ДоступныеБонусы * 2) Тогда
          МаксимальныйПроцентСписания = 100;
      Иначе
          МаксимальныйПроцентСписания = 50;
      КонецЕсли;
      
      // Применяем рассчитанный процент к доступным бонусам или сумме чека
      // и предлагаем сумму к списанию пользователю
      
    • Важно, чтобы интерфейс корректно отображал этот динамический лимит списания для оператора. Возможно, потребуется изменить стандартные поля ввода суммы оплаты бонусами, чтобы они автоматически подстраивались под вычисленный процент.
  2. Использование внешних обработок:

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

Важный момент: При доработке необходимо тщательно продумать взаимодействие с типовым механизмом скидок и бонусов, чтобы избежать конфликтов и некорректных расчетов.

2. Настройка новой карты лояльности: 10% скидки + 500 бонусов, скидка не действует на товары, оплачиваемые бонусами

Теперь рассмотрим второе пожелание, которое состоит из нескольких частей.

Начисление 500 бонусов при выдаче новой карты

Эту часть можно реализовать несколькими способами в типовой УТ 11:

  1. Использование документа «Начисление и списание бонусных баллов» (частично автоматизированно):

    Мы можем использовать стандартный документ Начисление и списание бонусных баллов. При выдаче новой карты, оператор вручную или с помощью небольшой доработки для автозаполнения, может ввести этот документ, указав клиента и начислив 500 баллов. Это просто, но требует ручного действия или минимальной автоматизации.

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

  2. Автоматическое начисление бонусов при выдаче определенного вида карты лояльности (более автоматизированно):

    В УТ 11 есть возможность привязать к виду карты лояльности определенные автоматические скидки и начисления. Мы можем создать новую бонусную программу, которая будет начислять 500 бонусов, и связать ее с определенным видом карты лояльности. Тогда при выдаче такой карты и совершении первой покупки (или при другом условии активации, если оно предусмотрено), эти бонусы будут начислены.

    Шаги для настройки:

    1. Создайте новую бонусную программу (например, "Стартовые бонусы").
    2. В этой программе настройте правило начисления бонусов: «Бонус суммой» на 500 баллов.
    3. Установите условие, например, «При регистрации новой карты лояльности» (если такое условие доступно в вашей версии УТ) или «При первой покупке по новой карте», если начисление должно происходить после первой операции.
    4. Создайте новый вид карты лояльности (например, "Новая карта лояльности") и привяжите к нему созданную бонусную программу.

    При оформлении продаж с такой картой, система автоматически начислит стартовые 500 бонусов.

Применение 10% скидки для новой карты

Эту часть также можно реализовать штатными средствами через механизм автоматических скидок:

  1. Настройка автоматической скидки:

    Перейдите в раздел «CRM и маркетинг» → «Настройки и справочники» → «Автоматические скидки в продажах». Создайте новую скидку.

    • Тип скидки: Скидка (наценка) процентом.
    • Размер: Установите 10%.
    • Условие предоставления: Мы можем связать эту скидку с определенным видом карты лояльности. Например, выберите условие «За использование карты лояльности» и укажите созданный вами «Вид карты лояльности» (например, "Новая карта лояльности"). Также можно привязать к сегменту клиентов "Новые клиенты".
    • Период действия: Установите необходимый период действия скидки.

    Таким образом, когда кассир будет сканировать карту лояльности определенного вида, система автоматически применит 10% скидку ко всей сумме чека (если нет других ограничений).

Скидка не должна действовать на товары, оплачиваемые бонусами

Это самое сложное условие второго пожелания. Анализ типового функционала показывает, что прямого штатного механизма для реализации этого условия нет.

В 1С:УТ 11 мы можем настроить:

Однако, типовой функционал не позволяет автоматически и динамически исключить применение одной скидки (10%) к той части суммы чека, которая уже оплачивается *другим видом оплаты* (бонусами). Система не разделяет сумму чека на "оплаченную деньгами" и "оплаченную бонусами" для целей применения других скидок. Скидки применяются к общей сумме товаров до этапа оплаты.

Необходимость доработки для исключения скидки на часть, оплаченную бонусами

Для реализации этого требования потребуется доработка. Мы можем рассмотреть следующие подходы:

  1. Модификация алгоритма расчета скидок и списания бонусов:

    Нам потребуется изменить стандартный механизм расчета скидок и бонусов, чтобы он учитывал это условие. Это может быть сделано на этапе расчета чека в РМК или при проведении документа ЧекККМ.

    • Логика доработки:

      Предположим, что в чеке есть товары на сумму 1000 руб. и клиент хочет оплатить 200 руб. бонусами, а также имеет 10% скидку. По типовой логике, 10% скидка будет применена к 1000 руб., уменьшив сумму к оплате до 900 руб., а затем из этих 900 руб. будут вычтены 200 бонусов. Итого к оплате деньгами: 700 руб.

      Нам же нужно, чтобы 10% скидка не действовала на 200 руб. (оплаченные бонусами). То есть, скидка должна примениться только к 800 руб. (1000 руб. - 200 руб. оплаченных бонусами).

      Это означает, что сначала мы должны определить, сколько бонусов будет списано. Затем, из общей суммы покупки вычесть сумму, оплаченную бонусами. И только к оставшейся сумме применить 10% скидку.

      
      // Пример псевдокода для модификации расчета
      СуммаПокупки = ...; // Общая сумма товаров в чеке
      СуммаОплачиваемаяБонусами = ...; // Сколько бонусов хочет списать клиент
      
      СуммаДляПримененияСкидки = СуммаПокупки - СуммаОплачиваемаяБонусами;
      СуммаСкидки = СуммаДляПримененияСкидки * 0.10; // 10% скидка
      
      ИтогоКОплатеДенежнымиСредствами = СуммаПокупки - СуммаОплачиваемаяБонусами - СуммаСкидки;
      
    • Место доработки: Обычно такие изменения вносятся в модули, отвечающие за расчет скидок в документах продажи (например, ЧекККМ или РеализацияТоваровУслуг) или в подсистеме рабочего места кассира.

Важно: Подобная доработка затрагивает ключевые механизмы ценообразования и расчетов, поэтому требует тщательного тестирования, чтобы не нарушить другие бизнес-процессы.

Общие шаги по настройке бонусных программ в УТ 11

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

  1. Включение функционала:

    Мы начинаем с включения необходимых опций в разделе «НСИ и администрирование» → «CRM и маркетинг»:

    • Установите флажок «Карты лояльности».
    • Установите флажок «Автоматические скидки в продажах».
    • Установите флажок «Бонусные программы».
  2. Настройка бонусной программы:

    Перейдите в «CRM и маркетинг» → «Бонусные программы». Создайте или отредактируйте бонусную программу. Здесь мы определяем:

    • Наименование программы.
    • Эквивалентность рублей и бонусных баллов (например, 1 бонус = 1 рубль).
    • Срок жизни бонусов (могут ли они сгорать).
    • Настройки начисления бонусов (например, процент от покупки).
    • Настройки списания бонусов (максимальный процент оплаты, как мы обсуждали ранее).
    • Список исключений (товары, на которые не начисляются/списываются бонусы).
  3. Настройка видов карт лояльности:

    В разделе «CRM и маркетинг» → «Настройки и справочники» → «Виды карт лояльности» мы создаем виды карт, которые будут использоваться. Здесь мы можем привязать нашу бонусную программу и настроить правила выдачи карт.

  4. Настройка автоматических скидок и начислений:

    В разделе «CRM и маркетинг» → «Настройки и справочники» → «Автоматические скидки в продажах» мы создаем и настраиваем все необходимые автоматические скидки, в том числе и 10% скидку для новых карт, как мы рассмотрели выше.

    Мы также можем настроить автоматическое начисление бонусов (например, тех самых 500 стартовых бонусов) через механизм автоматических скидок, выбирая тип скидки «Бонус суммой» или «Бонус процентом».

Регламентные задания: Не забывайте про регламентное задание по списанию бонусов, если они имеют срок действия. Мы рекомендуем ежедневно запускать его для корректной работы системы.

Рекомендации и выводы

Проанализировав пожелания пользователя и возможности 1С:Управление торговлей 11, мы можем сделать следующие выводы:

  1. Условное списание бонусов (100% или 50%): Этот функционал потребует доработки. Типовые средства позволяют задать только фиксированный максимальный процент оплаты, но не динамически его менять в зависимости от сложного условия.
  2. Начисление 500 бонусов при выдаче новой карты: Это реализуемо штатными средствами УТ 11. Мы можем использовать документ Начисление и списание бонусных баллов (с частичной автоматизацией) или, что предпочтительнее, настроить автоматическое начисление бонусов через вид карты лояльности и соответствующую бонусную программу.
  3. 10% скидки на новой карте: Это реализуемо штатными средствами через механизм автоматических скидок, привязанных к виду карты лояльности или сегменту клиентов.
  4. Скидка не должна действовать на товары, оплачиваемые бонусами: Это условие потребует доработки. В типовом функционале 1С:УТ 11 нет прямого механизма, который бы исключал применение одной скидки к той части суммы покупки, которая оплачивается бонусами. Расчет скидок происходит до определения фактического вида оплаты, и для реализации такой логики потребуется модификация алгоритмов расчета чека.

Таким образом, для полной реализации всех пожеланий, особенно сложных условий списания и взаимодействия скидок с оплатой бонусами, потребуется привлечение программиста для доработки конфигурации 1С:УТ 11. При этом часть базовых настроек, таких как начисление стартовых бонусов и применение фиксированных скидок, может быть выполнена стандартными средствами.

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

← На главную