Погрешность округления и есть ли средство борьбы с ней возможностями 1С?
















Политика 1С по использованию возможностей баз данных доросла до использования объектно-ориентированного программирования в 1С Предприятие 8.Х Но от погрешностей округления увы 1С-ники так и не избавились.
Предлагаю вариант печати ТОРГ-12 в валюте документа «Реализация товаров и услуг» для Бухгалтерии 2.0 и 3.0 платформа 8.3

Погрешность округления и есть ли

средство борьбы с ней возможностями 1С?

 

 

Работая с прикладными решениями 1С начиная с времен  «1С ДОСТУПНО и ВСЕРЬЁЗ», обратил  внимание на сложности с округлением сумм при пересчете валюты в рубли.

Проблема точности возникала и остается по настоящее время, практически во всех типовых решениях 1С.

Про конфигурации Бухгалтерия 2.0 для операционной системы DOS и Бухгалтерия 6.0 для операционной системы Windows говорить не буду, поскольку проблемы там решались продвинутыми пользователями, не говоря уже о системщиках и программистах.

Начиная с платформы 1С Предприятие 7.0 сопровождение ее пользователями ограничилось лишь установкой регламентной отчетности и обновлений. Все доработки под себя перешли в руки специалистов по поддержке и доработке продуктов 1С.

Политика 1С по использованию возможностей баз данных доросла до использования объектно-ориентированного программирования в 1С Предприятие 8.Х.

Но от погрешностей округления увы 1С-ники так и не избавились.

Фирма работает в 1С Бухгалтерия 2.0 версия 2.0.66.38 файловый вариант 5 пользователей, Платформа 1С Предприятие 8.3 релиз 8.3.11.2867.

В октябре 17 года мне пришлось по возится с сложной отгрузкой на 245 позиций.

Договор с клиентом в у.е. с оплатой в рублях по курсу на дату оплаты, при этом запуск в производство только после предоплаты 50% и окончательная предоплата при подтверждении готовности товара к отгрузке. Цены в у.е. НДС сверху. Отсюда и вся свистопляска с округлением рублевых сумм, и расхождения в ТОРГ-12 и счете-фактуре.

Отгрузка как всегда проходила в режиме «ВСЕ УЖЕ ОТПРАВИЛИ ВЧЕРА». Естественно сверять досконально все позиции в ТОРГ-12 и счете-фактуре менеджер не стал. Как результат пришлось переделывать документы не один раз. При этом при печати в очередной раз по строкам товаров получались разные суммы хотя итоговые были одинаковые.

Эта ситуация очень заинтересовала меня, тем более работая в Комплексной 7.7 я установил запрет повторного пересчета рублевых движений по документам в у.е. То есть пересчет производился в документе, а глобальные процедуры пересчета не запускались.

Прошел почти год и снова те же грабли. Хотя уже и 1С ушла далеко в перед.

Не однократные потуги перевести работу на Бухгалтерию 3.0 даже после удачных с моей точки зрения обновления базы с Бухгалтерии 2.0 на Бухгалтерию 3.0 Главный бухгалтер не спешит и продолжаем работать в Бухгалтерии 2.0

Поскольку применение унифицированной формы ТОРГ-12 не является обязательным

(«С 1 января 2013 года формы первичных учетных документов, содержащиеся в альбомах унифицированных форм первичной учетной документации, не являются обязательными к применению.»- Информация Минфина России N ПЗ-10/2012.), я решил найти форму печати ТОРГ-12 для Бухгалтерии 2.0 в валюте документа.    

 

