|
УТ 10.3 Не пойму, почему не работает округление | ☑ | ||
---|---|---|---|---|
0
DrunkWolf
23.12.11
✎
07:10
|
УТ 10.3
Для того, чтобы при расчете суммы со скидкой не было копеек добавил функцию округления (ОКР) в процедуру общего модуля: Процедура РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект, СпособРасчета = Неопределено) Экспорт ИмяТабличнойЧасти = ОбщегоНазначения.ПолучитьИмяТабличнойЧастиПоСсылкеНаСтроку(СтрокаТабличнойЧасти); МетаданныеДокумента = ДокументОбъект.Метаданные(); Сумма = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; СуммаСкидки = 0; Если (СпособРасчета = Неопределено) Или (СпособРасчета = Перечисления.СпособРасчетаСуммыДокумента.СУчетомВсехСкидок) Или (СпособРасчета = Перечисления.СпособРасчетаСуммыДокумента.БезУчетаРучнойСкидки) Тогда Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентАвтоматическихСкидок", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда СуммаСкидки = окр ((Сумма * СтрокаТабличнойЧасти.ПроцентАвтоматическихСкидок / 100)); КонецЕсли; Если (СпособРасчета <> Перечисления.СпособРасчетаСуммыДокумента.БезУчетаРучнойСкидки)Тогда Если ОбщегоНазначения.ЕстьРеквизитТабЧастиДокумента("ПроцентСкидкиНаценки", МетаданныеДокумента, ИмяТабличнойЧасти) Тогда СуммаСкидки = окр((СуммаСкидки + (Сумма * СтрокаТабличнойЧасти.ПроцентСкидкиНаценки / 100))); КонецЕсли; КонецЕсли; КонецЕсли; СтрокаТабличнойЧасти.Сумма = окр((Сумма - СуммаСкидки)); КонецПроцедуры // РассчитатьСуммуТабЧасти() Когда смотрю в отладчике значение у СтрокаТабличнойЧасти.Сумма идет без копеек. Например 712. Однако в таб. часть документа почему-то выводит 712,50! 0_о |
|||
1
Godofsin
23.12.11
✎
07:44
|
отладчик в руки
|
|||
2
Godofsin
23.12.11
✎
07:44
|
и вперед
|
|||
3
Godofsin
23.12.11
✎
07:45
|
сорри, не внимательно прочитал
|
|||
4
Seducer
23.12.11
✎
07:49
|
(0) Ну посмотри дальше по отладчику. Может после этой процедуры еще что-то делается.
|
|||
5
DrunkWolf
23.12.11
✎
09:14
|
(4) В том то и дело, что ничего нет, округление вызывается из ПриИзмененииКоличестваТовары, т.е. на полседней строчке выполенения переменная имеет правильное значение, а на выходе в программу дает неправильное!
|
|||
6
Seducer
23.12.11
✎
09:26
|
Т.е. при возвращении в процедуру ПриИзмененииКоличестваТовары() сумма как будто и не округлялась?
|
|||
7
DrunkWolf
23.12.11
✎
09:26
|
Может в 8.2 есть какая-то приколюха, о которой я не знаю, связанная со вступлениями изменений в силу после обновления БД?
|
|||
8
Seducer
23.12.11
✎
09:29
|
чего????? О_о
Т.е. ты внес изменения, связанные с округлением, а конфигурацию БД не обновил? О_о |
|||
9
DrunkWolf
23.12.11
✎
09:30
|
Обновлял!! Но они как будто бы не приняты во внимание
|
|||
10
БибиГон
23.12.11
✎
09:30
|
(0)SQL ?
|
|||
11
DrunkWolf
23.12.11
✎
09:31
|
(6)при возвращении в процедуру ПриИзмененииКоличестваТовары() объект СтрокаТабличнойЧасти.Сумма показывает нужно число. Это послденяя строка, дальше идет переход в программу, в которой в колонке сумма число вылазит снова неокругленным..
|
|||
12
DrunkWolf
23.12.11
✎
09:31
|
(10)файловая
|
|||
13
DrunkWolf
23.12.11
✎
09:32
|
Процедура ПриИзмененииКоличестваТовары(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииКоличестваТовары() Код РассчитатьСуммуТабЧасти выше приводил. Больше ничего нет. |
|||
14
Hawk_1c
23.12.11
✎
09:34
|
Где смотришь, что без копеек? Формат колонки посмотри...
|
|||
15
DrunkWolf
23.12.11
✎
09:39
|
(14) Посмотрел: ЧДЦ=0
|
|||
16
Hawk_1c
23.12.11
✎
10:13
|
Сорри, не верно прочитал задачу.
|
|||
17
DrunkWolf
23.12.11
✎
10:50
|
Что больше ни у кого нет догадок? Нечто подобное как-то давно у меня было с Бух. 2.0 Вроде бы все закодил правильно, обновил, а изменения не действуют. Может есть что-то в 8.2 платформе, чего я не знаю??
|
|||
18
НЕА123
23.12.11
✎
10:57
|
(17)
>Вроде бы все закодил правильно, обновил, а изменения не действуют. если Демоническое обновление сделал, то в поиск. |
|||
19
DrunkWolf
23.12.11
✎
10:58
|
Делал, а че искать-то? :-)
|
|||
20
НЕА123
23.12.11
✎
11:01
|
>а че искать-то?
искать мантру по выведению Демона. |
|||
21
Рыцарь
23.12.11
✎
11:04
|
(0) не работает только на одном компе или на всех?
|
|||
22
DrunkWolf
23.12.11
✎
11:24
|
Да на всех
|
|||
23
DrunkWolf
23.12.11
✎
11:24
|
(20) ссылку можешь кинуть?
|
|||
24
BuHu
23.12.11
✎
11:25
|
а после обновления в программу то перезашли?
|
|||
25
DrunkWolf
23.12.11
✎
11:27
|
(24) да, даже выкидывал всех, чтоб уж наверняка
|
|||
26
НЕА123
23.12.11
✎
11:28
|
||||
27
DrunkWolf
23.12.11
✎
11:37
|
Так у всех же не работает, не только у меня.. На всякий случай удалил базу из списка, добавил заново - тоже самое.
|
|||
28
Феерия
23.12.11
✎
11:40
|
Может быть у вас где-то еще потом сумма пересчитывается уже без округления? Какой-нибудь стандартной процедурой...
|
|||
29
DrunkWolf
23.12.11
✎
11:45
|
Может и пересчитыватся, но насколько я понимаю если срабатывает ПриИзмененииКоличестваТовары(Элемент), то отрабатывается только то, что в ней и ничего кроме.
|
|||
30
Феерия
23.12.11
✎
11:46
|
А какое-нибудь обновление отображения или в этом духе?
|
|||
31
Mans
23.12.11
✎
11:52
|
бубен:
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); СтрокаТабличнойЧасти.Сумма=??? КонецПроцедуры // ПриИзмененииКоличестваТовары() |
|||
32
DrunkWolf
23.12.11
✎
11:57
|
(31) СтрокаТабличнойЧасти.Сумма = округленное значение, которое перестают быть округленным при выходе из отладки.
|
|||
33
DrunkWolf
23.12.11
✎
12:02
|
(30) Блин, вы гений, а я идиот) Как же все просто оказалось..
|
|||
34
hhhh
23.12.11
✎
12:02
|
(32) а где смотришь? В той колонке, в которой нужно? Или просто где в заголовке слово "Сумма"?
|
|||
35
НЕА123
23.12.11
✎
12:07
|
(13)
> СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; может ТекушаяСтрока лучше? |
|||
36
НЕА123
23.12.11
✎
12:08
|
+(35)
неа. я не прав. |
|||
37
DrunkWolf
23.12.11
✎
12:21
|
(33) ХОтя рано... там только отоброжение суммы в подвале... (34) что то я потерял нить...
|
|||
38
Феерия
23.12.11
✎
12:35
|
А в документе отображается точно именно те значения, которые вы меняете? У меня все время с этим проблемы)
Если именно те, то скорее всего где-то пересчитывается после вашей процедуры... |
|||
39
Mans
23.12.11
✎
12:48
|
перепроверить все события на ТЧ
|
|||
40
Феерия
23.12.11
✎
12:55
|
Ну да, точек останова понаставить везде. Предположение из ряда безумных - может подписка на события есть для скидок, например?
|
|||
41
НЕА123
23.12.11
✎
13:24
|
я бы замер производительности сделал.
|
|||
42
Феерия
23.12.11
✎
16:13
|
Ну получилось найти причину?
|
|||
43
DrunkWolf
27.12.11
✎
10:16
|
Нет по-прежнму(
|
|||
44
banco
27.12.11
✎
10:31
|
автоматические скидки
|
|||
45
banco
27.12.11
✎
10:42
|
обработчик события "ПриОкончанииРедактирования" тч
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |