Имя: Пароль:
1C
1С v8
Начисление скидки покупателю
0 Cherryy
 
21.05.16
16:43
В общем, задача стоит следующая: необходимо по отдельному покупателю отобрать документы продажи и просуммировать все, если выходит сумма, н-р, больше 50000, то на остальные его заказы автоматически начислять скидку, к примеру, 10%. Как это лучше реализовать? Создал Критерий Отбора по типу Справочник.Контрагенты..на форме Заказы добавил отдельный столбец Скидка..создал справочник Скидка, а дальше что понятия не имею( дайте толчок
1 vicof
 
21.05.16
17:27
2 vicof
 
21.05.16
17:31
(0) Критерий отбора в пень. Справочник в пень. Кто тебя к базе подпустил?
3 Chameleon1980
 
21.05.16
17:57
нетленку пишем?
4 Cherryy
 
21.05.16
18:05
Хорошо, тогда как бы реализовали вы?
5 Chameleon1980
 
21.05.16
18:19
самое простое, видимо, регистр накоплений (обороты)
намек понятен?
6 Cherryy
 
21.05.16
20:42
сделал РГ..измерения Покупатель, ресурс Итоговая Сумма..и регистратором получается будет Заказы? и в движении регистра записать условие? заранее извините за глупые вопросы, ибо новичок
7 Chameleon1980
 
21.05.16
20:51
в обработке проведения нужного дока (тут заказ) пиши сумму документа в этот регистр

в момент расчета в новом доке скидки (не знаю по кнопке будет или при вводе новой строки или при записи там) анализируй запросом регистр наш новый и делай выводы.

думаю можно и через рс реализовать - может быстрей (в плане работы) получиться
8 vicof
 
21.05.16
21:00
(6) Метлу в руки и мести, мести до просветеления
9 vicof
 
21.05.16
21:00
раз новичок, книжки читать надо и смотреть типовые конфигурации
10 vicof
 
21.05.16
21:03
Регистр продажи у тебя есть. По нему можно считать, сколько денег тебе принес покупатель. Заказ тут вообще никаким боком - это просто намерение клиента что-то купить.  Сумму по продажам сравнил с пороговой, установил скидку.

Какая конфигурация?
11 Cherryy
 
22.05.16
14:37
самописная

&НаКлиенте
      Процедура ТоварыНоменклатураПриИзменении(Элемент)
    СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
    СтрокаТЧ.Цена =ПолучитьЦену(СтрокаТЧ.Номенклатура);
    СтрокаТЧ.Цена=СтрокаТЧ.Номенклатура.Цена*(100-Объект.ПроцентСкидки)/100;
    ТоварыКоличествоПриИзменении(Элемент);
КонецПроцедуры


&НаСервере
      Процедура КлиентПриИзменении(Элемент)
Если Объект.Клиент <> Справочники.Контрагенты.ПустаяСсылка() Тогда
        Отбор = Новый Структура("Контрагент", Объект.Клиент);
        ОбъемЗакупки =
РегистрыНакопления.Продажи.Обороты(НачалоМесяца(ДобавитьМесяц(Объект.Дата,-1)),КонецМесяца(ДобавитьМесяц(Объект.Дата,-1)),Отбор,"Контрагент","Сумма");
        ОбъемЗакупки.ВыбратьСтроку("Продажи.Обороты за предыдущий месяц по "+Объект.Клиент);
        ПроцентСкидки = 0;
        Если ОбъемЗакупки.Количество() > 0 Тогда
            СуммаЗакупки = ОбъемЗакупки[0].Сумма;
            Если СуммаЗакупки >= 10000 Тогда ПроцентСкидки = 15;
                ИначеЕсли СуммаЗакупки >= 5000 Тогда ПроцентСкидки = 10;
                ИначеЕсли СуммаЗакупки >= 3000 Тогда ПроцентСкидки = 5;    
                ИначеЕсли СуммаЗакупки >= 1000 Тогда ПроцентСкидки = 2;    
            КонецЕсли;
        КонецЕсли;    
        Для Каждого СтрокаТЧ Из Элементы.Товары Цикл
            СтрокаТЧ.Цена = СтрокаТЧ.Номенклатура.Цена*(100-ПроцентСкидки)/100;
                    КонецЦикла;
    КонецЕсли;    
      КонецПроцедуры


не могу найти косяки, помогайте(
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.