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

04.11.14

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

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

Скачать исходный код

Наименование Файл Версия Размер
Вся процедура из Рассчитывать скидки припродаже
.txt 29,36Kb
2
.txt 29,36Kb 2 Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Связь настроек спецификации и настроек структуры заказа в ЕРП 2.5

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

Проблемы при создании ресурсной спецификации. Связь настроек спецификации и настроек структуры заказа в ЕРП 2.5.

06.05.2024    394    It-digit    1    

2

Ценовая власть. Выносим из цикла схему СКД

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

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

1 стартмани

11.04.2024    612    tango    1    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

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

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

10 стартмани

11.04.2024    483    tango    5    

4

Ценовая власть. Второй сезон

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

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

08.04.2024    843    tango    0    

2

Ценовая власть или Управление ценообразованием (УТ 11.5)

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

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    692    tango    12    

2

Расширяем возможности дополнительных обработок и настраиваем их отладку

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

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2859    YA_418728146    11    

48

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

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

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1362    8    2ncom    6    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

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

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    5228    mrXoxot    11    

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