Переход с УТ 10.3 на УТ 11 часто сопровождается необходимостью сохранения привычных бизнес-процессов, включая систему лояльности. В УТ 10.3 работа с дисконтными картами была реализована достаточно просто, однако УТ 11 имеет иную архитектуру, ориентированную на партнерскую модель отношений. Разберемся, как реализовать механизм накопительных скидок по картам в оптовой торговле.
В УТ 11 механизм КартыЛояльности тесно связан с розничными продажами (РМК, ЧекККМ). Оптовые продажи в системе строятся вокруг Партнеров и СоглашенийСКлиентами. Типовые условия предоставления скидок («За накопленный объем продаж») требуют указания Партнера или Соглашения, так как именно по ним система ведет учет выручки. Привязка к карте лояльности в оптовых документах (РеализацияТоваровУслуг, ЗаказКлиента) существует, но она не участвует в автоматическом расчете накопительной базы в регистрах накопления.
УТ 10.3Поскольку накопленные обороты по картам не являются типовым объектом УТ 11 для целей оптового учета, нам нужно создать «хранилище» для этих данных. Оптимальным решением будет использование дополнительных реквизитов справочника КартыЛояльности.
КартыЛояльности (тип Число), назовите его, например, «НакопленияНаНачало».УТ 10.3 в созданный реквизит для каждой конкретной карты.Так как штатный механизм не умеет суммировать оптовые продажи по картам, нам потребуется написать внешнюю обработку скидок. Это позволит гибко управлять процентом скидки.
Алгоритм работы такой обработки:
ЗаказКлиента или РеализацияТоваровУслуг) система вызывает внешнюю обработку.КартуЛояльности, указанную в документе.ВыручкаИСебестоимостьПродаж (или Продажи), чтобы суммировать все обороты по документам, где в качестве карты лояльности была выбрана текущая карта.Рассмотрим примерный псевдокод для обработки:
// Пример логики расчета
СуммаНачало = Карта.ДополнительныеРеквизиты.НакопленияНаНачало;
СуммаОборотов = ПолучитьОборотыПоКартеИзРегистров(Карта);
ИтогоНакоплено = СуммаНачало + СуммаОборотов;
Если ИтогоНакоплено > 10000 Тогда
ПроцентСкидки = 2;
ИначеЕсли ИтогоНакоплено > 5000 Тогда
ПроцентСкидки = 1;
КонецЕсли;
Для того чтобы система позволяла выбирать карту лояльности в документах, проверьте настройки функциональных опций:
НСИ и администрирование -> Продажи включено использование Карт лояльности.Соглашения или Вида карты лояльности разрешено использование карт.Помните, что использование внешней обработки — это единственный способ заставить УТ 11 работать так, как вы привыкли в УТ 10.3, сохраняя при этом корректность учета. Попытка переписать типовые модули может привести к проблемам при последующих обновлениях конфигурации. Использование Дополнительных сведений (вместо реквизитов) также допустимо, если вы хотите избежать изменения структуры справочника, однако Дополнительные реквизиты обычно удобнее для отображения в форме списка карт.
В ходе совместной работы мы проанализировали, что типовых методов для автоматического суммирования оптовых продаж по картам не существует, но предложенный архитектурный подход позволяет решить задачу максимально надежно и с минимальными рисками для стабильности системы 1С:УТ 11.