Скидка на второй товар в чеке 50%, третий бесплатно!

11.08.16

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

Небольшая доработка конфигурации Управление Торговлей 11, которая позволяет использовать популярные в наше время конфигурации скидок "скидка 50% на второй товар", "скидка 70% на второй товар", "третий товар в чеке БЕСПЛАТНО" и т. д.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
ИнструкцияПоСкидкам
.rar 129,77Kb
7
7
1 SM
Скачать Купить за 1 850 руб.

Клиент поставил задачу настроить скидки в конфигурации Управление торговлей, редакция 11.1 - "скидка 50% на второй товар" или "третий товар в чеке БЕСПЛАТНО". Со второй половиной задачи проблем не было (настраивается с помощью типа скидки подарок), а вот функционала конфигурации для решения первой половины задачи не оказалось! Погуглил - действительно нет! Специалист учебного центра в комментариях к своей статье  предлагает использовать готовые динамические комплекты (наборы) для решения данной задачи, но такое решение не подходит если не известны заранее компоненты набора или их очень много. И тут, как обычно в таких случаях, помогает "напильник". 

В общем модуле "СкидкиНаценкиСервер" находим процедуру "РассчитатьСкидку"  в ней условие: 

	ИначеЕсли ПараметрыСкидки.СпособПредоставления = Перечисления.СпособыПредоставленияСкидокНаценок.Подарок Тогда

после строки "Сумма = 0;" вносим корректировки в код:

		//Определяем делитель исходя из скидки в размере тысячных долей стоимости последнего самого дешевого товара в чеке. 0,500 соответствует 50% скидки и т.д. 
		Если ПараметрыСкидки.ЗначениеСкидкиНаценки < 1 И Не ПараметрыСкидки.ЗначениеСкидкиНаценки = 0 Тогда
			Делитель = 1/ПараметрыСкидки.ЗначениеСкидкиНаценки;
		Иначе
			Делитель = 1;
		КонецЕсли; 
		//конец изменений
		

        //округляем до целых, т.к. если при вычислении получится число хоть на миллионную меньше целого, скидка не рассчитаться
		Для i=1 По МинимальнаяКратностьВыполнения * Окр(ПараметрыСкидки.ЗначениеСкидкиНаценки*Делитель ,0) Цикл   
			Для Каждого СтрокаТЧ Из ТаблицаСтоимостейТоваров Цикл
				Если СтрокаТЧ.Количество > 0 Тогда
					СтрокаТЧ.Количество = СтрокаТЧ.Количество - 1;
		//в след. строке определяется сам размер скидки - половина, третья часть, полная стоимость последнего товара в чеке			
                    Сумма = Сумма + СтрокаТЧ.Цена/Делитель;  
					Прервать;
				КонецЕсли;
			КонецЦикла;
		КонецЦикла;

Теперь, для решения первоначальной задачи создадим  группу совместного применения и укажем вариант применения (максимум или вытеснение), добавим две новые скидки "50% на второй товар" и "3й товар в подарок" с типом скидки "Подарок", а в поле "Предоставить скидку на стоимость" указываем соответственно 0,500 и 1,000 стоимости единицы, в условиях указываем соответственно количество в документе не менее 2 ед. и не менее  3 ед. По правде говоря, в чеке 3й товар не будет с нулевой стоимостью, а второй товар с 50% стоимости - будет рассчитана скидка величиной половина стоимости второго или полная стоимость третьего, которая распределится на все позиции в чеке. Но нас это устраивает, т.к. по закону стоимость не может быть 0 рублей. 
Задача решена. Пользуемся  на здоровье!   

Во вложении прикреплена короткая инструкция по настройке скидок и код модуля с изменениями указанный выше. 

скидка на второй товар третий товар бесплатно настройка скидок

См. также

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

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

29400 руб.

29.06.2023    5143    11    5    

20

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

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

7200 руб.

02.08.2023    3523    8    0    

27

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

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

2 стартмани

22.04.2024    4717    dimanich70    15    

20

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

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

01.03.2024    3584    dimanich70    8    

16

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

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

1 стартмани

27.10.2023    2780    21    avmartynov    14    

53

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

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

2 стартмани

22.08.2023    2856    43    progmaster    8    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CnupT 70 17.08.16 13:12 Сейчас в теме
Ну оочень частный случай задачи.
Например в моей практике была задача увеличивать скидку на 10% на каждую последующую покупку в чеке. Т.е.:
1я строка 10%
2я Строка 20%
3я строка 30% и т.д.

Или просто на вторую строку 20%.

На мой взгляд, правильным решением этой задачи было бы добавление нового условия срабатывания скидки: "номер строки равен (больше, меньше) Х".
2. script 128 08.01.17 03:05 Сейчас в теме
А разве не для этого предназначен тип скидки "Специальная цена"?
3. aharechko 47 04.04.17 14:10 Сейчас в теме
Загрузил вашу инструкцию.
"Скидка 50% на второй товар" - все работат.

Ваш код не решает следующую проблему:
Клиент купляет три товара.
Должен получить следующие скидки:
1. "Скидка 50% на второй товар"
2. "Скидка 30% на третий товар"

Можно это реализовать?
4. Artem1405 25 03.12.18 07:56 Сейчас в теме
Автор ты хоть код модуля кинь в архив, а то не понятно куда вставлять твой код!
5. yaroshevsky 04.02.19 12:43 Сейчас в теме
А можно такую же доработку для 1С:Управление небольшой фирмой для Украины
vvvvv@meta.ua
Оставьте свое сообщение