Почему в 1С 7.7 не сходится итоговая сумма документа с 1С 8 из-за округления и как это исправить?

Бухгалтер 1С v7.7 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

При ведении учета в 1С:Предприятии 7.7 и взаимодействии с контрагентами, работающими на 1С:Предприятии 8, бухгалтеры регулярно сталкиваются с расхождениями в несколько копеек. При вводе документа Поступление ТМЦ итоговые суммы по строкам и по документу в целом не сходятся с печатной накладной поставщика, а колонка Всего оказывается недоступной для ручной правки. Разберем природу этого явления и рассмотрим практические способы решения проблемы как на уровне пользовательской работы, так и на уровне настроек конфигурации.

Почему возникают копеечные расхождения между платформами

Проанализируем технические и математические причины, вызывающие несовпадение итоговых цифр:

  1. Разные алгоритмы округления по умолчанию: во встроенном языке 1С 7.7 функция Окр() всегда выполняет классическое арифметическое округление, где значение 0.5 округляется в большую сторону. В платформе 1С 8 функция Окр() по умолчанию работает по правилу банковского округления (к ближайшему четному числу, режим Окр15как20), если разработчиком явно не задан арифметический режим Окр15как10.
  2. Разрядность реквизита цены: в типовых базах 1С 7.7 реквизит Цена в табличной части строго ограничен двумя знаками после запятой. В конфигурациях 1С 8 разрядность цен в торговых подсистемах часто составляет 3 или 4 знака, либо программа вычисляет цену делением суммы на количество с высокой внутренней точностью, из-за чего произведение цены на количество в 1С 7.7 дает расхождение в копейках.
  3. Методика вычисления налога: в ряде конфигураций 1С 8 налог может рассчитываться по документу в целом с последующим распределением по позициям, тогда как в 1С 7.7 расчет всегда жестко выполняется строго построчно.

Способ 1. Изменение способа включения НДС на режим «В сумме»

Самый простой и правильный пользовательский путь, не требующий изменений в коде программы, — переключить механизм расчета налога в первичном документе.

Разберем по шагам, как это работает:

  1. В шапке документа поступления переключаем реквизит включения налога в положение НДС в сумме (вместо режима «НДС сверху»).
  2. При таком способе расчета сумма, вводимая в колонку Сумма, непосредственно определяет значение в колонке Всего. Мы вводим окончательную стоимость позиции из накладной поставщика, и программа не пересчитывает итог в большую сторону.
  3. Колонка НДС рассчитывается обратным выделением ставки из суммы. Если из-за округления сумма налога отклонилась на 1–2 копейки от накладной поставщика, значение в колонке НДС можно без ограничений поправить вручную. Ручная корректировка НДС при режиме «в сумме» не приводит к автопересчету колонок Сумма и Всего, благодаря чему весь документ сходится копейка в копейку.

Способ 2. Программное снятие блокировки колонки «Всего»

Если для соблюдения внутренних регламентов учет ведется исключительно способом «НДС сверху», колонка Всего в 1С 7.7 блокируется от прямого редактирования. Выясним причину: блокировка устанавливается программно в модуле формы документа при открытии или смене строк, чтобы предотвратить рассогласование математических формул.

Для включения возможности ручной корректировки выполним следующие действия в Конфигураторе 1С 7.7:

  1. Откроем модуль формы документа ПоступлениеТМЦ.
  2. Найдем процедуры ПриОткрытии() и ПриРедактированииСтроки().
  3. Найдем вызов управления доступностью колонки и изменим параметр с 0 на 1 (или закомментируем строку):

// Форма.Всего.Доступность(0);
Форма.Всего.Доступность(1);
  1. В свойствах элемента диалога табличной части убедимся, что для колонки Всего снят флаг «Запретить редактирование».
  2. Обратим внимание на процедуру пересчета строки: при ручном изменении ячейки Всего необходимо заблокировать повторный обратный вызов функции, пересчитывающей итог по формуле Сумма + НДС.

Способ 3. Разбиение номенклатурной позиции на две строки

Если конфигурация находится на поддержке и внесение изменений в код нежелательно, применим проверенный практический прием разделения позиции:

  1. Предположим, поступило 10 единиц товара, и из-за цены за единицу расчетная сумма документа превышает накладную на 1 копейку.
  2. Вводим первую строку на 9 единиц товара по стандартной цене.
  3. Во вторую строку вводим 1 единицу того же товара, скорректировав ее цену на необходимую копейку.
  4. В результате суммарное количество по номенклатуре остается верным, а общие итоги по документу и сумма входящего НДС полностью соответствуют первичным документам поставщика.

Способ 4. Увеличение разрядности реквизита «Цена» в метаданных

Когда поставщик регулярно отгружает весовой, мерный или оптовый товар с ценами, содержащими более двух знаков после запятой, округление до сотых на этапе ввода цены делает точный расчет невозможным. Рассмотрим кардинальное решение через Конфигуратор:

  1. В дереве метаданных найдем табличную часть документа ПоступлениеТМЦ.
  2. Откроем свойства реквизита Цена и изменим точность с 2 до 3 или 4 знаков.
  3. Аналогично расширим формат вывода соответствующей колонки в свойствах таблицы на форме документа.
  4. После сохранения структуры базы при умножении цены на количество погрешность в расчете сумм будет сведена к минимуму.

Способ 5. Списание погрешности округления через бухгалтерскую справку

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

  1. Создаем документ Операция (бухгалтерская справка).
  2. Если возникла копеечная переплата или недоплата по расчетам с поставщиком, списываем сальдо на финансовые результаты: с кредита или дебета счета 60 на счет 91.02 («Прочие расходы») или 91.01 («Прочие доходы») как внереализационные разницы от округлений.
← На главную