Скидка за комплект

04.11.14

Разработка - Механизмы типовых конфигураций

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Вся процедура из Рассчитывать скидки припродаже
.txt 29,36Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

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

Суть реализации.

1. Добавляем Перечисления.УсловияСкидкиНаценки.ПоКоличествуВариантовВгруппе

2. Документ.УстановкаСкидокНоменклатуры
   - МодульОбъекта
         Функция РассчитыватьАвтоматическиеСкидки(ТекВид)
       Дополняем  условие проверкой

ИначеЕсли ТекВид = Перечисления.УсловияСкидкиНаценки.ПоКоличествуВариантовВгруппе Тогда
        Результат = ИспользованиеСкидок.ИспользоватьСкидкиПоКоличествуТовара;

   - ФормаДокумента

     Процедура ПередОткрытием() ,
      Добавить строку

ЭлементыФормы.Условие.СписокВыбора.Добавить(Перечисления.УсловияСкидкиНаценки.ПоКоличествуВариантовВгруппе);  

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

Здесь самое интересное. Сначала поясню алгоритм.

У нас есть документ установки скидок-наценок. И обычно из регистра сведений выбирается информация о сроках действия скидки и ее условиях (тип покупателей- опт/все, кол-во/сумма товара, сам товар или ценовые группы).

В нашем случае все сложнее. Скидка действует тогда, когда куплены ВСЕ позиции, определнные в ОДНОМ документе установки скидок/наценок.

Для проверки этого соответствия я выбираю в запросе ДОКУМЕНТ-РЕГИСТРАТОР и создаю таблицу его позиций. Дополняю колонкой количества товара (из документа, естественно). Процент скидки=0 (чтобы не пересекалось с другими).

Затем обхожу табличную часть товаров текущего документа, для которго может быть применена скидка, и, если номенклатура и ее характеристика есть в моей таблице, созданной из РЕГИСТРАТОРА, уменьшаю в ней кол-во товара на указанное в документе продажи.

По окончанию обхода вывожу в окно сообщений все позиции с положительным количеством (их не хватает для применения скидки).

Собсвенно этот участок кода.

Во вложении полный текст процедуры и запроса. Внимание - там есть и другие изменения (например, описанные в //infostart.ru/public/155509/)

    УсловиеВгруппе = Перечисления.УсловияСкидкиНаценки.ПоКоличествуВариантовВгруппе;
	
	ТаблицаСкидокВгруппе = ТаблицаСкидок.Скопировать(,"НРегистратор, НУсловие");
	ТаблицаСкидокВгруппе.Свернуть("НРегистратор, НУсловие",);

	Для Каждого СтрокаГруппы Из ТаблицаСкидокВгруппе Цикл
		Если СтрокаГруппы.НУсловие = УсловиеВгруппе Тогда
			
	Если ТипЗнч (СтрокаГруппы.НРегистратор.Товары) = Тип("ТаблицаЗначений") Тогда
		ТаблицаНеДостаточно = СтрокаГруппы.НРегистратор.Товары.Скопировать(,"Номенклатура, ХарактеристикаНоменклатуры");
	Иначе
		ТаблицаНеДостаточно = СтрокаГруппы.НРегистратор.Товары.Выгрузить(,"Номенклатура, ХарактеристикаНоменклатуры");
	КонецЕсли;

             ТаблицаНеДостаточно.Колонки.Добавить("Количество");
			 Для Каждого СтрокаСкидокТоваров ИЗ ТаблицаНеДостаточно Цикл
					СтрокаСкидокТоваров.Количество = СтрокаГруппы.НРегистратор.ЗначениеУсловия
			 КонецЦикла;

			 
             Для Каждого СтрокаСкидокТоваров ИЗ ТаблицаНеДостаточно Цикл
			     Для Каждого СтрокаТоваров ИЗ ТаблицаТоваров Цикл
					 Если (СтрокаТоваров.Номенклатура = СтрокаСкидокТоваров.Номенклатура) И 
						  (СтрокаТоваров.ХарактеристикаНоменклатуры = СтрокаСкидокТоваров.ХарактеристикаНоменклатуры)
					 Тогда
						  СтрокаСкидокТоваров.Количество = СтрокаГруппы.НРегистратор.ЗначениеУсловия - СтрокаТоваров.Количество * СтрокаТоваров.Коэффициент;
					 КонецЕсли;		  
	        	 КонецЦикла;
        	 КонецЦикла;
			 
			ОбработкаКомментариев = глЗначениеПеременной("глОбработкаСообщений");
			ФормаКом=ОбработкаКомментариев.ПолучитьФорму();
			Если ФормаКом.Открыта() Тогда
				 ОчиститьСообщения();
			Иначе	
				 ФормаКом.Открыть();
			КонецЕсли;
			
			 Сообщить("Скидка " + СтрокаГруппы.НРегистратор );
			 Сообщить("=====================================");
			 Для Каждого СтрокаСкидокТоваров ИЗ ТаблицаНеДостаточно Цикл
				 Если (СтрокаСкидокТоваров.Количество>0) Тогда
//					 Сообщить("Для скидки по документу " + СтрокаГруппы.НРегистратор + " недостаточно товаров: " + СтрокаСкидокТоваров.Номенклатура +"/"+СтрокаСкидокТоваров.Количество+" шт");
					 Сообщить("Для скидки " + СтрокаГруппы.НРегистратор.Комментарий + " недостаточно товаров: " + СтрокаСкидокТоваров.Номенклатура +"\"+СтрокаСкидокТоваров.Количество+" шт");
				 КонецЕсли;	 
	         КонецЦикла;

		КонецЕсли;
	КонецЦикла;	

скидка на комплект

См. также

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    1298    PROSTO-1C    0    

17

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1390    Vidz    0    

10

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    978    olja-ljaaa    0    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    4227    Serg2000mr    32    

105

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

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    956    tango    5    

3

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

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    811    tango    5    

4

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

В первом сезоне мы рассмотрели (с точки зрения программиста) внутренний механизм, помещающий цены в регистр "Цены". Из этого регистра цена попадает в исходящие УПД (в продажи). Но эта цена (в прайс-листе) дифференцирована (ценообразована) в разрезах свойств самой номенклатуры. Но стратегия ценообразования, ценовая власть - это в первую очередь о работе с ценами для клиента. И тут вступает в дело второй акт марлезонского, Скидки (наценки) и кешбек.

08.04.2024    1088    tango    0    

2
Оставьте свое сообщение