Реализация системы скидок

11.10.17

Задачи пользователя - Адаптация типовых решений

В торговле имеет большое значение система скидок, чем больше типов скидок, тем более вероятность покупки, также можно мотивировать покупателя покупать не 1 вещь. Думаю, информация будет полезной, так как мне нужно было срочно внедрить, а материала не так много в сети, потому хочу поделиться опытом внедрения системы скидок в торговлю. Систему внедрял на УТ 10.3.41.1.

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

Скидка по типу цен

Есть в типовом механизме документа установка скидок "Количество одного товара в документе превысило", механизм представляет собой, если в поле указать кол-во товара 3, то на каждый товар будет скидка, указанная в поле процент. Возникла необходимость, чтобы был не процент скидки, а конкретная сумма.

Для реализации необходимо добавить поле в документе "Установка скидок номенклатуры", в котором и будет критерий (в моем случае видов скидок 4, потому создан справочник и справочник привязан к критериям скидки). В критерии мы указываем, что будет действовать специальная цена (Справочник "Тип Цен", создаем свой, чтобы не был связан с точкой). Далее заполняем документ "Установка скидок номенклатуры" все необходимые поля в типовом механизме.

После заходим в "Установка цен номенклатуры", создаем документ с типом цен, который заполнен в новом критерии. Выставляем цены с учетом скидки, проводим, готово.

Вот код для  "Общие модули - ОбработкаТабличныхЧастей" Процедура РассчитатьСкидкиПриПродаже

//Определение специальных цен для скидки

        ЗапросЦен = Новый Запрос;
        ЗапросЦен.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
        |    ЦеныНоменклатурыСрезПоследних.Цена
        |ИЗ
        |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        |            &ОтборДата,
        |            ТипЦен = &ОтборТипЦен
        |                И Номенклатура В (&ОтборНоменклатура)) КАК ЦеныНоменклатурыСрезПоследних";
        ЗапросЦен.УстановитьПараметр("ОтборДата", КонецДня(ДокументОбъект.Дата));
        ЗапросЦен.УстановитьПараметр("ОтборТипЦен", ТекРасчетСкидки.СкидкаПоТипуЦен);
        ЗапросЦен.УстановитьПараметр("ОтборНоменклатура", ТаблицаТоваров.ВыгрузитьКолонку("Номенклатура"));
        ТЗСпецЦены = ЗапросЦен.Выполнить().Выгрузить();

//Расчет скидки

СтрТЗСпецЦены = ТЗСпецЦены.Найти(СтрокаТЧ.Номенклатура, "Номенклатура");
            Если СтрТЗСпецЦены <> Неопределено Тогда
                СтрокаТЧ.Сумма = СтрокаТЧ.Количество * СтрТЗСпецЦены.Цена;
                СтрокаТЧ.ПроцентАвтоматическихСкидок = Окр(((СтрокаТЧ.СуммаБезСкидки - СтрокаТЧ.Сумма) / СтрокаТЧ.СуммаБезСкидки) * 100, 2);
            КонецЕсли;

Скидка на товар кратный условию

Рассмотрим скидку, если купили 2 позиции, то 3 по скидке, 4 снова за полную стоимость (в варианте 1, после выполнения условия, например купили 2 позиции, то на 3,4,5 и т д. уже будет действовать скидка), то есть скидка действует только каждой 3 позиции. Работает абсолютно так же как и первая позиция, только добавляется еще 1 свой критерий ( тип цен, кратность), в первом варианте только тип цен.

Вот код для расчета по кратности

Для Каждого ТекРасчетСкидки Из СтруктМасРасчета["СкидкаПоТипуЦен_КратностьКолТовара"] Цикл
        
        //Определение специальных цен для скидки
        ЗапросЦен = Новый Запрос;
        ЗапросЦен.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
        |    ЦеныНоменклатурыСрезПоследних.Цена
        |ИЗ
        |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        |            &ОтборДата,
        |            ТипЦен = &ОтборТипЦен
        |                И Номенклатура В (&ОтборНоменклатура)) КАК ЦеныНоменклатурыСрезПоследних";
        ЗапросЦен.УстановитьПараметр("ОтборДата", КонецДня(ДокументОбъект.Дата));
        ЗапросЦен.УстановитьПараметр("ОтборТипЦен", ТекРасчетСкидки.СкидкаПоТипуЦен);
        ЗапросЦен.УстановитьПараметр("ОтборНоменклатура", ТаблицаТоваров.ВыгрузитьКолонку("Номенклатура"));
        ТЗСпецЦены = ЗапросЦен.Выполнить().Выгрузить();
        
        //Перебор товаров
        Для Каждого СтрокаТЧ Из ТаблицаТоваров Цикл
            Если СтрокаТЧ.СуммаБезСкидки = 0 Тогда
                Продолжить;
            КонецЕсли;
            
            Если СтрокаТЧ.ПроцентАвтоматическихСкидок = 100 Тогда
                Продолжить;
            КонецЕсли;
            
                СтрТЗСпецЦены = ТЗСпецЦены.Найти(СтрокаТЧ.Номенклатура, "Номенклатура");
                Если СтрТЗСпецЦены <> Неопределено Тогда
                    
                    //Определение кратности товара
                    КолКратныхПачек = Цел(СтрокаТЧ.Количество / ТекРасчетСкидки.СкидкаПоТипуЦен_КратностьКоличестваТовара);
                    
                    Если КолКратныхПачек > 0 Тогда
                        КолТовараСоСкидкой = КолКратныхПачек * ТекРасчетСкидки.СкидкаПоТипуЦен_КратностьКоличестваТовара;
                        
                        //Расчет суммы товара
                        СуммаСПрименениемСкидки = КолТовараСоСкидкой * СтрТЗСпецЦены.Цена;
                        СуммаБезПримененияСкидки = (СтрокаТЧ.Количество - КолТовараСоСкидкой) * СтрокаТЧ.Цена;
                        СтрокаТЧ.Сумма = СуммаСПрименениемСкидки + СуммаБезПримененияСкидки;
                        СтрокаТЧ.ПроцентАвтоматическихСкидок = Окр(((СтрокаТЧ.СуммаБезСкидки - СтрокаТЧ.Сумма) / СтрокаТЧ.СуммаБезСкидки) * 100, 2);
                        
                    КонецЕсли;
                КонецЕсли;
        КонецЦикла;
    КонецЦикла;

