В процессе подготовки и сдачи налоговой отчетности по НДС бухгалтеры нередко сталкиваются с техническими особенностями программного обеспечения, которые могут вызвать нежелательное внимание со стороны налоговых органов. Одна из таких проблем — автоматическое усечение лидирующих (ведущих) нулей в номерах счетов-фактур при формировании декларации по НДС, книги продаж, книги покупок или журнала учета счетов-фактур в программе 1С:Бухгалтерия 3.0.
Представьте ситуацию: бухгалтер вручную или с помощью интеграции переносит документы из сторонней складской программы, сохраняя оригинальные номера с лидирующими нулями (например, 00092). Однако при автоматическом заполнении декларации по НДС программа «1С» убирает эти нули, превращая номер в 92. При этом покупатель (ваш контрагент) заносит в свою книгу покупок номер с нулями «как есть» из печатной формы или электронного документа. В результате возникает расхождение номеров у продавца и покупателя. Давайте подробно разберем, почему так происходит, какие налоговые риски это за собой влечет и какими методами можно решить эту проблему.
Разработчики фирмы «1С» заложили алгоритм автоматического усечения лидирующих нулей и системных префиксов организаций/баз в отчетности намеренно. Логика этого механизма строится на следующих предпосылках:
92 вместо префиксов и длинной череды нулей), и сопоставление в автоматизированной системе контроля пройдет успешно.Проблема возникает в тех случаях, когда одна из сторон ведет учет в стороннем программном обеспечении (не «1С»), в старой версии платформы (например, в «1С:Бухгалтерии 7.7», где нули по умолчанию не усекались) либо если данные вносятся вручную строго по печатным формам документов.
Прежде чем переходить к техническим вариантам решения, проанализируем налоговую составляющую этой проблемы. Действительно ли критично отсутствие ведущих нулей в декларации?
Согласно абзацу 2 пункта 2 статьи 169 Налогового кодекса РФ, ошибки в счетах-фактурах, не препятствующие налоговым органам при проведении налоговой проверки идентифицировать продавца, покупателя, наименование товаров (работ, услуг), имущественных прав, их стоимость, а также налоговую ставку и сумму налога, предъявленную покупателю, не являются основанием для отказа в принятии к вычету сумм налога.
Министерство финансов РФ в своих разъяснениях (например, в письме от 12.01.2017 № 03-07-09/411) неоднократно подчеркивало, что нестыковки в нумерации счетов-фактур (включая отсутствие хронологической последовательности или разницу в ведущих нулях) не признаются существенной ошибкой. Ведущие нули математически считаются незначащими разрядами строки. С точки зрения логики учета, номера 00092 и 92 тождественны.
Несмотря на то, что закон и разъяснения ведомств защищают налогоплательщика, на практике несоответствие номеров в базах продавца и покупателя приводит к существенным трудозатратам:
Поэтому, чтобы избавить себя и своих партнеров от регулярного написания пояснительных писем и общения с инспекторами, бухгалтеры стремятся добиться идеальной идентичности номеров в отправляемых декларациях.
Рассмотрим по шагам доступные способы решения этой проблемы в «1С:Бухгалтерия 3.0».
Если вам необходимо быстро решить проблему без привлечения программистов и без внесения изменений в конфигурацию программы, можно применить простой и эффективный пользовательский лайфхак. Он основан на особенностях работы встроенного алгоритма очистки номеров в «1С».
При заполнении номера счета-фактуры в поле «Номер» добавьте обычный пробел перед ведущими нулями (например, вместо 00092 введите 00092).
Почему это работает? Алгоритм усечения лидирующих нулей настроен на работу со стандартными числовыми строками и системными шаблонами автонумерации. Обнаружив пробел в самом начале строки, программа перестает воспринимать этот номер как чистое число и распознает его как сложную текстовую строку. В результате при выгрузке декларации по НДС, книги продаж или журнала учета алгоритм оставляет всю последовательность символов нетронутой, включая ведущие нули.
Рассмотрим плюсы и минусы данного метода:
Если ваша база «1С» уже находится на доработке или вы используете механизм расширений, логику очистки номеров можно скорректировать программным путем. Вся информация для формирования декларации собирается на основе отчета ЖурналУчетаСчетовФактур.
Разберем, где именно в конфигурации происходят эти преобразования. Нам понадобятся объект конфигурации Отчет.ЖурналУчетаСчетовФактур, его модуль менеджера и процедура ЗаполнитьСтрокуЖурналаУчетаСчетовФактур.
Проанализируем пример кода, который возвращает исходный формат номера и даты документов, исключая нежелательное автоусечение при формировании отчетов за определенные периоды (например, при переходе со старых систем):
// Добавлено - временно добавим ведущие нули для отчета,
// так как исходные документы были выставлены из базы 1С 7.7 с нулями.
// Корректируем дату и номер счета-фактуры комитента по фактическим входящим данным.
Если (ЗаписьЖурналаУчетаСчетовФактур.ЧастьЖурнала = Перечисления.ЧастиЖурналаУчетаСчетовФактур.ВыставленныеСчетаФактуры) Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СчетФактураПолученный.ДатаВходящегоДокумента КАК Дата
|ИЗ
| Документ.СчетФактураПолученный КАК СчетФактураПолученный
|ГДЕ
| СчетФактураПолученный.Дата МЕЖДУ &НачПериода И &КонПериода
| И СчетФактураПолученный.ПометкаУдаления = ЛОЖЬ
| И СчетФактураПолученный.НомерВходящегоДокумента = &НомерВходящегоДокумента
| И СчетФактураПолученный.Контрагент.ИНН = &ИНН
| И СчетФактураПолученный.Контрагент.КПП = &КПП";
Запрос.УстановитьПараметр("ИНН", ЗаписьЖурналаУчетаСчетовФактур.КомитентИНН);
Запрос.УстановитьПараметр("КПП", ЗаписьЖурналаУчетаСчетовФактур.КомитентКПП);
Запрос.УстановитьПараметр("НомерВходящегоДокумента", ЗаписьЖурналаУчетаСчетовФактур.НомерСчетаФактурыКомитента);
Запрос.УстановитьПараметр("НачПериода", НачалоКвартала(ЗаписьЖурналаУчетаСчетовФактур.ДатаСчетаФактуры));
Запрос.УстановитьПараметр("КонПериода", КонецКвартала(ЗаписьЖурналаУчетаСчетовФактур.ДатаСчетаФактуры));
Выборка = Запрос.Выполнить.Выбрать;
Если Выборка.Следующий Тогда
СоставСтроки.НомерДатаСчетаФактурыКомитента = Лев(СоставСтроки.НомерДатаСчетаФактурыКомитента, Найти(СоставСтроки.НомерДатаСчетаФактурыКомитента,";")-1) + ";" + Формат(Выборка.Дата,"ДФ=дд.ММ.гггг");
КонецЕсли;
СоставСтроки.ДатаПередачиПолучения = СоставСтроки.ДатаСчетаФактуры;
КонецЕсли;
Важная рекомендация по внедрению кода: Крайне не рекомендуется вносить данные изменения напрямую в основную конфигурацию программы. Для этих целей лучше использовать механизм Расширений конфигурации. Создайте новое расширение, заимствуйте в него отчет ЖурналУчетаСчетовФактур и метод ЗаполнитьСтрокуЖурналаУчетаСчетовФактур, после чего примените аннотацию &После или &Вместо для корректировки логики заполнения структуры СоставСтроки. Это позволит сохранить вашу конфигурацию обновляемой в автоматическом режиме.
Наиболее надежный и бесконфликтный путь, не требующий технических доработок ни с одной стороны, — это выстраивание единого порядка заполнения документов с вашими контрагентами:
92 вместо напечатанного на бумаге 00092). Такое действие со стороны покупателя абсолютно правомерно, не нарушает требований статьи 169 НК РФ и гарантирует прохождение автоматического сопоставления в АСК НДС-2 на 100%.Таким образом, мы детально разобрали все возможные варианты решения проблемы усечения номеров. Выбор конкретного метода зависит от технических возможностей вашей организации и готовности взаимодействовать со своими контрагентами для выстраивания бесконфликтного документооборота.