В практике ведения бухгалтерского и налогового учета периодически возникает задача сверки остатков по расчетам с контрагентами (счета 60 и 62) со счетами учета НДС по авансам (счета 76.АВ и 76.ВА). Ситуация значительно усложняется, когда на предприятии применяются различные ставки НДС (например, историческая ставка 18% для документов прошлых периодов и текущая ставка 20%, либо одновременное использование ставок 10% и 20%).
Сложность заключается в том, что в типовом плане счетов конфигурации «Управление производственным предприятием 1.3» (УПП) на счетах расчетов с контрагентами нет субконто «Ставка НДС». Стандартная оборотно-сальдовая ведомость не позволяет получить остатки задолженности в разрезе ставок налога. В этой статье мы подробно разберем, как решить эту задачу программным путем, и проанализируем особенности учета взаиморасчетов в 1С:УПП 1.3.
Для контроля правильности начисления НДС с авансов должно соблюдаться классическое соотношение:
НДС с аванса = Сумма аванса * (Ставка НДС / (100 + Ставка НДС))
Если сальдо по счету 62.02 распределено по разным ставкам, то и остаток по счету 76.АВ должен строго соответствовать этим пропорциям. В случае расхождений налоговые органы могут предъявить претензии при проверке декларации по НДС. Чтобы оперативно находить ошибки, бухгалтеру требуется отчет, который покажет остаток долга по контрагенту/договору и выделит из него сумму, относящуюся к ставке 18% (или 10%), и сумму, относящуюся к ставке 20%.
В 1С:УПП 1.3 на счетах 60 и 62 используются субконто Контрагенты, Договоры контрагентов и, при определенных настройках, Документы расчетов с контрагентами. Информация о ставках НДС хранится непосредственно в первичных документах (платежных поручениях, реализациях, поступлениях) и регистрах накопления НДС, но напрямую в проводках по счетам расчетов она не фиксируется.
Давайте проанализируем, с какими трудностями мы можем столкнуться при попытке автоматического деления остатков:
Хозрасчетный) невозможно. Придется обращаться к регистрам оперативного учета накопления НДС.Рассмотрим оригинальное и эффективное решение, предложенное для реализации в виде внешнего отчета или обработки. Идея алгоритма заключается в комбинировании данных из остатков бухгалтерского учета и специализированного регистра накопления НДСНачисленный.
Разберем логику решения по шагам:
Хозрасчетный.Остатки по интересующим нас счетам (60 и 62). На этом этапе мы получаем общую сумму задолженности в разрезе контрагентов и договоров.НДСНачисленный (или специализированным регистрам расчетов по НДС в УПП) и выбираем все документы-регистраторы, в движениях которых фигурирует ставка НДС 20%. Эти документы мы помещаем во временную таблицу или выгружаем в массив.ОстаткиОбороты регистра бухгалтерии, но накладываем условие исключения: мы отсекаем все обороты, сформированные регистраторами из нашего списка со ставкой 20%. Таким образом, мы получаем «чистый» остаток, который относится к ставке 18% (и другим более ранним ставкам).Давайте посмотрим на пример программной реализации данного алгоритма на встроенном языке 1С. Этот код можно использовать при разработке схемы компоновки данных (СКД) или при написании выборки в коде обработки:
// Шаг 1: Получаем общие остатки по счетам расчетов
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
| ХозрасчетныйОстатки.Субконто2 КАК Договор,
| ХозрасчетныйОстатки.СуммаОстаток КАК ОбщаяСуммаОстатка
|ПОМЕСТИТЬ ВТ_ОбщиеОстатки
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В (&СчетаРасчетов), , ) КАК ХозрасчетныйОстатки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Шаг 2: Выбираем документы расчетов, в которых фигурирует НДС 20%
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| НДСНачисленный.Регистратор КАК Регистратор20
|ПОМЕСТИТЬ ВТ_Регистраторы20
|ИЗ
| РегистрНакопления.НДСНачисленный КАК НДСНачисленный
|ГДЕ
| НДСНачисленный.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Шаг 3: Получаем остатки, исключая документы со ставкой 20%
|ВЫБРАТЬ
| ХозрасчетныйОстаткиОбороты.Субконто1 КАК Контрагент,
| ХозрасчетныйОстаткиОбороты.Субконто2 КАК Договор,
| ХозрасчетныйОстаткиОбороты.СуммаКонечныйОстаток КАК СуммаСтавка18
|ПОМЕСТИТЬ ВТ_Остатки18
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиОбороты(&НачалоПериода, &Период, , , Счет В (&СчетаРасчетов), , НЕ Регистратор В (ВЫБРАТЬ Регистратор20 ИЗ ВТ_Регистраторы20)) КАК ХозрасчетныйОстаткиОбороты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// Шаг 4: Соединяем таблицы и вычисляем остаток по ставке 20%
|ВЫБРАТЬ
| ВТ_ОбщиеОстатки.Контрагент КАК Контрагент,
| ВТ_ОбщиеОстатки.Договор КАК Договор,
| ВТ_ОбщиеОстатки.ОбщаяСуммаОстатка КАК ОбщаяСуммаОстатка,
| ЕСТЬNULL(ВТ_Остатки18.СуммаСтавка18, 0) КАК СуммаСтавка18,
| ВТ_ОбщиеОстатки.ОбщаяСуммаОстатка - ЕСТЬNULL(ВТ_Остатки18.СуммаСтавка18, 0) КАК СуммаСтавка20
|ИЗ
| ВТ_ОбщиеОстатки КАК ВТ_ОбщиеОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки18 КАК ВТ_Остатки18
| ПО ВТ_ОбщиеОстатки.Контрагент = ВТ_Остатки18.Контрагент
| И ВТ_ОбщиеОстатки.Договор = ВТ_Остатки18.Договор";
Запрос.УстановитьПараметр("Период", КонецДня(ТекущаяДата()));
Запрос.УстановитьПараметр("НачалоПериода", Дата("20150101000000")); // период охвата исторических данных
СписокСчетов = Новый СписокЗначений;
СписокСчетов.Добавить(ПланСчетов.Хозрасчетный.ПокупателиПоАвансам); // 62.02
СписокСчетов.Добавить(ПланСчетов.Хозрасчетный.ПоставщикиПоАвансам); // 60.02
Запрос.УстановитьПараметр("СчетаРасчетов", СписокСчетов);
РезультатВыборки = Запрос.Выполнить().Выбрать();
При использовании вышеописанного алгоритма важно помнить, что в УПП 1.3 ведение НДС тесно связано с оперативными регистрами накопления. Для повышения точности распределения (особенно если взаиморасчеты ведутся «По договору в целом») мы рекомендуем использовать регистры:
НДС Расчеты с покупателями — этот регистр хранит сведения о расчетах по НДС с детализацией до расчетного документа вне зависимости от настроек договора.НДС Расчеты с поставщиками — аналогичный регистр для контроля расчетов с поставщиками.Запросы к этим регистрам позволят получить максимально корректные данные по ставкам НДС, так как именно в этих регистрах система фиксирует событие «Получен аванс» или «Выдан аванс», сопоставляя платеж со ставкой налога, указанной в счете-фактуре или документе оплаты.
Подводя итог, отметим: несмотря на то, что на счетах бухгалтерского учета 60 и 62 нет прямого разреза по ставкам НДС, задача успешно решается сопоставлением бухгалтерских итогов с оперативными регистрами учета НДС. Предложенный подход с исключением регистраторов по ставке 20% позволяет быстро локализовать расхождения с 76-м счетом и исправить ошибки в учете.