Остальные типы скидок, думаю, не так интересны, потому рассматривать не будем.

См. также

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4426    17    1    

35

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    6317    15    5    

24

Печатные формы Адаптация типовых решений Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    7006    75    17    

31

Адаптация типовых решений Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    5419    dimanich70    15    

22

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    7838    dimanich70    10    

20

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

27.10.2023    3845    30    TempTablesManager    14    

54

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

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

2 стартмани

22.08.2023    3817    60    progmaster    9    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ZLENKO 398 11.10.17 20:16 Сейчас в теме
Маркетологи чего только не придумают :-) Я недавно делал скидку за % определенного ассортимента в документе, т.е. заданный список товара должен был составлять не менее 20% от суммы документа. Или, например, чтобы получить скидку надо купить не менее 5 наименований из заданного списка товаров.Или, например, скидку за комплект покупки, т.е. комбинирование товаров в комплекты со скидкой. Вобщем вариантов много :-)
2. bakler 14 12.10.17 11:29 Сейчас в теме
А по факту одно и тоже, бездельники
3. TerveRus 18.10.17 09:13 Сейчас в теме
Реализация бонусной системы на старых версиях УТ не менее интересна.
Сейчас повсеместно используют именно накопительные карты с бонусами, а не просто разовые скидки.
4. ZLENKO 398 18.10.17 13:21 Сейчас в теме
(3) "Сейчас повсеместно используют именно накопительные карты с бонусами, а не просто разовые скидки"

Действительно бонусные системы почему то приобрели популярность, поэтому недавно дописал работу с бонусами.
Технически ничего сложного в бонусах нет. Просто вместо скидки начисляем бонус, а механизмы те же что и для скидок.
6. djek88 1 19.10.17 18:52 Сейчас в теме
(4)
Людям проще знать, что у них есть бонусы и их можно потратить, чем где-то предоставляют скидки.

А как реализовали механизм списания бонусов и оплаты бонусами?
8. ZLENKO 398 20.10.17 12:04 Сейчас в теме
(6)
А как реализовали механизм списания бонусов и оплаты бонусами?


Начисление бонусов = Начисление скидки, но дается не скидка в документ, а в регистр накопления накапливается сумма бонуса.
Оплата бонусом = Предоставление скидки, но сумма скидки ограничивается суммой накопленного бонуса, а в регистр списывается сумма бонуса.
10. ZLENKO 398 20.10.17 12:14 Сейчас в теме
(6) "А как реализовали механизм списания бонусов и оплаты бонусами? "

7. VampirRo 20.10.17 10:32 Сейчас в теме
(4) Сейчас повсеместно используют именно накопительные карты с бонусами, а не просто разовые скидки


Бонусные системы приобрели популярность по нескольким причинам. 1. Привлечение клиента на повторное посещение магазина (или покупку)
2.Бонусы обычно обставляются различными условиями, которые делают более прибыльным вариант их использование для магазина при внешней привлекательности для клиента (оплатить им не более какого-то процента от суммы товара, сгорают через определенное время) и т.д. Бонусы начисляемы в баллах (обычно привязанных к рублю) вызывают у покупателя большее чувство собственничества чем проценты скидки от неизвестно какой цены. Грубо говоря сто рублей ощутимее 2 процентов. У меня 3 клиенстких магазина перешли со скидочных накопительных карт на бонусы.
9. ZLENKO 398 20.10.17 12:09 Сейчас в теме
(7)
У меня 3 клиенстких магазина перешли со скидочных накопительных карт на бонусы.


И что это им дало ? :-) На самом деле ни скидки ни бонусы не повышают лояльность :-)
11. djek88 1 20.10.17 13:02 Сейчас в теме
(7)
У меня 3 клиенстких магазина перешли со скидочных накопительных карт на бонусы.


Присоединяюсь.
А эффект от этого перехода как-то измерили?
5. ZLENKO 398 18.10.17 13:27 Сейчас в теме
Примерно то же самое:
Если СтрокаСкидки.СпособПредоставленияСкидки = Перечисления.СпособыПредоставленияСкидки.СкидкаНаКратноеКоличество Тогда
			//даем скидку процентом на количество в строке кратное указанному 
			Если Количество > 0 И СтрокаСкидки.ЗначениеСпособПредоставленияСкидки > 0 И Количество >= СтрокаСкидки.ЗначениеСпособПредоставленияСкидки Тогда
				Скидка = (ЦЕЛ(Количество/СтрокаСкидки.ЗначениеСпособПредоставленияСкидки)*СтрокаСкидки.ЗначениеСпособПредоставленияСкидки)*(Сумма/Количество)*СтрокаСкидки.ЗначениеСкидкиНаценки/100;
			КонецЕсли;
Оставьте свое сообщение