В статье мы не будем касаться стереотипных бухгалтерских ошибок, связанных с неправильным проведением документов. Считаем, что читатель достаточно квалифицирован и такие ошибки уже проверил. Разберём ошибку, возникающую в результате округления чисел в расчётах.
Баланс не сходится из-за округления. Что следует делать?
Хрестоматийный пример: если 1,4 округлить до целого, получится 1. Если потом 1,4 умножить на 2, результат получится 2. Между тем если 1,4 умножить на 2 и округлить произведение до целого, получится 3.
Причина появления ошибки
Возникновение этой ошибки лежит в использовании при расчётах частного от деления чисел и в правилах округления результатов вычислений. В операциях умножения, сложения и вычитания такой ошибки возникнуть не может. Операция деления используется:
- Для получения цены списания товаров и материалов, при использовании учётной политики – по среднему.
- При автоматическом расчёте суммы НДС, по отгружаемым товарам и услугам.
- Если в бухгалтерской программе реализована возможность автоматического расчёта цены, при введении количества и стоимости.
Относительно последнего случая, например, в программе 1С 8.2 и 1С 8.3 это осуществляется добавлением в модуль формы документа на отпуск товара или услуги, процедуры «СоставЦенаПриИзменении(Элемент)», на клиенте с кодом: Элементы.Состав.ТекущиеДанные.Цена = Элементы.Состав.ТекущиеДанные.Сумма / Элементы.Состав.ТекущиеДанные.Количество;.
Сравнение 1С и XL-подобных бухгалтерских программ
Программа XL и, созданные на её основе бухгалтерские инструменты, не дают возможности чередовать автоматическое и ручное заполнение ячеек. В этом случае такая ошибка невозможна, но в 1С можно программно задать возможность автоматического расчёта суммы, при заполнении цены и автоматического расчёта цены, при заполнении суммы.
Традиционно, в 1С все финансовые реквизиты имеют тип – число, размерность 15 и точность 2. Этим обеспечивается возможность расчета с точностью до копеек. Аналогичным образом задаётся точность в XL. Следует отметить, что в XL, задаётся только точность отображения числа на экране. В ячейке памяти хранится 15 разрядное число с плавающей точкой – переменная float.
Устранение ошибки округления в 1С
Вылечить проблему округления в 1С 8.2 и 1С 8.3 можно программным способом. Чтобы провести такое действие, необходимо войти в конфигуратор с правами администратора. Другой набор прав не позволит открыть конфигурацию. Далее, в меню конфигурация открыть вкладку поддержка и разрешить редактирование с поддержкой. Если программа на поддержке не стоит, делать это не требуется.
В конфигураторе, для всех финансовых реквизитов, нужно поменять размерность числа на 20, а точность на 7. Ошибки округления, после этого должны исчезнуть, но на экран все финансовые реквизиты будут выводиться с большим количеством нулей после запятой. Это исправить можно, изменением настроек формата редактирования. Такое исправление потребуется провести в форме документа и в форме объекта.
Как решить проблему на практике
Бухгалтеру, вероятно, не стоит самостоятельно осуществлять самостоятельное вторжение в конфигуратор программы. Лучше потребовать выполнить эти действия администратора, а если он будет говорить, что так сделать нельзя, показать ему эту статью.
Объём памяти, который занимает база 1С, несомненно, увеличится после такой оптимизации, но незначительно. Числовые данные занимают на порядок меньше места, чем текстовые и тем более, файлы картинок.
В программе 1С 7.7, тип реквизита задаётся через конфигуратор, документ, реквизиты табличной части, свойства реквизита.
Разбор ошибок, связанных с округлением, проводится в книге 1С Предприятие, введение в конфигурирование.