Не пойму, как работает установка скидок номенклатуры в ценообразовании (v8.1, конфа Торговля для ЧП 1.0.6.1). Устанавливаю скидку 1% при условиях "Сумма документа превысила"..."300 грн" (Для всей номенклатуры, Для всех получателей). При заполнении документа РеализацияТоваров вбиваю номенклатурину, задаю кол-во 1 и цену 200 грн - заполняется ячейка строки "Процент скидки" - 1.00, сумма пересчиталась. Почему? Сумма не превысила 300 грн. Это выходит накопительная скидка?. В инструкции к конфе ее тип не указан. Нужна суто разовая: покупает чувак товар, сумма больше 300 - процент скинули. Если больше 700 - 1,5%, больше 1500 - 2%. Типовые решения есть?
Торговля это замечательно, но мне нужно дописывать разовую скидку в торговле для ЧП. Типового решения не вижу. Проверку условия в документе Реализация сделал, нужно циклом заполнить ячейки ПроцентСкидки во всех строках табл. части и потом пересчитать сумму
// вычисление скидки по условию общей суммы .... // заполнение строк Для каждого СтрокаТабличнойЧасти Из ТабличнаяЧасть Цикл СтрокаТабличнойЧасти.ПроцентСкидкиНаценки = Скидка; ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЦикла;
не катит... как пройтись по строкам и заполнить нужные ячейки?
Для каждого СтрокаТабличнойЧасти Из Товары Цикл СтрокаТабличнойЧасти.ПроцентСкидкиНаценки = Скидка; ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЦикла;
Примечание: обязательно ставьте все обновления конфы до последней - имеется глюк при использовании скидок в Реализации товаров - несходство сумм в документе, следовательно - документ не проводится. После последнего апдейта пропатчилось.
// Рассчитаем скидки по сумме. Если (СуммаПолная >= 300) И (СуммаПолная < 700) Тогда Скидка = 1; КонецЕсли;
Если (СуммаПолная >= 700) И (СуммаПолная < 1500) Тогда Скидка = 1.5; КонецЕсли;
Если СуммаПолная >= 1500 Тогда Скидка = 2; КонецЕсли;
Ну а дальше по тексту (см. выше). Скидки забиваем циклом в нужные ячейки, и сумма пересчитается. Можно обойтись без кнопки, вкинуть листинг для процедур ТоварыНоменклатураПриИзменении, ТоварыЦенаПриИзменении, ТоварыКоличествоПриИзменении - будет само считать. Можно общим модулем и вызывать одной строкой.
Gattacka, а вы вообще с программированием сталкивались когда-то? (простите за нескромность)
// Рассчитаем скидки по сумме. Если (СуммаПолная >= 300) И (СуммаПолная < 700) Тогда Скидка = 1; ИначеЕсли (СуммаПолная >= 700) И (СуммаПолная < 1500) Тогда Скидка = 1.5; ИначеЕсли СуммаПолная >= 1500 Тогда Скидка = 2; КонецЕсли;
ЗЫ. я не утверждаю, а спрашиваю
Конечно! Мой первый вариант) Только тогда я не делал двойные условия, и ИначеЕсли нормально не работало (пока вспомнил универскую практику, давно было...). Переделывал, расписал все по отдельности. А когда заработало, так и оставил отдельными условиями). Действительно можно бы и переписать в одно, забыл. Дык уже стоит у клиента, мать его так.
2 Гаттака: Добавить обработку, которая сохраняет переменные скидок и условий, нарисовать там варианты От...До. Общий модуль для вычисления, к-рый вызывается из документа под конкретную проводку, обращается к переменным скидок/условий, сравнивает и текущей суммой и выбирает подходящий процент... Вполне реально, почему нет? Только будет она под один типичный вариант: От aaa грн До bbb грн - x% От bbb грн До ссс грн - у%. ................................. - й% ..... ну и так далее
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!