В практике бухгалтерского учета в программе 1С:Бухгалтерия предприятия 2.0 часто встречается неприятная ситуация: при оформлении отгрузки по договору в валюте (с оплатой в рублях) итоговые суммы или суммы НДС в печатных формах ТОРГ-12 и Счета-фактуры различаются на несколько копеек. Особенно остро эта проблема проявляется, когда по сделке проходил частичный аванс. В этой статье мы подробно разберем причины возникновения таких ошибок и рассмотрим варианты их устранения, чтобы ваши документы успешно проходили проверку контрагентов и контролирующих органов.
Проанализируем ситуацию с точки зрения методологии бухгалтерского учета. Согласно правилам ПБУ 3/2006, выручка от продажи товаров в валюте при условии получения аванса признается в рублевой оценке по сложному алгоритму:
В результате возникает так называемый средневзвешенный курс для каждой позиции номенклатуры. Рассмотрим подробнее, как это реализовано в программном коде 1С. Система пытается распределить рублевую сумму выручки и НДС по строкам табличной части документа РеализацияТоваровУслуг. Однако механизмы формирования печатных форм ТОРГ-12 и Счета-фактуры в редакции 2.0 могут использовать разные процедуры расчета.
Разберем по шагам, где именно закрадывается ошибка. В ТОРГ-12 приоритет отдается равенству математической формулы Цена * Количество = Сумма. Программа рассчитывает рублевую цену для каждой строки, округляет ее до двух знаков, а затем вычисляет итог. В Счете-фактуре же алгоритм зачастую ориентируется на итоговую сумму НДС, рассчитанную от общей налоговой базы документа, и распределяет ее обратно по строкам. Из-за разной последовательности округлений возникают расхождения в 1–2 копейки, которые становятся критичными при работе с тендерами или крупными государственными заказчиками.
Заглянем «под капот» конфигурации. В типовой «Бухгалтерии предприятия 2.0» за расчет рублевых сумм в документах у.е. (условных единицах) отвечают процедуры общего модуля. Обратим внимание на функцию ЗаполнитьСуммыПоУЕвРублях и процедуру РаспределитьСуммуПоСтолбцу в общем модуле УчетНДС.
Процедура РаспределитьСуммуПоСтолбцу предназначена для того, чтобы минимизировать погрешности округления. Она вычисляет разницу между итогом документа и суммой строк, а затем «выбрасывает» лишнюю копейку на первую или последнюю строку документа. Однако, как показывает практика, при печати Счета-фактуры код может выполнять повторный пересчет из валюты в рубли «на лету», не учитывая те корректировки, которые уже были сделаны в самой Реализации. Именно поэтому бухгалтер видит в проводках одни цифры, в накладной — другие, а в счете-фактуре — третьи.
Прежде чем приступать к доработке программы, попробуем решить вопрос стандартными средствами интерфейса. В документе РеализацияТоваровУслуг по умолчанию могут быть скрыты колонки с рублевыми эквивалентами, если договор валютный. Проделаем следующие действия:
Сумма (руб.) и НДС (руб.).Важно: После ручной правки рублевых сумм не забудьте перепровести документ, но следите, чтобы программа не пересчитала всё обратно при автоматическом зачете аванса. Этот способ хорош для разовых документов, но крайне трудозатратен при больших объемах отгрузок.
Для облачных версий 1С или баз, стоящих на поддержке, лучшим выходом будет создание внешней печатной формы. Это позволит не вносить изменения в саму конфигурацию, что сохранит возможность легкого обновления программы.
Рассмотрим логику работы такой формы. Чтобы ТОРГ-12 и Счет-фактура гарантированно совпадали, необходимо, чтобы одна форма брала данные из другой. Мы можем реализовать следующий алгоритм в коде обработки:
// Пример логики для внешней печатной формы ТОРГ-12
// Вместо расчета сумм по курсу, берем данные напрямую из Счета-фактуры
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СчетФактураВыданныйДокументыОснования.Ссылка КАК СФ
|ИЗ
| Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданныйДокументыОснования
|ГДЕ
| СчетФактураВыданныйДокументыОснования.ДокументОснование = &Реализация";
Запрос.УстановитьПараметр("Реализация", СсылкаНаОбъект);
// Далее из найденной СФ получаем табличную часть и выводим её в макет ТОРГ-12
Проанализируем преимущества этого подхода:
Счета-фактуры в макет ТОРГ-12.Если вы работаете в «облаке», вы можете столкнуться с тем, что техподдержка предлагает платные услуги по настройке договора. Посмотрим на это критически: смена настроек (например, переключение с «НДС сверху» на «НДС в том числе») редко помогает полностью устранить проблему копеек при наличии авансов, так как корень проблемы лежит в математике средневзвешенного курса.
Рекомендуем вам действовать по следующему плану:
В заключение отметим, что хотя налоговые органы лояльно относятся к расхождениям в копейках (если они не мешают идентифицировать сумму налога), для автоматизированных систем контроля АСК НДС-2 крайне важно, чтобы ваши данные совпадали с данными покупателя. Использование единого источника данных для всех отгрузочных документов — самый надежный способ избежать претензий и задержек в оплате со стороны контрагентов.