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