Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Объясните пожалуйста смысл процедуры

Объясните пожалуйста смысл процедуры
Я
   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
Не могу въехать
 
 
   Klesk
 
1 - 12.01.13 - 06:23
что надо передать в неё , чтобы она прошла первое условие
   VladZ
 
2 - 12.01.13 - 06:26
(0) Жуть какая-то...
   GROOVY
 
3 - 12.01.13 - 06:32
(1) В коллекции СтруктураДействий должен быть ключ "ПересчитатьЦенуСкидкуПоСуммеВПродажах"
   Klesk
 
4 - 12.01.13 - 06:37
СтруктураПараметровДействия = Неопределено;

.....

 ИспользоватьРучныеСкидки = Ложь;
        Если СтруктураПараметровДействия <> Неопределено Тогда

......

ИспользоватьАвтоматическиеСкидки = Ложь;
        Если СтруктураПараметровДействия <> Неопределено Тогда

.......
Если ИспользоватьРучныеСкидки И 

.....

 Если ИспользоватьАвтоматическиеСкидки Тогда


т.е. что не передавай не выполнится ни одно условие (ну кроме первого) ?
   GROOVY
 
5 - 12.01.13 - 06:43
//Объявляем переменную для приема параметров
 
СтруктураПараметровДействия = Неопределено;
    
 //Пытаемся найти запись в коллекции по ключу
 
    Если СтруктураДействий.Свойство("ПересчитатьЦенуСкидкуПоСуммеВПродажах", СтруктураПараметровДействия) Тогда
 //Если нашли то значение по ключу записали в переменную  СтруктураПараметровДействия       
 

 //Объявляем переменную хз зачем
 
        ИспользоватьРучныеСкидки = Ложь;

 //Если ранее нашли ключ СтруктураПараметровДействия  то идем в условие
 
        Если СтруктураПараметровДействия <> Неопределено Тогда

 //Если есть в коллекции ключ с именем ИспользоватьРучныеСкидки То идем в условие
 
            Если СтруктураПараметровДействия.Свойство("ИспользоватьРучныеСкидки") Тогда
 //Присваиваем переменной значение истина.
 
                ИспользоватьРучныеСкидки = Истина;
            КонецЕсли;
        КонецЕсли;
        
 Написано немного по дурацки, но смахивает на стандарт разработки конфигураций от 1С.
   Klesk
 
6 - 12.01.13 - 06:50
(5) понял, спасибо
   GROOVY
 
7 - 12.01.13 - 07:03
(6) Пожалуйста.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует