Имя: Пароль:
1C
1С v8
РМК розница 2.2 применение скидок, цена за 1шт, больше одного, и цена за остаток
0 afro
 
18.12.19
12:44
Всем привет, нужна помощь в решении такого вопроса: есть товар, у которого цена за 1 шт например 100 руб, если больше одного 90 руб, если покупатель забирает весь остаток товара этой позиции номенклатуры/характеристики то цена 80 руб за шт.
Не могу придумать как это реализовать, а давать возможность менять цены кассиру нельзя.
создал 3 вида цены, автоматический расчет по видам цен. как их применить при продаже? при этом остаток при каждой продаже разный и может случиться условие что остаток 1 или 2 шт., при этом приоритет должен быть у вида цены "за весь остаток" если после продажи на складе остается 0шт.
1 Звездец
 
18.12.19
13:26
покупатель не может знать остаток, так что лучше указывать конкретное количество
2 afro
 
18.12.19
13:28
как раз перед покупателем корзинка с остатком, он может из нее взять 1шт, несколько шт, или забрать всю корзинку с максимальной скидкой
3 VKS
 
18.12.19
13:48
В типовой нет условия на остаток. Можно задать на количество, но тут не подходит.
Поэтому делать сперва внешнее условие на остаток, а остальные варианты на количество. Все засунуть в папку максимум. Соответственно сработает лучшее условие по цене
4 afro
 
18.12.19
14:05
ок, благодарю за подсказку, сейчас поищу как это сделать, если есть гдето пример подобного, ткните меня в него) сам на начальном уровне, только мелкие правки делал, по этому если найдется максимально разжеванный пример буду очень благодарен)
5 VKS
 
18.12.19
14:25
пример есть куда релиз устанавливается \1c\Retail\НомерРелизаРозницы\Discount
6 afro
 
18.12.19
14:29
ок, спасибо, пошел курить
7 afro
 
23.12.19
10:13
Пришел в итоге в модуль СкидкиНаценкиСервер, вопрос как мне получить в условии остаток товара на складе в текущей строке?
т.е. мне нужно в устовие вставить остаток ТекущееУсловиеВыполнено = ???????????????? <= ИтогДляУсловия;

[code]
                Для Каждого СтрокаТовара Из ТоварыСегмента Цикл
                    УсловиеПоСтрокеВыполнено = Ложь;
                    Если Условие.ТипСравнения = Перечисления.ТипыСравненияЗначенийСкидокНаценок.НеМенее Тогда
                        УсловиеПоСтрокеВыполнено = Условие.ЗначениеУсловияОграничения <= СтрокаТовара[ИмяРесурса];
                        Если СтрокаДереваСкидок.КратноКоличествуУсловий Тогда
                            СтрокаДереваСкидок.КоличествоВыполненийУсловия = ?(Условие.ЗначениеУсловияОграничения = 0, 1, Цел(СтрокаТовара[ИмяРесурса] / Условие.ЗначениеУсловияОграничения));
                        КонецЕсли;
                    ИначеЕсли Условие.ТипСравнения = Перечисления.ТипыСравненияЗначенийСкидокНаценок.НеБолее Тогда
                        УсловиеПоСтрокеВыполнено = Условие.ЗначениеУсловияОграничения >= СтрокаТовара[ИмяРесурса];
                        Если СтрокаДереваСкидок.КратноКоличествуУсловий Тогда
                            СтрокаДереваСкидок.КоличествоВыполненийУсловия = 1;
                        КонецЕсли;
                    ИначеЕсли Условие.ТипСравнения = Перечисления.ТипыСравненияЗначенийСкидокНаценок.НеМенееОстаткаНаСкладе Тогда
                        ТекущееУсловиеВыполнено =  <= ИтогДляУсловия;
                        Если СтрокаДереваСкидок.КратноКоличествуУсловий Тогда
                            СтрокаДереваСкидок.КоличествоВыполненийУсловия = 1;
                        КонецЕсли;
                    КонецЕсли;
[/code]
8 afro
 
23.12.19
10:37
возможно что-то вроде этого надо, но как правильно связать это не понимаю

РегистрыНакопления.ТоварыНаСкладах.Количество(ТекущаяДата(), Новый Структура("Номенклатура, Характеристика, Склад", Номенклатура, Характеристика, Склад)).Итог("Количество")