|
Неправильно выполняется условие | ☑ | ||
---|---|---|---|---|
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
|
не подскажите как вычесть всего по каждой строке?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |