Имя: Пароль:
1C
 
округление НДС Бухгалтерия 2.0
,
0 slasher
 
27.03.15
16:08
Приветствую всех!
Кто-нибудь может объяснить почему сумма проводки по округлению НДС отличается по законодательству и по коду 1С Бухгалтерии?

1.по законодательству не больше 50 копеек (то сумму менее 50 копеек следует отбросить, а 50 копеек и более - округлить до целого рубля (п. 9 ст. 1, п. 3 ст. 6 Закона № 248-ФЗ).

2. По 1С Бухгалтерии

Если ОстатокОкругления = 0
            ИЛИ ОстатокОкругления > 0.99
            ИЛИ ОстатокОкругления < -0.99 Тогда // Если остаток округления больше рубля, проводку по округлению не формируем
            Возврат;
        Иначе            
            Проводка = мПроводки.Добавить();
то есть может быть по модулю максимум 99 копеек.
1 Кай066
 
27.03.15
16:11
Остаток округления, это не то что в пункте 1
2 Кай066
 
27.03.15
16:15
(0) то есть может быть по модулю максимум 99 копеек.
верно, при этом если меньше 50(0-49), то округлит в меньшую, если больше(50-99), то в большую, если больше 99(99-...) к чёрту пошлёт
3 Кай066
 
27.03.15
16:16
мне так кажца
4 Naumov
 
27.03.15
16:32
(0) Читайте код правильно. Для несообразительных даже комментарий написан
5 slasher
 
27.03.15
18:30
(не понял, а что это?)
6 slasher
 
27.03.15
18:32
(1) пардон, не понял, что это?
7 slasher
 
27.03.15
18:35
(2) по законодательству +-50 копеек
по 1С +-99 копеек
почему так?
8 slasher
 
27.03.15
18:41
(4) я прекрасно понимаю код,
я не понимаю почему 1С пишет, что диапазон корректировок 1,98 копеек (+-0,99), тогда как закон говорит, что чтобы округлить до целого рубля, нужно либо убать максимум 49 копеек, либо добавить максимум 50 копеек. Я не слишком путанно изложил?
9 hhhh
 
27.03.15
18:43
(8) это вообще другое. Если > 0.99   округление вообще не делаем. Ферштеен?
10 slasher
 
27.03.15
18:51
(9) это я тоже ферштеен,
зачем сумму округления делать больше 50 копеек и меньше 99 копеек?
11 hhhh
 
27.03.15
18:53
там нет про 50 копеек. И вообще это не округление. Округление дальше там.
12 RomanYS
 
27.03.15
19:19
(0)
Сделай как считаешь правильно, ИМХО ты - прав.
Если очень интересно "зачем" - спроси у 1с.
Мое мнение, изначально (в ранних релизах) такой проверки не было и разница между оборотами и суммой по декларации бабахалась в корректировку округления. Таким образом разработчики избавилсь от этого бага (когда миллионы уходили в корректировку), а 0.99 или 0.50 тупо не заморачивались.
13 hhhh
 
27.03.15
19:23
(12) да в принцепе ясно. Был баг в прощлом году. Вообще выдавало сумму 17562 рубля. И содержание проводки - округление по НДС. Вот они и вставили проверку, чтобы меньше 1 рубля.
14 Naumov
 
27.03.15
20:38
(13) Там корректировка по другой причине делалась. Но в 1-х релизах была логическая ошибка и сумма не всегда получалась корректной.
Проводка с корректировкой возникает из-за разницы между округлением суммы (в декларации) и суммой округлений (в проводках документов построчно).
15 RomanYS
 
27.03.15
21:34
(14) "логическая ошибка" как была, так и осталась:
Все проводки по НДС делаются с копейками. Потом в декларации формируются два десятка показателей округленных до рублей (по каждому округление может достигать 50 коп), они суммируются (отклонение может здесь достигнуть ~10 руб, если очень не повезет).

Это ещё мы не учли "авторские" методики ведения учета: ручные проводки, ручные изменения декларации и т.п. Правда в такой ситуации корректировка теряет смысл и здесь как раз "<0.99" работает как защита от дурака. Наверное, для этого ее и сделали
16 slasher
 
28.03.15
11:59
(11) про 50 копеек в законодательстве говорится,
а округления там дальше нету, вот конец процедуры:

Если ОстатокОкругления = 0
            ИЛИ ОстатокОкругления > 0.99
            ИЛИ ОстатокОкругления < -0.99 Тогда // Если остаток округления больше рубля, проводку по округлению не формируем
            Возврат;
        Иначе            
            Проводка = мПроводки.Добавить();
            
            Проводка.Период      = Дата;
            Проводка.Организация = СтруктураШапкиДокумента.Организация;
            Проводка.СчетДт      = ПланыСчетов.Хозрасчетный.ПрочиеПрибылиИУбытки;
            Проводка.СчетКт      = Выборка.Счет;
            Проводка.СубконтоКт.ВидыПлатежейВГосБюджет = Перечисления.ВидыПлатежейВГосБюджет.Налог;
            
            Если Не НДСКВозмещению Тогда
                Проводка.Сумма        = - ОстатокОкругления;
            Иначе
                Проводка.Сумма        = ОстатокОкругления;
            КонецЕсли;
            
            Проводка.Содержание = "Отклонение при округлении до рублей";
        КонецЕсли;
    КонецЕсли;
    
    мПроводки.Записать(Ложь);
    
КонецПроцедуры


то есть теоретически может быть округление больше 50 копеек и меньше 99 копеек.

Например, НДС 5,33 рубля округляется до 6 рублей, на 67 копеек, хотя должен округлятся до 5 рублей, почему так?
Основная теорема систематики: Новые системы плодят новые проблемы.