Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Размышления об округлении          
vbi Подменю пользователя
сообщение 19.06.13, 12:01
Сообщение #1

Оратор
Иконка группы
Группа: Местный
Сообщений: 376
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 64.3

Представим у нас есть два документа и регистр накопления, по которым они делают движения. Колонки: Курс, сумма, сумма валютная. Курс имеет 4 знака после запятой, а суммы - два. Курс за все время не менялся.

Представим, что документ Д1 сделал движение в регистр первый, а документ Д2 - второй:

Цитата
Документ / Курс / Сумма вал. / Сумма
Д1: / 4.1820 / 1127.64 / 4715.79
Д2: / 4.1820 / -102.50 / -428.66


Естественно сумма считается как валютная * курс. В случае первого документа округления не было. В случае второго сумма получилась -428.655, которая округлилась как -428.66 по всем правилам (5 в большую сторону).

Теперь посчитаем остатки:

Цитата
Остаток: / 4.1820 / 1025.14 / 4287.13


Однако: 4.1820 * 1025.14 = 4287,13548 = 4287,14

Как же так получилось? Оказывается что мы неправильно округлили в первом случае. Так значит когда мы имеем расход, или приход с "-" (сторно), тогда 5 нужно округлять не к большому значению, а к меньшему?
Кто как считает? И как выйти из ситуации?


Сообщение отредактировал vbi - 19.06.13, 12:01


Signature
Впроваджую, супроводжую

pablo Подменю пользователя
сообщение 19.06.13, 12:05
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

В таких случаях делается некий "конечномесячный" документ, который в конце месяца собирает накопившиеся ошибки и делает коррекцию в нужную сторону.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Vofka Подменю пользователя
сообщение 19.06.13, 12:17
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13962
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Цитата(vbi @ 19.06.13, 13:01) *
Как же так получилось?

Проклятая математика diablo.gif .
У меня тоже не редко возникают всякие приколы с округлениями. Люди ручками разбрасывают копейки, если что.

vbi Подменю пользователя
сообщение 19.06.13, 12:55
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 376
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 64.3

Я когда учился в аспирантуре, мне мой руководитель рассказывал, что самое точное округление - это когда 5 округляется в большую или меньшую сторону случайным образом.

Так всетаки. Что Вы скажете о том, чтобы округлять 5 в меньшую сторону, когда движение есть "расход" или сторно?


Signature
Впроваджую, супроводжую

Vofka Подменю пользователя
сообщение 19.06.13, 13:09
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13962
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Цитата(vbi @ 19.06.13, 13:55) *
Что Вы скажете о том, чтобы округлять 5 в меньшую сторону, когда движение есть "расход" или сторно?

Продаем мы что-то. Сумма с учетом НДС = 24,99. Выделяем НДС, получаем 4,165 = 4,17. Получаем примерно такие проводки:

Дт 361 - Кт 702 - Сумма 24,99
Дт 702 - Кт 6432 - Сумма 4,17

Делаем возврат. Если следовать тому, что вы только что сказали, то проводки будут такие:

Дт 704 - Кт 361 - Сумма 24,99
Дт 704 - Кт 6432 - Сумма -4,16

Обратите внимание, что в результате у вас зависнет копейка на счете 6432.

Сообщение отредактировал Vofka - 19.06.13, 13:09

Спасибо сказали: vbi,

vbi Подменю пользователя
сообщение 19.06.13, 13:26
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 376
Из: Украина, Луцк
Спасибо сказали: 72 раз
Рейтинг: 64.3

Тут согласен


Signature
Впроваджую, супроводжую

Vofka Подменю пользователя
сообщение 19.06.13, 13:36
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13962
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

vbi, что касаемо приколов с округлениями НДС, в типовых есть функция ПересчитатьНДСсУчетомПогрешностиОкругления в модуле ОбработкаТабличныйЧастей. В её описании сказано:

Цитата
Процедура корректирует построчные ошибки округления НДС так,
чтобы итоговый НДС по ставке совпадал с расчитанным НДС по базе


Как-то я хотел разобраться как она работает, но посидев и покумекав над ней - я бросил эту затею. А разобраться хотел, потому что при пересчете оно всеравно в некоторых случаях считает не так как надо. Что в итоге?
Цитата(Vofka @ 19.06.13, 13:17) *
Люди ручками разбрасывают копейки, если что.


Спасибо сказали: vbi,

pablo Подменю пользователя
сообщение 19.06.13, 14:03
Сообщение #8

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Я для учета бензина в баках автомобилей при сохранении дока Путевой лист вычислял расход по пробегу за день и за месяц, после чего корректировал расход за день, чтобы он совпадал с месячным.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Vofka Подменю пользователя
сообщение 19.06.13, 15:20
Сообщение #9

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13962
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Цитата(Vofka @ 19.06.13, 14:36) *
А разобраться хотел, потому что при пересчете оно всеравно в некоторых случаях считает не так как надо.

Так вот. Делает нам покупатель заказ на 3 позиции какого-то товара, цена которого, включая НДС, составляет 5 грн. Отгружаем ему 3 расходными накладными, в каждой по 1 штуке, соответственно. В каждом из них по НДС будет такая проводка:

Дт 702 - Кт 6432 - Сумма 0,83

Итого по 3 документам получается НДС-а на сумму 2,49

Делаем возврат всех 3 позиций одним возвратом. Набиваем каждуюу позицию отдельной строкой, указываем документ партии, все как положено. Но когда проводим документ, эта функция (ПересчитатьНДСсУчетомПогрешностиОкругления которая) делает ход конем и понимает, что т.к. сумма общая получается 15 грн., то НДС должен быть 2.5 грн., в результате чего добавляет 1 копейку к НДС-у какой-то позиции и даже скажет нам
Цитата
После исправления погрешностей округления сумма НДС табличной части Товары изменилась (было 2,49 грн, стало 2,50 грн)


Проводка в этом случае по НДС получается такая:

Дт 702 - Кт 6432 - Сумма -2,5

И снова у нас на 6432 висит копейка. Какой мы делаем вывод? Правильно:
Цитата(Vofka @ 19.06.13, 13:17) *
Люди ручками разбрасывают копейки, если что.


Для меня это все наболевшая тема. faceoff.gif

Сообщение отредактировал Vofka - 19.06.13, 15:22

Petre Подменю пользователя
сообщение 19.06.13, 17:00
Сообщение #10

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Что касается округления, связанного с валютой, правильно делать следующим образом.
1. Вычисляем конечный остаток в валюте.
2. Вычисляем конечный остаток в эквиваленте по курсу со стандартным округлением.
3. Вычисляем сумму движения в эквиваленте как разницу между начальным и конечным остатками.

Цитата(vbi @ 19.06.13, 13:55) *
Я когда учился в аспирантуре, мне мой руководитель рассказывал, что самое точное округление - это когда 5 округляется в большую или меньшую сторону случайным образом.

Существует т.н. финансовый (или банковский) метод округления, когда пятерка округляется до большего числа, если перед ней нечетная цыфра, и отбрасывается, если перед ней - четная.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: vbi,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 24.06.24, 20:00
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!