| 
    
        
     
     | 
    
  | 
Неправильно выполняется условие | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        amadeus2010    
     25.08.14 
            ✎
    11:57 
 | 
         
        добрый день в процедуре при выводе строки я  добавил  условие для расчета скидок по товару в зависимости от суммы товара в ТЧ документа реализация товаров услуг.
 
        /////////////////////////////////////////////////////////////////// СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; Если СтрокаТабличнойЧасти.Сумма>= 500 Тогда СтрокаТабличнойЧасти.ДокСкидка = СтрокаТабличнойЧасти.Сумма*0.03; ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 300 Тогда СтрокаТабличнойЧасти.ДокСкидка = СтрокаТабличнойЧасти.Сумма* 0.02; ИначеЕсли СтрокаТабличнойЧасти.Сумма>= 150 Тогда СтрокаТабличнойЧасти.ДокСкидка = СтрокаТабличнойЧасти.Сумма* 0.01; КонецЕсли; ДанныеСтроки.ДокСкидка= СтрокаТабличнойЧасти.ДокСкидка; //////////////////////////////////////////////////////////////////// Так вот ошибка заключается в том что если сумма товара в ТЧ больше 500 тогда скидка расчитвается как 3% независимо от того какая сумма в других строках даже если она меньше 500, т.е другие условия уже не выполняются.  | 
|||
| 
    1
    
        Wobland    
     25.08.14 
            ✎
    11:57 
 | 
         
        думаешь, ошибка? сам так захотел     
         | 
|||
| 
    2
    
        Wobland    
     25.08.14 
            ✎
    11:58 
 | 
         
        >СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные;
 
        вот тут захотел  | 
|||
| 
    3
    
        Любопытная    
     25.08.14 
            ✎
    11:59 
 | 
         
        (0) Изначально условия предоставления скидки как звучат?     
         | 
|||
| 
    4
    
        Wobland    
     25.08.14 
            ✎
    12:01 
 | 
         
        (3) звучат так: _при выводе_ строки ориентироваться на _текущую_. и пофиг, что там на самом деле, сумму не сохраняется     
         | 
|||
| 
    5
    
        Любопытная    
     25.08.14 
            ✎
    12:02 
 | 
         
        (4) Я вроде не с тобой разговаривала.     
         | 
|||
| 
    6
    
        Apokalipsec    
     25.08.14 
            ✎
    12:03 
 | 
         
        " в зависимости от суммы товара в ТЧ" - "если сумма товара в ТЧ больше 500 тогда скидка расчитвается  как 3%" -
 
        Если СтрокаТабличнойЧасти.Сумма>= 500 Тогда СтрокаТабличнойЧасти.ДокСкидка = СтрокаТабличнойЧасти.Сумма*0.03; Всё правильно.)  | 
|||
| 
    7
    
        Wobland    
     25.08.14 
            ✎
    12:04 
 | 
         
        (5) а мне совсем с тобой нельзя? ;)     
         | 
|||
| 
    8
    
        Любопытная    
     25.08.14 
            ✎
    12:07 
 | 
         
        (7) Можно. Но ты просил тебя не беспокоить. Я не беспокою.     
         | 
|||
| 
    9
    
        amadeus2010    
     25.08.14 
            ✎
    12:11 
 | 
         
        (2),(6) я помню эти условия задачи, но разве если сумма товара  >500 в одной строке и в другой сумма товара 300, то разве не должно выполняться условие если больше 500 тогда сумма*0.03, а если 300 тогда сумма*0.02. Ведь сейчас независимо от того какая сумма в строках расчет идет по первому условию     
         | 
|||
| 
    10
    
        Любопытная    
     25.08.14 
            ✎
    12:13 
 | 
         
        (9) Ну открывай отладчик и смотри, что у тебя в текущей строке и какая там сумма. И, собственно, как срабатывают условия     
         | 
|||
| 
    11
    
        Wobland    
     25.08.14 
            ✎
    12:15 
 | 
         
        (9) не дошло, да? ну так и скажи, чего тут страдать?     
         | 
