Имя: Пароль:
1C
 
Неправильно выполняется условие
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
не подскажите как вычесть всего по каждой строке?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс