В процессе работы с программой «1С:Бухгалтерия 8» (редакция 3.0) бухгалтеры и технические специалисты иногда сталкиваются с ситуацией, когда в документе «Формирование записей книги покупок» (или при начислении НДС с авансов) все данные заполнены верно, в регистрах НДС информация присутствует, однако в бухгалтерских проводках по счетам 76.АВ (НДС по авансам и предоплатам полученным) или 76.ВА (НДС по авансам и предоплатам выданным) поле «Ставка НДС» остается пустым.
Рассмотрим детально, почему это происходит, разберем методологию работы системы и определим шаги по исправлению данной ситуации.
Для начала проанализируем, как устроена типовая конфигурация. В стандартном плане счетов счета 76.АВ и 76.ВА имеют только два предопределенных разреза аналитики (субконто):
Разработчики фирмы «1С» намеренно не добавили третье субконто «Ставки НДС» на эти счета. Это связано с тем, что вся отчетность по НДС (Книга покупок, Книга продаж, Декларация по НДС) строится не на основании бухгалтерских проводок, а на данных специализированных регистров накопления:
НДС Продажи;НДС Покупки;НДС с авансов.Поскольку в этих регистрах ставка НДС фиксируется в обязательном порядке, для корректного формирования отчетности наличие этой же информации в проводках (в регистре бухгалтерии) избыточно с точки зрения типового алгоритма.
Ситуация, описанная пользователями, чаще всего возникает, когда бухгалтерия принимает решение самостоятельно добавить третье субконто «Ставки НДС» к счетам 76.АВ или 76.ВА в пользовательском режиме (через «План счетов»).
Выясним причину, по которой программа игнорирует это добавление при проведении документов. Проблема кроется в жестком кодировании алгоритмов формирования проводок. Когда мы запускаем отладчик и проходим по процедурам документа «Формирование записей книги покупок», мы видим следующий механизм:
УчетНДСФормированиеПроводок или УчетНДС).Более того, как показывает практика отладки, если в информационной базе включен раздельный учет НДС, система может пытаться подставить в аналитику счета «Способы учета НДС». Поскольку тип данных субконто «Ставки НДС» не совпадает с ожидаемым типом «Способы учета НДС», проверка на соответствие типов не проходит, и поле остается пустым.
Если ваша организация приняла решение, что аналитика по ставкам НДС на счетах 76.АВ/ВА критически необходима, у вас есть два основных пути решения задачи.
Чтобы не снимать конфигурацию с поддержки и обеспечить корректное заполнение субконто, целесообразно использовать механизм расширений. Нам необходимо перехватить процедуру формирования движений и дописать заполнение третьего субконто.
Рассмотрим пример логики, которую необходимо внедрить в расширение (на примере обработки проведения документа):
&После("СформироватьДвиженияПоБухгалтерскомуУчету")
Процедура Расш_СформироватьДвиженияПоБухгалтерскомуУчету(ТаблицаДвижений)
Для Каждого СтрокаПроводки Из ТаблицаДвижений Цикл
// Проверяем, что счет является счетом авансов по НДС
Если СтрокаПроводки.СчетДт = ПланыСчетов.Хозрасчетный.НДСПоАвансамПолученным
ИЛИ СтрокаПроводки.СчетКт = ПланыСчетов.Хозрасчетный.НДСПоАвансамПолученным Тогда
// Определяем, в какое субконто нужно записать ставку НДС
// (предположим, это Субконто3)
Если СтрокаПроводки.СчетДт.ВидыСубконто.Количество() >= 3 Тогда
СтрокаПроводки.СубконтоДт[СтрокаПроводки.СчетДт.ВидыСубконто[2].ВидСубконто] = СтрокаПроводки.СтавкаНДС;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Важно: При использовании этого метода необходимо убедиться, что переменная, содержащая ставку НДС, доступна в контексте формирования проводок. В типовых механизмах БП 3.0 данные часто собираются в таблицу значений перед записью в регистр бухгалтерии.
Прежде чем приступать к программированию, проанализируем, действительно ли нам нужно это субконто в ОСВ (Оборотно-сальдовой ведомости). Если цель — проверить корректность исчисления налога, то программа 1С предоставляет мощные инструменты анализа без изменения плана счетов:
НДС с авансов, он даст гораздо более полную информацию, чем ОСВ по счету 76.АВ.Разберем, к чему нужно быть готовым, если вы все же решили оставить ручное субконто без доработки кода или с частичной доработкой:
Резюме: Отсутствие ставки НДС в проводке при наличии её в документе — это не программная ошибка (баг), а следствие того, что типовая архитектура 1С хранит ставку в регистрах накопления, а не на счетах бухгалтерского учета. Если аналитика в проводках жизненно необходима, используйте расширение конфигурации для заполнения добавленного субконто.