Почему не списываются бонусные баллы при оформлении возврата товара от покупателя и как это исправить?

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

При оформлении возврата товаров от розничного покупателя (особенно если возврат происходит не в день покупки, а в последующие дни) пользователи часто сталкиваются с ситуацией, когда по регистру БонусныеБаллы формируются только приходные движения или не происходит сторнирование начисленных при продаже бонусов. В результате на карте лояльности покупателя зависают баллы за возвращенный товар. Разберем подробно, почему возникает эта проблема, как устроены внутренние механизмы программы и какими способами можно восстановить корректный баланс баллов.

Причины некорректного сторнирования бонусов при возврате

Проанализируем ключевые факторы, из-за которых программа не может автоматически рассчитать сумму баллов к списанию:

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

Способ 1. Корректное оформление через помощник возврата

Разберем по шагам регламент оформления возврата товара не в день покупки:

  1. Откроем специализированную обработку Возврат товаров от розничного покупателя (в разделе продаж или рабочего места кассира).
  2. Укажем дату и номер исходного чека или выберем его из архива документов продажи.
  3. Нажмем кнопку создания документов. Обработка автоматически сформирует документ Возврат товаров от покупателя, подставит карту лояльности и заполнит табличную часть Бонусные баллы к начислению отрицательными суммами (сторно).
  4. Проверим, чтобы в табличной части Товары в каждой строке была сохранена ссылка на исходный Чек ККМ. Не будем удалять и повторно добавлять строки вручную, чтобы не разрушить системные ключи связи.
  5. Проведем документ и проверим движения по регистру накопления БонусныеБаллы: в нем должна появиться расходная запись на сумму начисленных ранее бонусов.

Способ 2. Диагностика данных исходного чека с помощью запросов

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


ВЫБРАТЬ 
    Чек.Ссылка,
    Чек.Проведен,
    Чек.КартаЛояльности,
    Чек.ДоговорЭквайринга
ИЗ 
    Документ.ЧекККМ КАК Чек 
ГДЕ 
    Чек.Ссылка = &Ссылка;

ВЫБРАТЬ 
    ТЧТовары.НомерСтроки,
    ТЧТовары.Номенклатура,
    ТЧТовары.Количество,
    ТЧТовары.Сумма,
    ТЧТовары.КлючСвязи
ИЗ 
    Документ.ЧекККМ.Товары КАК ТЧТовары 
ГДЕ 
    ТЧТовары.Ссылка = &Ссылка;

ВЫБРАТЬ 
    ТЧБонусы.НомерСтроки,
    ТЧБонусы.БонуснаяПрограммаЛояльности,
    ТЧБонусы.СуммаБонусов,
    ТЧБонусы.КлючСвязи
ИЗ 
    Документ.ЧекККМ.БонусныеБаллыКНачислению КАК ТЧБонусы 
ГДЕ 
    ТЧБонусы.Ссылка = &Ссылка;

Если третья таблица (БонусныеБаллыКНачислению) в исходном чеке пуста, алгоритм возврата не сможет определить, какую именно сумму бонусов требуется сторнировать. В таком случае программисту поможет точка останова в общем модуле БонусныеБаллыСервер.СторнироватьБонусныеБаллыПоДокументу, где можно отследить пошаговое выполнение сторнирования.

Способ 3. Ручная корректировка баланса баллов

Если документ возврата уже проведен, кассовая смена закрыта, а перепроведение документов задним числом невозможно, скорректируем баланс штатным документом:

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

Способ 4. Проверка регламентных заданий

Если в системе используется отложенное применение скидок и бонусов, проверим расписание фоновых заданий:

  1. Откроем Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
  2. Найдем задания Расчет бонусных баллов и Начисление и списание бонусных баллов.
  3. Убедимся, что задания включены и выполняются без ошибок. При необходимости запустим их вручную кнопкой Выполнить сейчас и повторно проверим отчет по движениям бонусных баллов.
← На главную