Т.к. надо минимизировать изменения конфигурации, всё делаем расширением, по-максимуму используя типовые возможности конфигурации. Заодно посмотрим насколько актуальны расширения в типовых конфигурациях, с режимом совместимости 8.3.12.
Решение идеально подходит для моей задачи, вот она в упрощенном виде: Мы берем Х% от продаж партнерам (с отбором по сегментам, номенклатуре и тд) за один месяц, и даем эту же сумму скидкой в следующем месяце. Плюсом получаем данные для аналитики: кому это интересно, все ли использовали кэшбэк, сравнение результатов кэшбэк-акции с традиционными акциями (бери Х, 1 в подарок/ скидка процентом/ и т.д.).
Внешняя обработка (скидка) v3.epf (добавляется в дополнительные отчеты и обработки)
СведенияОВнешнейОбработке().Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.РасчетСкидкиНаценки
В настройках обработки можно указать какой максимальный процент от суммы заказа (без учета скидок) можно оплатить кэшбэком
Скрин скидки, у которой СпособПредоставления - данная обработка.
Внешняя обработка (регл задание) v1.epf (добавляется в дополнительные отчеты и обработки)
Расширение ДопСк_НакопительныеБонусныеБаллыДляОпта
Собственные объекты:
1. Подсистема ДопСк_НакопительныеБонусныеБаллыДляОпта
Включает все собственные объекты расширения. Отображается в интерфейсе при полных правах.
2. Общий модуль ДопСк_РегламентныеЗадания
Модуль с логикой регламентного задания. Во внешней обработке просто идёт вызов этого модуля. Логика специально не вынесена во внешнюю обработку, для более удобной отладки.
3. Общая форма ДопСк_Инструкция
Содержит:
- инструкцию по внедрению в конфигурацию
- краткое описание механизма работы
- собственные планы по доработке (не факт что будет реализовано)
4. Общая команда ДопСк_Инструкция
Для открытия общей формы из интерфейса
5. Справочник ДопСК_ПланНачисленияСкидок
Служит для планирования акций с кэшбэком
Основные реквизиты:
- Скидка (справочник СкидкиНаценки). Этой скидкой будут начислены, и впоследствии списаны бонусы.
- СКД_Начисление (ХранилищеЗначения). Хранит схему СКД для выборки данных и начисления по ним скидки. Выполняется именно схема СКД, а не запрос. Это позволяет гибко настраивать выборку, т.к. мы можем свободно обращаться к не предопределенным данным (в вычисляемых полях, параметрах, отборах).
Скрины с демо базы, в связи с этим в параметрах период с 2017г.
В реальной схеме СКД, которая планируется к запуску в продакшене добавлены отборы по сегменту партнеров, номенклатуре.
6. Документ ДопСК_НачислениеСписаниеСкидок
Регламентное задание выполняет схему СКД, результат помещает в данный документ, проводит.
7. Регистр сведений ДопСк_ДопОбработкиДляСписанияСкидок
Содержит ссылки на дополнительные отчеты и обработки, которыми мы считаем кэшбэк. Пока такая обработка одна, но возможно добавление нескольких обработок, с разной логикой расчета скидок.
8. Регистр накоплений ДопСК_НакопленныеСкидки
Все просто, хранит в себе накопленный кэшбэк.
Измерения:
- Партнер (справочник Партнеры)
- Скидка (справочник СкидкиНаценки)
Ресурсы:
- СуммаСкидки (число 10,2)
Заимствованные объекты:
1. Роль ПолныеПрава
Добавляет права на собственные объекты расширения, выводит подсистему в интерфейс.
2. Роль БазовыеПраваУТ
Добавляет права минимально необходимые права на собственные объекты расширения, необходимые для проведения заказов клиента и формирования отчетов.
3. Справочник СкидкиНаценки
Используется в реквизитах/измерениях объектов расширения
4. Справочник Партнеры
Используется в реквизитах/измерениях объектов расширения
5. Справочник ДополнительныеОтчетыИОбработки
Используется в реквизитах/измерениях объектов расширения
6. Документ ЗаказКлиента
Добавлены движения по регистру накопления ДопСК_НакопленныеСкидки, и контроль движений (что бы заказ не списал бонусы в минус)
1. Все внешние обработки встраиваются в справочник ДополнительныеОтчетыИОбработки, настраиваем регламентное задание.
2. Внешняя обработка "Скидка" добавляется в регистр сведений ДопСк_ДопОбработкиДляСписанияСкидок
3. Создается кэшбэк-скидка (справочник СкидкиНаценки) со способом предоставления нашей внешней обработкой. Задаем разрешенный % оплаты кэшбэком от суммы заказа (без скидок).
Рекомендую не добавлять условий предоставления скидки, и устанавить общий статус скидки "действует". Тогда кэшбэк будет работать для всех партнеров, которым он был начислен. А начисления кэшбэка мы очень гибко настраиваем в СКД.
4. Создаем план начисления скидок (справочник ДопСК_ПланНачисленияСкидок). Настраиваем СКД, выбираем дату когда надо создать начисления, ставим признак "включено"
5. В нужную дату регламентное задание формирует начисления по кэшбэку (документ ДопСК_НачислениеСписаниеСкидок)
6. В период действия кэшбэк-скидки из п.3. в заказах клиента типовым механизмом будет добавлена автоматическая скидка, и при проведении спишется с регистра ДопСК_НакопленныеСкидки.
Скидка проставляется только на не отмененные позиции заказа
Обратите внимание!
Используемая мной схема работы использует заказы клиента. Если вы работаете без них, потребуется доработка решения (реализацией не списывается начисленный кэшбэк).
Минус 1. На текущий момент режим совместимости типовых конфигураций 8.3.12, в котором не реализовано создание регистров накопления в расширениях (реализовано в 8.3.13). Из-за этого нам всё таки придется изменять типовую конфигурацию.
Типовые объекты типовой не изменяем, добавляем свои. Инструкция по переносу объектов в основную конфигурацию встроена в 1С:
Минус 2. На данный момент реализовано начисление кэшбэка только регламентным заданием.
Возможно в будущем будет сделано и выложено на инфостарте начисление кэшбэка через справочник "скидки-наценки", при проведении реализации.
В поставку входит расширение "накопительные бонусные баллы для опта", две внешних обработки.
Пока в типовых режим совместимости ниже 8.3.13 - требуются дополнительные действия, по переносу части функционала из расширения в конфигурацию.
Тестировалось на 1С:Предприятие 8.3 (8.3.15.1489), Управление торговлей, редакция 11 (11.4.9.98). Должно подойти для основных типовых конфигураций (не проверял).