Как настроить или изменить ставку НДС по умолчанию при загрузке банковской выписки в 1С:Бухгалтерия 3.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Налоговый учет IT и автоматизация бизнеса
← На главную

При переходе с конфигурации «Бухгалтерия предприятия» редакции 2.0 на редакцию 3.0 многие пользователи и разработчики столкнулись с неприятным изменением: из пользовательских настроек исчезла привычная опция «Основная ставка НДС». Из-за этого при загрузке банковских выписок или создании документов программа принудительно устанавливала ставку НДС (ранее 18%, затем 20%) либо значение «Без НДС» для организаций на спецрежимах. Пользователям приходилось вручную корректировать ставку в каждой строчке выписки, что существенно замедляло работу.

В этой статье мы подробно разберем, как функционирует механизм определения ставки НДС при загрузке документов в 1С:Бухгалтерия 3.0, как решить эту проблему программно с помощью расширения конфигурации (для старых и кастомизированных релизов) и как использовать штатные возможности, добавленные разработчиками в современных версиях программы.

Как система определяет ставку НДС по умолчанию: программная логика

Для начала проанализируем, где именно в программном коде 1С:Бухгалтерия 3.0 происходит автоматическое заполнение ставки НДС. Если мы имеем дело с нетиповым поведением или старым релизом, нам потребуется вмешательство в логику конфигурации.

В ранних версиях «Бухгалтерии предприятия 3.0» за автоподстановку отвечал общий модуль ЗаполнениеДокументов. Логика назначения ставки базировалась на следующем фрагменте кода:


Если ОбщегоНазначенияБП.ЕстьНезаполненныйРеквизитТабЧастиДокумента("СтавкаНДС", СтрокаПлатеж, МетаданныеДокумента, "РасшифровкаПлатежа") Тогда
    Если ЕстьРеквизитОрганизация И ЗначениеЗаполнено(ДокументОбъект.Организация) И (МетаданныеДокумента.Имя = "ПриходныйКассовыйОрдер" ИЛИ МетаданныеДокумента.Имя = "ПоступлениеНаРасчетныйСчет") Тогда
        СтрокаПлатеж.СтавкаНДС = ?(НЕ  ПлательщикНДС, Перечисления.СтавкиНДС.БезНДС, Перечисления.СтавкиНДС.НДС20);
    Иначе
        СтрокаПлатеж.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
    КонецЕсли;
КонецЕсли;

Как мы видим, жестко прописано использование ставки Перечисления.СтавкиНДС.НДС20 (или НДС18 в старых релизах), если организация является плательщиком НДС. Никаких гибких настроек здесь не предусматривалось.

В современных релизах логика усложнилась и распределилась по нескольким общим модулям. Процесс загрузки банковской выписки теперь выглядит следующим образом:

  1. При импорте файлов запускается функция СоздатьДокументы в общем модуле ЗагрузкаВыпискиПоБанковскомуСчету.
  2. Система пытается распознать назначение платежа программными методами, вызывая функцию ВыделитьНДСИзНазначенияПлатежа(ИсходноеНазначениеПлатежа, СуммаПлатежа) из того же модуля. Программа ищет текстовые вхождения, такие как «в т.ч. НДС 20%», «в т.ч. НДС 10%» или «без НДС». Если совпадение найдено, устанавливается распознанная ставка.
  3. Если по тексту назначения платежа ставку определить не удалось, система обращается к общему модулю УчетНДСКлиентСервер и последовательно вызывает две ключевые функции:
    • СтавкаНДСВДоговореКонтрагента (пытается получить ставку, закрепленную за конкретным договором);
    • СтавкаНДСПоУмолчанию (возвращает базовую ставку конфигурации).

Если нам необходимо программно изменить поведение системы (например, установить ставку 10% вместо 20% по умолчанию для определенного круга операций), нам нужно переопределить поведение этих функций.

Программное решение: Создание расширения конфигурации

Чтобы не снимать конфигурацию с поддержки и сохранить возможность простого обновления, мы рекомендуем использовать механизм расширений. Мы можем перехватить выполнение функций в модуле УчетНДСКлиентСервер или ЗаполнениеДокументов.

Рассмотрим пример создания расширения для подмены ставки НДС по умолчанию:

  1. Откройте конфигуратор вашей базы данных, перейдите в меню Конфигурация — Расширения конфигурации и добавьте новое расширение.
  2. В дереве объектов расширения добавьте общий модуль УчетНДСКлиентСервер (нажмите на него правой кнопкой мыши в основной конфигурации и выберите «Добавить в расширение»).
  3. Установите для заимствованной функции СтавкаНДСПоУмолчанию аннотацию &Вместо.

Пример переопределяющего кода в расширении:


&Вместо("СтавкаНДСПоУмолчанию")
Функция Расш1_СтавкаНДСПоУмолчанию(Параметры)
    // Если нам нужно принудительно установить 10% по умолчанию для определенных условий
    Возврат ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС10");
КонецФункции

Аналогичным образом мы можем доработать функцию СтавкаНДСВДоговореКонтрагента, чтобы возвращать необходимую ставку в зависимости от вида договора или реквизитов контрагента.

Посмотрим на пример переопределения логики в общем модуле ЗагрузкаВыпискиПоБанковскомуСчету. Мы можем перехватить момент создания документов и принудительно подставить нужную нам ставку, если она не была распознана автоматически:


&После("ВыделитьНДСИзНазначенияПлатежа")
Функция Расш1_ВыделитьНДСИзНазначенияПлатежа(ИсходноеНазначениеПлатежа, СуммаПлатежа, Результат)
    // Если стандартный алгоритм вернул неопределенную ставку или "Без НДС", а нам нужна 10%
    Если Результат = Неопределено Или Результат.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.БезНДС") Тогда
        // Проверяем дополнительные условия, например, ключевые слова
        Если Найти(ВРег(ИсходноеНазначениеПлатежа), "ДЕТСКИЕ ТОВАРЫ") > 0 Тогда
            Результат.СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС10");
        КонецЕсли;
    КонецЕсли;
    Возврат Результат;
КонецФункции

Такой подход позволяет автоматизировать рутину бухгалтера без изменения типового кода и сохраняет полную работоспособность обновлений 1С.

Современные штатные возможности настройки НДС в 1С:Бухгалтерия 3.0

Разработчики фирмы «1С» со временем отреагировали на пожелания пользователей и вернули гибкие механизмы настройки НДС без необходимости доработки кода. Если вы работаете на актуальном релизе программы (начиная с релиза 3.0.130 и выше), вам доступны следующие инструменты.

1. Возвращение персональной настройки «Основная ставка НДС»

В программу был возвращен функционал, аналогичный поведению версии 2.0. Каждый пользователь может задать для себя индивидуальную «ходовую» ставку НДС.

Выясним, где находится эта настройка и как ее активировать:

На что влияет эта настройка: данное значение будет подставляться автоматически при создании элементов справочника «Номенклатура», а также использоваться по умолчанию в регламентных операциях и банковских документах, если система не сможет вычислить ставку на основе более приоритетных правил (например, из текста платежного поручения).

2. Настройка заполнения НДС на уровне договора с контрагентом

Начиная с релиза 3.0.89, у пользователей появилась возможность точечной настройки НДС под конкретного контрагента и сделку. Это позволяет избавиться от ошибок, когда с разными контрагентами ведутся расчеты по разным ставкам НДС.

Рассмотрим, как настроить автозаполнение в карточке договора:

  1. Откройте карточку контрагента, перейдите в список его договоров и откройте нужный договор.
  2. Разверните группу параметров «НДС».
  3. В поле «Заполнение ставки НДС в документах» выберите один из доступных режимов:
    • По умолчанию: ставка будет автоматически заполняться на основе значения из последнего проведенного документа по этому договору. Это самый удобный сценарий для регулярных однотипных поставок.
    • Из карточки номенклатуры: ставка НДС будет определяться непосредственно из справочника «Номенклатура» на дату проведения операции.
    • Без НДС: для этого договора в документах всегда принудительно будет устанавливаться значение «Без НДС» (актуально для работы с контрагентами на УСН или патенте).

Общий приоритет подбора ставки НДС при импорте выписок

Проанализируем итоговую последовательность, по которой система принимает решение о выборе ставки НДС при загрузке банковских выписок в актуальных релизах:

  1. Текстовый анализ поля «Назначение платежа». Это наивысший приоритет. Если клиент прислал платеж с явным указанием «в т.ч. НДС 10%», программа проставит именно эту ставку, игнорируя остальные настройки.
  2. Индивидуальные настройки договора. Если из текста назначение платежа не распознано, программа смотрит в карточку договора на поле «Заполнение ставки НДС в документах».
  3. Персональные настройки пользователя. Если в договоре настройки не заданы, система обращается к полю «Основная ставка НДС» в персональных настройках текущего пользователя.
  4. Учетная политика организации. Если все предыдущие шаги не дали результата, программа определяет ставку исходя из системы налогообложения организации (например, для ОСНО установит 20%, для УСН — «Без НДС» с учетом актуальных шкал налогообложения).

Используя предложенные штатные настройки или механизмы расширения конфигурации, вы сможете полностью автоматизировать процесс заполнения НДС в банковских документах, минимизировать ручной труд и избежать досадных ошибок при формировании книги покупок и продаж.

← На главную