Почему не происходит автоматическое списание бонусных баллов в 1С:Розница и как это исправить?

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

В процессе настройки программ лояльности в 1С:Розница 2.3 часто возникают ситуации, когда регламентное задание по списанию бонусов работает не так, как ожидалось. Пользователи сталкиваются с тем, что часть баллов списывается согласно правилам, а некоторые остаются на балансе клиента, несмотря на наступление даты «сгорания». Давайте разберем эту ситуацию по шагам и выясним, в чем кроются причины такого поведения системы.

Понимаем архитектуру бонусной системы

Для начала важно уяснить, что механизм списания баллов в 1С:Розница тесно связан с регистром накопления Бонусные баллы. Система работает по принципу «партий», аналогично партионному учету товаров. Каждый документ начисления бонусов формирует запись, в которой фиксируется не только количество баллов, но и их Дата окончания.

Регламентное задание, которое запускается по расписанию, выполняет поиск записей в регистре, удовлетворяющих условию: текущая дата больше или равна Дата окончания. Если при начислении баллов правило не содержало срока действия или поле Дата окончания по каким-либо причинам осталось пустым, система помечает такие баллы как бессрочные. Соответственно, регламентное задание их просто «не видит» и не учитывает при списании.

Почему не все баллы попадают в регламентное списание?

Если вы заметили, что часть баллов (например, от конкретной покупки) осталась на счету, проанализируем следующие причины:

  1. Отсутствие даты окончания: Если в документе начисления бонусов, который создал движения в регистре, не была указана Дата окончания, эти баллы считаются «вечными». Регламентное задание игнорирует их, чтобы случайно не обнулить баланс лояльного клиента.
  2. Особенности настройки правил: Если вы создали правило списания через Начисление и списание бонусов, но в отборе указали условие, которое не охватывает «бессрочные» баллы, система отфильтрует их автоматически.
  3. Конфликт версий и настроек: В различных релизах 1С:Розница алгоритмы подбора партий баллов могли отличаться. Если ваша конфигурация содержит специфические доработки или была перенесена из других систем (например, УТ 11), логика может требовать дополнительной проверки заполнения служебных полей.

Как решить проблему списания бессрочных баллов

Разберем способы выхода из этой ситуации. Если у вас возникла необходимость списать баллы, которые не подпадают под регламентную обработку, воспользуйтесь следующими методами:

1. Ручное списание без привязки к правилу

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

2. Проверка данных через регистр накопления

Чтобы убедиться, что причина именно в отсутствии даты, выполним проверку через Функции технического специалиста:

3. Рекомендации по настройке маркетинговых правил

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

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

Таким образом, для решения текущей проблемы необходимо вручную списать «зависшие» баллы, а для стабильной работы системы в будущем — строго контролировать наличие срока действия в правилах начисления.

← На главную