|||
| 
    12
    
        Wobland    
     25.08.14 
            ✎
    12:16 
 | 
         
        +(11) не должно второе условие выполняться, оно тупо не проверяется. а в крайнем предложении ты врёшь     
         | 
|||
| 
    13
    
        Зойч    
     25.08.14 
            ✎
    12:21 
 | 
         
        А разве в коде не для каждой строки своя скидка????     
         | 
|||
| 
    14
    
        Wobland    
     25.08.14 
            ✎
    12:22 
 | 
         
        (13) для каждой. только амадеусу на некоторые строки пофиг     
         | 
|||
| 
    15
    
        amadeus2010    
     25.08.14 
            ✎
    12:23 
 | 
         
        признаюсь что не дошло, что-то туплю, не подскажите в чем проблема. В коде для каждой строки своя скидка в зависимости от суммы строки. Отладчиком проверял если сумма строки 500 то все скидки рассчитываются по первому условию     
         | 
|||
| 
    16
    
        Wobland    
     25.08.14 
            ✎
    12:24 
 | 
         
        (15) как ты понял (4) и понятие текущей строки?     
         | 
|||
| 
    17
    
        Зойч    
     25.08.14 
            ✎
    12:25 
 | 
         
        ЭлементыФормы.Товары.ТекущиеДанные - Это текущая строка, подсвеченная синим.
 
        Будем перемещать строку, будет скидка меняться. Ваще крутой алгоритм  | 
|||
| 
    18
    
        salvator    
     25.08.14 
            ✎
    12:28 
 | 
         
        (0) Заказчик еще жив? Ты с этим кодом уже вторую неделю тут всех достаешь.     
         | 
|||
| 
    19
    
        amadeus2010    
     25.08.14 
            ✎
    12:30 
 | 
         
        (16)я понял так что при изменении текущей строки должно выполняться одно из условий в коде     
         | 
|||
| 
    20
    
        Wobland    
     25.08.14 
            ✎
    12:31 
 | 
         
        (19) при выводе у тебя выполнятеся. а что такое текущая строка?     
         | 
|||
| 
    21
    
        amadeus2010    
     25.08.14 
            ✎
    12:31 
 | 
         
        заказчик еще жив сегодня поеду к нему, пока только тестировал у себя     
         | 
|||
| 
    22
    
        amadeus2010    
     25.08.14 
            ✎
    12:32 
 | 
         
        текущая строка это строка на которой сейчас находиться фокус     
         | 
|||
| 
    23
    
        Wobland    
     25.08.14 
            ✎
    12:33 
 | 
         
        (22) маладец. дошло?     
         | 
|||
| 
    24
    
        amadeus2010    
     25.08.14 
            ✎
    12:39 
 | 
         
        разница то дошла, теперь в какую процедуру код запихнуть. ПриИзмененииСуммы() или при ОкончанииРедактированияСтроки()?     
         | 
|||
| 
    25
    
        amadeus2010    
     25.08.14 
            ✎
    12:54 
 | 
         
        при изменении суммы не срабатывает вычисление скидок     
         | 
|||
| 
    26
    
        1Сергей    
     25.08.14 
            ✎
    12:59 
 | 
         
        (25) открой для себя функцию .Итог(...)     
         | 
|||
| 
    27
    
        Любопытная    
     25.08.14 
            ✎
    12:59 
 | 
         
        (26) зачем ему итог? Ему в каждой строке надо свою скидку иметь     
         | 
|||
| 
    28
    
        Wobland    
     25.08.14 
            ✎
    13:02 
 | 
         
        (24) не за что     
         | 
|||
| 
    29
    
        amadeus2010    
     25.08.14 
            ✎
    13:03 
 | 
         
        если запихнуть это условие в ТоварыПриОкончанииРедактирования то скидки отображаются но не отображается разница между тчвсего = тчсумма-тчскидка     
         | 
|||
| 
    30
    
        amadeus2010    
     25.08.14 
            ✎
    13:14 
 | 
         
        не подскажите как вычесть всего по каждой строке?     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |