|
Копейки при округлении | ☑ | ||
---|---|---|---|---|
0
IT_PROGRAMMIST
11.10.12
✎
22:04
|
УПП 1.3.18.1(украина), пл.8.2.15.319.
Документ Корректировка долга дает движение по добавленному регистру Бухгалтерии. При пересчете из валюты в гривны остаются копейки.Пересчет из валюты в гривны происходит типовыми средствами. Пример: КТ Счет1 659621.03 (получилось от 659621.025) КТ Счет1 -78676,01 (получилось от -76676,012025) ДТ Счет2 580945,01 (получилось от 580945,012975) В результате рвет на 0.01 копейки. Ребят, подскажите кто сталкивался, как решал? У меня есть идеи,просто хочу услышать мнения умных людей, которые эту проблему исправляли. |
|||
1
DrShad
11.10.12
✎
22:06
|
какую проблему?
|
|||
2
DrShad
11.10.12
✎
22:07
|
по твоему прмеру все счета раскрыты и нигде ничего не рвет - где ты копейку нашел?
|
|||
3
НикДляЗапросов
11.10.12
✎
22:09
|
03-01 -01 = 0?
|
|||
4
IT_PROGRAMMIST
11.10.12
✎
22:09
|
(2) как это не рвет: 659621,03-78676,01-580945,01 = 0,01
|
|||
5
DrShad
11.10.12
✎
22:10
|
у тебя счета разные, дятел
|
|||
6
Lama12
11.10.12
✎
22:11
|
Уж даже не знаю...
В Украине есть курсовые разницы? При переоценке валют должно все сгладиться. |
|||
7
IT_PROGRAMMIST
11.10.12
✎
22:12
|
(5) объясню:
Дебиторская задолженность 659621.03 Дебиторская задолженность -78676,01 Авансы полученные 580945,01 |
|||
8
DrShad
11.10.12
✎
22:12
|
все равно разные
|
|||
9
DrShad
11.10.12
✎
22:13
|
кроме того не может быть сначала дебиторка а потом аванс на меньшую сумму - только при разной аналитике
|
|||
10
IT_PROGRAMMIST
11.10.12
✎
22:14
|
(8) по делу пиши. то что они разные это понятно. Они закрыться в 0 должны.
|
|||
11
НикДляЗапросов
11.10.12
✎
22:14
|
Ну там субсчета
|
|||
12
DrShad
11.10.12
✎
22:15
|
(10) никуя не должны - учи матчасть
|
|||
13
IT_PROGRAMMIST
11.10.12
✎
22:15
|
дело не в том какие сдесь счета. Дело в округлении. остается блин 0,01 копейки. а хочется, чтобы в ноль ушло
|
|||
14
DrShad
11.10.12
✎
22:15
|
а по делу - ты дятел
|
|||
15
DrShad
11.10.12
✎
22:16
|
(13) в ноль на разных счетах не уйдет!
|
|||
16
IT_PROGRAMMIST
11.10.12
✎
22:18
|
(15) да как это не уйдет.
уйдет. Дебиторская задолженность - Авансы полученные |
|||
17
DrShad
11.10.12
✎
22:22
|
нет у тебя авансов - забудь
|
|||
18
IT_PROGRAMMIST
11.10.12
✎
22:26
|
(17) слушай, все закрывается как нужно. Проблема в (1)
|
|||
19
DrShad
11.10.12
✎
22:27
|
т.е. как я всю ветку и твержу что никакой проблемы?
|
|||
20
Classic
11.10.12
✎
22:27
|
(0)
Не пойму в чем у тебя проблема, если честно. Ситуация конечно не нормальная, но при закрытии задолженности все должно закрыться нормально. Вопрос больше в другом - как вы определяете валютную задолженность с такой точностью? |
|||
21
IT_PROGRAMMIST
11.10.12
✎
22:28
|
(20) с точностью до 2
|
|||
22
Classic
11.10.12
✎
22:30
|
Но в (0) валютная задолженность с точностью до 6ти знаков
|
|||
23
IT_PROGRAMMIST
11.10.12
✎
22:30
|
используется типовая функция ОкруглитьСУчетомПогрешности.
Вод код: Функция ОкруглитьСУчетомПогрешности(Число, Точность, Погрешность = 0, СоответствиеПогрешностей = Неопределено, Ключ = Неопределено) Экспорт Если НЕ СоответствиеПогрешностей = Неопределено И ЗначениеЗаполнено(Ключ) Тогда // считываем погрешность округления, накопленную ранее при расчетах Погрешность = СоответствиеПогрешностей[Ключ]; // погрешности округления еще нет -- первая сумма Если Погрешность = Неопределено Тогда Погрешность = 0; КонецЕсли; // округлим с учетом погрешности Округленное = ОкруглитьСУчетомПогрешности(Число, Точность, Погрешность); // сохраним погрешность округления СоответствиеПогрешностей.Вставить(Ключ, Погрешность); Иначе Если Число = 0 Тогда Возврат 0; КонецЕсли; // выравнивание разрядности Число = Окр(Число, 27, ?(Число<0, РежимОкругления.Окр15как10, РежимОкругления.Окр15как20)); // сумма с учетом погрешности предыдущих вычислений Округляемое = Число + Погрешность; // для отрицательного числа меняем направление округления, чтобы избежать ошибки Окр(-0.5) = -1 Округленное = Окр(Округляемое, Точность, ?(Округляемое<0, РежимОкругления.Окр15как10, РежимОкругления.Окр15как20)); // рассчитаем новую погрешность округления Погрешность = Округляемое - Округленное; КонецЕсли; Возврат Округленное; КонецФункции |
|||
24
IT_PROGRAMMIST
11.10.12
✎
22:31
|
(20) с точностью до двух знаков после запятой
|
|||
25
IT_PROGRAMMIST
11.10.12
✎
22:33
|
Функция пересчета из валюты в гривну
Функция ПересчитатьИзВалютыВВалюту(Сумма, ВалютаНач, ВалютаКон, ПоКурсуНач, ПоКурсуКон, ПоКратностьНач = 1, ПоКратностьКон = 1, Погрешность = 0, СоответствиеПогрешностей = Неопределено, Ключ = Неопределено) Экспорт Если (ВалютаНач = ВалютаКон) Тогда // Считаем, что пересчет не нужен. Возврат Сумма; КонецЕсли; Если (ПоКурсуНач = ПоКурсуКон) и (ПоКратностьНач = ПоКратностьКон) Тогда // пересчет суммы не требуется Возврат Сумма; КонецЕсли; Если ПоКурсуНач = 0 или ПоКурсуКон = 0 или ПоКратностьНач = 0 или ПоКратностьКон = 0 Тогда ОбщегоНазначения.СообщитьОбОшибке("При пересчете из валюты '"+ВалютаНач+"' в валюту '"+ВалютаКон+"' обнаружен нулевой курс. Пересчет не произведен!"); Возврат 0; КонецЕсли; НоваяСумма = (Сумма * ПоКурсуНач * ПоКратностьКон) / (ПоКурсуКон * ПоКратностьНач); Возврат ОбщегоНазначения.ОкруглитьСУчетомПогрешности(НоваяСумма, 2, Погрешность, СоответствиеПогрешностей, Ключ); КонецФункции //ПересчитатьИзВалютыВВалюту() |
|||
26
Bell
11.10.12
✎
22:39
|
Так валюта осталась?
|
|||
27
IT_PROGRAMMIST
11.10.12
✎
22:41
|
(26) валютные суммы полностью закрываются в 0
|
|||
28
IT_PROGRAMMIST
11.10.12
✎
22:42
|
в (1) суммы в грн.
|
|||
29
IT_PROGRAMMIST
11.10.12
✎
22:42
|
+(28)т.е в (0)
|
|||
30
DrShad
11.10.12
✎
22:43
|
пилять, разберись в показаниях
|
|||
31
Classic
11.10.12
✎
22:57
|
(27)
Не понимаю, какие у тебя валютные суммы. Но это в принципе не важно. При правильном закрытии счетов у тебя и гривневые суммы закроются. Потом :) Счета кстати какие? Активно-пассивные? |
|||
32
Classic
11.10.12
✎
23:01
|
Кстати для правильной работы "Округлить с учетом погрешности" передавай в функцию Дт-Кт. Или Кт-Дт. Тогда округлит правильно
|
|||
33
Classic
11.10.12
✎
23:03
|
Или для другого счета используй другой ключ. Тогда тоже все сбежится
|
|||
34
IT_PROGRAMMIST
11.10.12
✎
23:32
|
(31) да счета Активно - пассивные
|
|||
35
IT_PROGRAMMIST
11.10.12
✎
23:32
|
спасибо за советы завтра утром попробую
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |