При ведении учета в программе «1С:Бухгалтерия 3.0» (БП 3.0) бухгалтеры часто сталкиваются со следующей проблемой: после импорта платежных документов и счетов из торговой базы (например, «1С:Управление торговлей») создается документ Счет-фактура выданный с видом «на аванс». Несмотря на то, что в исходном счете покупателю номенклатура полностью заполнена, в самом авансовом счете-фактуре табличная часть остается пустой, а в колонке «Содержание услуги, доп. сведения» автоматически подставляется обобщенный текст «Предварительная оплата».
В этой статье мы подробно разберем, почему возникает эта проблема, рассмотрим налоговые риски формулировки «Предварительная оплата», детально изучим встроенные алгоритмы автозаполнения 1С и выясним, как исправить скрытые технические ошибки обмена данными, которые ломают этот механизм.
Иногда специалисты технической поддержки или начинающие программисты утверждают, что незаполнение номенклатуры в авансовом счете-фактуре — это норма, так как фактической отгрузки товара еще не произошло. Однако с точки зрения налогового законодательства это не так. Рассмотрим нормативные требования подробнее:
Таким образом, требование бухгалтера о заполнении номенклатуры абсолютно законно и обоснованно — это защищает компанию и ее контрагентов от налоговых споров.
В типовой конфигурации 1С:Бухгалтерия 3.0 заложен четкий механизм автоматического определения номенклатуры для авансовых счетов-фактур. Программа анализирует цепочку документов в следующем порядке:
Если в документе поступления денежных средств (Поступление на расчетный счет или Поступление наличных) в поле «Счет на оплату» выбран конкретный документ Счет покупателю, программа обращается к его табличной части:
Если счет на оплату в документе поступления не указан, программа обращается к договору с контрагентом. В карточке договора (справочник Договоры) предусмотрена специальная настройка:
Номенклатура (например, созданную заранее позицию «Строительные материалы (предоплата)»). Если поле заполнено, программа подставит это значение вместо безликого текста «Предварительная оплата».Проанализируем техническую ситуацию, когда и счет в документе оплаты выбран, и номенклатура в нем заполнена, но автозаполнение в БП 3.0 все равно не работает. Чаще всего корни проблемы лежат в ошибках синхронизации данных.
Основная и неочевидная причина кроется в незаполненной валюте документа «Счет покупателю». При переносе документов из торговой базы (УТ) в бухгалтерскую (БП) правила обмена могут быть настроены некорректно или содержать недоработки. В результате в БП создается документ Счет покупателю, в котором табличные части перенесены, но реквизит валюты остался пустым. При этом программа не выдает никаких ошибок при проведении счета, так как этот документ не делает движений по регистрам и проводкам (зеленая галочка проведения на нем носит исключительно административный характер).
Однако при формировании авансового счета-фактуры внутренний запрос программы пытается сопоставить валюту платежа (из документа Поступление на расчетный счет) и валюту счета на оплату. Из-за незаполненного реквизита валюты в счете запрос возвращает пустой результат, связь между документами рушится, и алгоритм откатывается к стандартному заполнению — строке «Предварительная оплата».
Ниже представлен пример упрощенного программного кода, отражающего уязвимость алгоритма при отсутствии валюты:
// Пример логики проверки связи платежа и счета в 1С:Бухгалтерия
Если ЗначениеЗаполнено(ДокументОплаты.СчетНаОплату) Тогда
СчетОбъект = ДокументОплаты.СчетНаОплату;
// Если валюта в счете не заполнена, сравнение вернет Ложь
Если СчетОбъект.ВалютаДокумента <> ДокументОплаты.ВалютаДокумента Тогда
// Алгоритм прерывает сопоставление номенклатуры
ЗаполнитьПоУмолчаниюКакПредоплату();
Иначе
ЗаполнитьНоменклатуруИзСчета(СчетОбъект);
КонецЕсли;
КонецЕсли;
Другие сопутствующие причины сбоев при обмене данными:
Заказ клиента. Если при обмене он не конвертируется в Счет покупателю в бухгалтерии, то платеж в БП остается без привязки к спецификации.62.01 (расчеты за отгруженные товары) вместо счета авансов 62.02, программа не распознает данный платеж как авансовый и счет-фактура вовсе не будет сформирован.Разберем по шагам, как исправить данную ситуацию и заставить программу заполнять номенклатуру корректно:
Счет покупателю прямо в информационной базе «1С:Бухгалтерия». Обратите внимание на поле «Валюта» (обычно находится рядом с ценами или внизу документа). Если поле пустое, заполните его вручную (например, «руб.») и перепроведите документ.Поступление на расчетный счет, убедитесь, что в поле «Счет на оплату» выбран ваш исправленный счет. Нажмите кнопку «Записать», а затем перейдите в созданный на его основании Счет-фактура выданный и нажмите кнопку «Заполнить» (или пересоздайте его заново). Номенклатура должна успешно заполниться из спецификации счета.ВалютаДокумента (или ДоговорКонтрагента.ВалютаВзаиморасчетов) из торговой базы в бухгалтерскую.Выполнив эти действия, мы обеспечим соответствие выставляемых авансовых счетов-фактур всем требованиям контролирующих органов и исключим риски потери налоговых вычетов для наших партнеров.