|
Объясните пожалуйста смысл процедуры | ☑ | ||
---|---|---|---|---|
0
Klesk
12.01.13
✎
06:17
|
Процедура ПересчитатьЦенуСкидкуПоСуммеВПродажахВСтрокеТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения)
СтруктураПараметровДействия = Неопределено; Если СтруктураДействий.Свойство("ПересчитатьЦенуСкидкуПоСуммеВПродажах", СтруктураПараметровДействия) Тогда ИспользоватьРучныеСкидки = Ложь; Если СтруктураПараметровДействия <> Неопределено Тогда Если СтруктураПараметровДействия.Свойство("ИспользоватьРучныеСкидки") Тогда ИспользоватьРучныеСкидки = Истина; КонецЕсли; КонецЕсли; ИспользоватьАвтоматическиеСкидки = Ложь; Если СтруктураПараметровДействия <> Неопределено Тогда Если СтруктураПараметровДействия.Свойство("ИспользоватьАвтоматическиеСкидки") Тогда ИспользоватьАвтоматическиеСкидки = Истина; КонецЕсли; КонецЕсли; ИмяКоличества = "КоличествоУпаковок"; Если СтруктураПараметровДействия <> Неопределено Тогда Если НЕ СтруктураПараметровДействия.Свойство("ИмяКоличества",ИмяКоличества) Тогда ИмяКоличества = "КоличествоУпаковок"; КонецЕсли; КонецЕсли; Если ИспользоватьРучныеСкидки И КэшированныеЗначения.ИспользоватьРучныеСкидкиВПродажах = Неопределено Тогда КэшированныеЗначения.ИспользоватьРучныеСкидкиВПродажах = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах"); КонецЕсли; Если ИспользоватьАвтоматическиеСкидки И КэшированныеЗначения.ИспользоватьАвтоматическиеСкидкиВПродажах = Неопределено Тогда КэшированныеЗначения.ИспользоватьАвтоматическиеСкидкиВПродажах = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах"); КонецЕсли; // Если используются ручные скидки - перерасчитаем процент и сумму ручной скидки, иначе перерасчитываем цену Если ИспользоватьРучныеСкидки И КэшированныеЗначения.ИспользоватьРучныеСкидкиВПродажах Тогда Если ТекущаяСтрока.Сумма = 0 Или ТекущаяСтрока[ИмяКоличества] = 0 Тогда ТекущаяСтрока.Цена = 0; ТекущаяСтрока.СуммаРучнойСкидки = 0; Иначе Если ТекущаяСтрока.Цена = 0 Тогда Если ЗначениеЗаполнено(ТекущаяСтрока.ПроцентРучнойСкидки) Тогда ТекущаяСтрока.СуммаРучнойСкидки = (ТекущаяСтрока.Сумма * ТекущаяСтрока.ПроцентРучнойСкидки) / (100 - ТекущаяСтрока.ПроцентРучнойСкидки); КонецЕсли; ТекущаяСтрока.Цена = Окр((ТекущаяСтрока.Сумма + ТекущаяСтрока.СуммаРучнойСкидки) / ТекущаяСтрока[ИмяКоличества], 2); Иначе СуммаБезСкидки = ТекущаяСтрока.Цена * ТекущаяСтрока[ИмяКоличества]; ТекущаяСтрока.СуммаРучнойСкидки = СуммаБезСкидки - ТекущаяСтрока.Сумма; ТекущаяСтрока.ПроцентРучнойСкидки = Окр(100*ТекущаяСтрока.СуммаРучнойСкидки / СуммаБезСкидки, 2); КонецЕсли; КонецЕсли; Иначе Если ТекущаяСтрока.Сумма = 0 Или ТекущаяСтрока[ИмяКоличества] = 0 Тогда ТекущаяСтрока.Цена = 0; Иначе ТекущаяСтрока.Цена = Окр(ТекущаяСтрока.Сумма / ТекущаяСтрока[ИмяКоличества], 2); КонецЕсли; КонецЕсли; Если ИспользоватьАвтоматическиеСкидки Тогда Если КэшированныеЗначения.ИспользоватьАвтоматическиеСкидкиВПродажах Тогда ТекущаяСтрока.СуммаАвтоматическойСкидки = 0; ТекущаяСтрока.ПроцентАвтоматическойСкидки = 0; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры Типовая УТ 11.0.9.5 Не могу въехать |
|||
1
Klesk
12.01.13
✎
06:23
|
что надо передать в неё , чтобы она прошла первое условие
|
|||
2
VladZ
12.01.13
✎
06:26
|
(0) Жуть какая-то...
|
|||
3
GROOVY
12.01.13
✎
06:32
|
(1) В коллекции СтруктураДействий должен быть ключ "ПересчитатьЦенуСкидкуПоСуммеВПродажах"
|
|||
4
Klesk
12.01.13
✎
06:37
|
СтруктураПараметровДействия = Неопределено;
..... ИспользоватьРучныеСкидки = Ложь; Если СтруктураПараметровДействия <> Неопределено Тогда ...... ИспользоватьАвтоматическиеСкидки = Ложь; Если СтруктураПараметровДействия <> Неопределено Тогда ....... Если ИспользоватьРучныеСкидки И ..... Если ИспользоватьАвтоматическиеСкидки Тогда т.е. что не передавай не выполнится ни одно условие (ну кроме первого) ? |
|||
5
GROOVY
12.01.13
✎
06:43
|
//Объявляем переменную для приема параметров
СтруктураПараметровДействия = Неопределено; //Пытаемся найти запись в коллекции по ключу Если СтруктураДействий.Свойство("ПересчитатьЦенуСкидкуПоСуммеВПродажах", СтруктураПараметровДействия) Тогда //Если нашли то значение по ключу записали в переменную СтруктураПараметровДействия //Объявляем переменную хз зачем ИспользоватьРучныеСкидки = Ложь; //Если ранее нашли ключ СтруктураПараметровДействия то идем в условие Если СтруктураПараметровДействия <> Неопределено Тогда //Если есть в коллекции ключ с именем ИспользоватьРучныеСкидки То идем в условие Если СтруктураПараметровДействия.Свойство("ИспользоватьРучныеСкидки") Тогда //Присваиваем переменной значение истина. ИспользоватьРучныеСкидки = Истина; КонецЕсли; КонецЕсли; Написано немного по дурацки, но смахивает на стандарт разработки конфигураций от 1С. |
|||
6
Klesk
12.01.13
✎
06:50
|
(5) понял, спасибо
|
|||
7
GROOVY
12.01.13
✎
07:03
|
(6) Пожалуйста.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |