Как исправить появление старой ставки НДС (18%) в банковских документах при обмене УТ 11 — БП 3.0?

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

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

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

---

Почему в банковских документах возникает старая ставка?

Давайте проанализируем структуру данных в конфигурации УТ 11. В отличие от накладных (документов реализации или поступления), в платежных документах — таких как ПоступлениеБезналичныхДенежныхСредств или СписаниеБезналичныхДенежныхСредств — ставка НДС в явном виде в шапке документа часто отсутствует. Особенно это характерно для платежей, которые вешаются «на сальдо» договора (без указания конкретного заказа или накладной в расшифровке платежа).

Когда срабатывает обмен данными, система пытается заполнить ставку НДС в БП 3.0. Если в самом документе УТ ставка не определена, в игру вступают правила конвертации объектов (ПКО) и правил конвертации свойств (ПКС), созданные в программе «1С:Конвертация данных 2.0». В этих правилах разработчики часто прописывают «подстраховочные» алгоритмы: если контрагент является плательщиком НДС, то по умолчанию ему присваивается ставка 18%.

Сложность заключается в том, что подобные алгоритмы могут выполняться на двух разных этапах синхронизации:

  1. При выгрузке (на стороне УТ): Данные анализируются, и в XML-файл выгрузки принудительно записывается значение ставки 18%.
  2. После загрузки (на стороне БП): Поля могут выгружаться пустыми, но обработчик в правилах загрузки принудительно заполняет пустые значения ставкой по умолчанию (18%), ориентируясь на учетную политику или статус контрагента.

Поскольку значение заполняется принудительно кодом правил, стандартные механизмы БП 3.0 по автоматическому определению ставки НДС на дату документа игнорируются.

---

Шаг 1. Локализация проблемы и поиск в файле правил обмена

Если вы уже изменили все очевидные модули обмена в конфигураторе, но ставка 18% все равно продолжает «прилетать» в бухгалтерию, необходимо выгрузить правила обмена в XML-файл и провести глобальный поиск.

Выполним следующие действия:

  1. Откроем базу в режиме «Конфигуратор» или воспользуемся обработкой работы с правилами синхронизации.
  2. Выгрузим используемые правила обмена в XML-файл на диск.
  3. Откроем полученный файл в любом текстовом редакторе (например, Notepad++ или VS Code) и запустим поиск по ключевым словам: НДС18, СтавкаНДС, "18" или 18%.

Рассмотрим пример типичного кода, который может быть скрыт в алгоритмах правил конвертации:


// Пример алгоритма "По умолчанию" в правилах обмена
Если ОбладаетПризнакомПлательщикаНДС(Объект.Контрагент) Тогда
    Значение = Перечисления.СтавкиНДС.НДС18;
КонецЕсли;

Обратите внимание, что в «Конвертации данных» алгоритмы могут быть вложены друг в друга и распределены по иерархии. Если в программе настройки правил включен иерархический просмотр, вы можете просто не заметить нужную ветку. Специалисты рекомендуют отключать иерархическое отображение при поиске обработчиков событий.

---

Шаг 2. Корректировка алгоритмов выгрузки и загрузки

Как показывает практика, частичное исправление кода (например, только в правилах выгрузки ПКС) не решит проблему, если аналогичный обработчик прописан на этапе загрузки в ПКО. Нам необходимо скорректировать оба места.

Проанализируем пример исправления кода в событии «При выгрузке» для ПКС (Правила конвертации свойств) свойства СтавкаНДС табличной части документа:


// Старый некорректный код:
// Если Не ЗначениеЗаполнено(Источник.СтавкаНДС) Тогда
//     Значение = "НДС18";
// КонецЕсли;

// Новый корректный код (учитываем ставку 20%):
Если Не ЗначениеЗаполнено(Источник.СтавкаНДС) Тогда
    // Задаем новую ставку по умолчанию
    Значение = Перечисления.СтавкиНДС.НДС20; 
КонецЕсли;

Теперь переместимся в обработчик события «После загрузки» для ПКО (Правила конвертации объектов) соответствующего банковского документа. Здесь система может переопределять загруженные данные:


// Исправление логики после загрузки в БП
Для Каждого СтрокаТаблицы Из Объект.РасшифровкаПлатежа Цикл
    Если СтрокаТаблицы.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
        СтрокаТаблицы.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
        // Не забываем пересчитать сумму НДС, если это необходимо
        СтрокаТаблицы.СуммаНДС = Округлить(СтрокаТаблицы.СуммаВзаиморасчетов * 20 / 120, 2);
    КонецЕсли;
КонецЦикла;

После внесения изменений в оба обработчика сохраните правила, загрузите их обратно в узел синхронизации данных и проведите тестовый обмен.

---

Альтернативное решение: как дать БП 3.0 определять ставку автоматически

Постоянно переписывать жестко заданные ставки в коде правил конвертации при каждом изменении законодательства — не самый эффективный путь. Более изящное решение заключается в том, чтобы вообще очищать значение ставки при выгрузке, если оно не задано в источнике явным образом.

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

В правилах обмена в ПКС СтавкаНДС для банковских документов мы можем прописать следующий лаконичный код:


// Если ставка в УТ не определена, не передаем её вообще,
// позволяя БП определить ставку автоматически на основании даты документа.
Если Не ЗначениеЗаполнено(Источник.СтавкаНДС) Тогда
    Отказ = Истина; 
КонецЕсли;

---

Скрытые источники старой ставки в базах данных

Если вы полностью очистили и переписали правила обмена, но ставка 18% всё равно проскакивает в новых документах, проверьте следующие системные настройки в обеих базах:

Для быстрого исправления данных в карточках номенклатуры и договоров воспользуйтесь стандартным инструментом:

Перейдите в НСИ и администрирование -> Сервис -> Групповое изменение реквизитов. Выберите объект "Номенклатура" или "Договоры контрагентов", установите отбор по старой ставке и замените её на актуальные 20%.

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

← На главную