Облазив все доступные ресурсы, нашел на сайте ИНФОСТАРТ обработку, но брать не стал жаба задушила платить 1000 руб. (//infostart.ru/public/329124/).

Поэтому решил разобраться, а можно ли решить проблему самому. Почему если Счет-фактура выписывается на основании Расходной и в нем только ссылка на Расходную, то в чем причина расхождения сумм в рублях для документов в валюте.

Вот корректировки суммы ТОРГ-12 при наличии авансов в модуле с сокращениями :

//***********
Если СсылкаНаОбъект.Проведен И (Шапка.РасчетыВУсловныхЕдиницах
ИЛИ (Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета И СсылкаНаОбъект.Дата >= '20090101000000')) Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Запрос.УстановитьПараметр("СчетУчетаРасчетовСКонтрагентом", СсылкаНаОбъект.СчетУчетаРасчетовСКонтрагентом);
Текст =
"ВЫБРАТЬ
|         СУММА(Хозрасчетный.Сумма) КАК Сумма
|ИЗ
|         РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
|         Хозрасчетный.Регистратор = &Ссылка
|         И Хозрасчетный.СчетДт = &СчетУчетаРасчетовСКонтрагентом
|         И Хозрасчетный.СчетКт В
|                             (ВЫБРАТЬ РАЗЛИЧНЫЕ
|                                       РеализацияТоваровУслугТовары.СчетДоходов
|                             ИЗ
|                                       Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|                             ГДЕ
|                                       РеализацияТоваровУслугТовары.Ссылка = &Ссылка";
Запрос.Текст = Текст;
СуммаВзаиморасчетов = Запрос.Выполнить().Выгрузить()[0].Сумма;
РасчетСуммыНДСПоСтавке =  УчетНДС.РасчетНДСвРубляхПоСтавкеДокумента(Шапка.ДатаДокумента);

// далее текст не внесен
МассивРаспределения = Новый Массив;
//*****************
СуммаСНДС = СтрокаТовар.Сумма + ?(Шапка.СуммаВключаетНДС, 0, СтрокаТовар.СуммаНДС);
СуммаБезНДС = СуммаСНДС - СтрокаТовар.СуммаНДС;
МассивРаспределения.Добавить(СуммаСНДС);
ЗапросТовары.Колонки.Добавить("СуммаРублевая");
УчетНДС.РаспределитьСуммуПоСтолбцу(МассивРаспределения, СуммаВзаиморасчетов, ЗапросТовары, "СуммаРублевая");
МассивРаспределенныхСумм = ОбщегоНазначения.РаспределитьПропорционально(СтрокаТовар.СуммаРублевая, МассивРаспределения);
// Далее не интересно
//**********

   При формировании данных для печати счета-фактуры распределение сумм авансов происходит повторно командой —

МассивРаспределенныхСумм = ОбщегоНазначения.РаспределитьПропорционально(СтрокаТовар.СуммаРублевая, МассивРаспределения);

и в результате ошибки округления распределяются по строкам не так как в ТОРГ-12. 

     Однако прежде чем я это нашел пришлось помучится. Так на своем ноутбуке пришлось переустанавливать платформу 1С.

 

В платформе 8.2.19.130 с поиском все нормально, но

 

В платформе 8.3.10.2667 поиска не оказалось хотя переходы на Бухгалтерию 3.0 ЗУП 3.0 на ней проводил без проблем с зависанием в процессе конвертации баз, что характерно для релизов 8.3.9.ХХХХ и 8.3.11.ХХХХ.

 

Пришлось установить платформу 8.3.12.1529 и работать в ней

 

 

      Но с поиском «ищи то не знаю что» я честно запарился. Разобраться с огромным количеством процедур и функций, которые имеют статус глобальных и найти их (т.е. отследить где и какой процесс ее использует) мне с моими познаниями архитектуры и встроенного языка, используя глобальный поиск не удалось.

То есть я так не смог найти в Бухгалтерии 2.0 способ или метод распределения рублевых сумм по строкам в ТОРГ-12 и в Счет-фактуре, так чтобы они были равны.

В результате сравнения всех данных выявилось следующее:

Основная причина это, округление особенно если в валютной сумме НДС сверху.

Вот пример из той злополучной отгрузки в $:

Кол-во 6 Цена без НДС 5677,70 Сумма без НДС 34066,20 

НДС 6131,92 Сумма с НДС 40198,12

После учета авансов итог в рублях:

Кол-во 6 Цена без НДС 325902,57 Сумма без НДС 1955415,39

НДС 351974,77 Сумма с НДС 2307390,16

 

Если исходить из требований налоговых органов и законодательства, то распределение сумм по позициям товаров в отгрузке их мало волнует, если ставка НДС для всех одинаковая. Их интересует итоговая сумма отгрузки и сумма НДС (эту сумму надо перечислить в бюджет.

Поэтому расхождения при пересчете валюты в рубли особенно не напрягают 1С-ников. Они пересчитывают в соответствии с требованиями законодательства, а то что не все цифры идентичны в накладной и счет-фактуре так это погрешности округления.

В нашем случае, если высчитать курс, то получим 57,40044957326363 по сумме или 57,40045617063247 по цене. Можете пересчитать в обратную сторону после округления и получите совершенно другие суммы и цены.

Вот СкринШоты по разбору полетов

 

ТОРГ-12 печать в Бухгалтерии 2.0 (встроенная печать) начало накладной

 

Обратите внимание на курс по строкам очень не одинаковый!

 

Счет-фактура печать в Бухгалтерии 2.0 (встроенная печать) начало накладной

 

Обратите внимание на курс по строкам очень одинаковый! И с ТОРГ-12 не пляшет, суммы тоже не все одинаковые.

А вот суммы проводок

 

Сравните подчеркнутые красным суммы везде разные. Вопрос к 1С как они туда попадают,

 

А это последний лист накладной и счета фактуры. Расхождение в копейку, мелочь!

 Из всего этого самый простой выход – Отправлять отгрузочные документы Универсальным Передаточным Документом, поскольку от идентичен Счету-фактуре и принимается налоговыми органами основанием для расчета уплаты НДС.

Но в моем случае Покупатель отказывается получать УПД, ему нужен счет-фактура и накладная типа ТОРГ-12 (т.е. со всеми реквизитами Поставщика и Покупателя).

Вот и решил ваять свою печатную форму ТОРГ-12 которых на ИНФОСТАРТЕ пруд пруди, но такой за StartMoney я не нашел поэтому решил выложить на ваш суд свой труд

 

Печатная форма ТОРГ-12 (в валюте) для Бухгалтерии 2.0 сделана на основе обработки скачанной в 2012 году для печати с комплектами номенклатуры ссылку на неё не нашел близкая к ней //infostart.ru/public/163284/.

 

 

В результате получил в ТОРГ-12 строку Товара в валюте, а итоги по странице и всего в валюте и рублях. Данные Товара в рублях не вывожу, чтобы меньше работы по ручной корректировке. И Покупатель сам решит по какой сумме приходовать товар.

Регистрация обработки стандартная Меню -> "Сервис" -> "Дополнительные отчеты и обработки" -> "Дополнительные внешние печатные формы" в меню -> "Добавить"  и выбрать файл обработки. В окне -> "Принадлежность печатной формы"  выбрать Реализацию товаров и услуг.

Если реализация в рублях, то печатается обычная форма ТОРГ-12

 

 

 

Печатная форма ТОРГ-12 (в валюте) для Бухгалтерии 3.0 сделана на основе обработки   //infostart.ru/public/712880/

 

 

В принципе для тройки проблемы с расхождением рублевых сумм в ТОРГ-12 и счете-фактуры нет, поэтому эта форма на любителя. 1С-ники решили эту проблему вводом Регистра сведений «РублевыеСуммыДокументовВВалюте». И все документы берут их из этого регистра. Так что если документ проведен, то все окей.

В обработке можно в макете добавить и рублевые суммы по товару они есть только не выводятся.

А вот проводки по злополучной отгрузке в 3.0

 

Все ясно рассказано и объяснено. Естественно курс пляшет.

Эта проблема с округлением усугубилась с 2002 года, когда официальный курс доллара стал с четырьмя знаками после запятой. А все суммы округляются до двух знаков после запятой. Вот и сочиняются способы распределения отброшенных остатков от округления.

 

Отработки тестировались на платформах:

1С Предприятие 8.3.10.2667, 8.3.11.2867, 8.3.12.1529

Конфигурации: Бухгалтерия 2.0 (2.0.66.60), Бухгалтерия 3.0 (3.0.64.54).

Код открыт так что кому надо можете доработать под себя.

 

Для сведения в тройке обработка подключается

через Раздел "Администрирование" -> "Печатные формы, отчеты и обработки" -> ставим галочку напротив "Дополнительные отчеты и обработки" -> "Дополнительные отчеты и обработки" -> кнопка "Создать" и указываем скачанный файл. Жмем "ОК" и радуемся!

 

 

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *