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