Почему в документе «Вывод из оборота ИС МП» ставка НДС всегда устанавливается как 20%?

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

При работе с интеграцией с государственной системой «Честный ЗНАК» часто возникают ситуации, когда типовые механизмы заполнения данных ведут себя неочевидно. Одной из распространенных проблем является автоматическое проставление ставки НДС 20% в табличной части Товары документа Вывод из оборота ИС МП, даже если в документе-основании ставка НДС была «Без НДС» или «0%». Рассмотрим, как разобраться в причинах этого поведения и как найти решение.

Анализ причин некорректного заполнения

Первое, что необходимо осознать: типовые конфигурации, такие как 1С:Бухгалтерия, содержат жестко прописанные алгоритмы заполнения данных для интеграционных документов. Когда вы вызываете метод Заполнить(), система не всегда просто копирует значения из реквизитов основания. Часто она обращается к специальным модулям, которые «диктуют» правила заполнения в соответствии с требованиями законодательства и форматами обмена ИС МП.

Основные причины возникновения проблемы:

  1. Приоритет логики модуля заполнения: Даже если вы используете РеквизитФормыВЗначение для подготовки объекта, последующий вызов процедур заполнения перекрывает ваши данные.
  2. Зависимость от вида операции: Для операций списания, реализации или вывода по иным причинам могут применяться разные правила определения налоговой ставки.
  3. Регистры сведений: В последних релизах типовых конфигураций ставка НДС может определяться не только данными табличной части, но и актуальными записями в регистрах сведений, которые учитывают период и специфику номенклатуры.

Шаг 1: Использование отладчика

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

Особое внимание обратите на работу метода:


ТекущийОбъект = РеквизитФормыВЗначение("Объект");
ТекущийОбъект.Заполнить(Объект.ДокументОснование);
// Установите точку останова здесь и посмотрите, 
// какие данные попали в объект после заполнения
ЗначениеВРеквизитФормы(ТекущийОбъект, "Объект");

Шаг 2: Анализ общего модуля «Интеграция ИСМПБП»

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

Разберем, что именно нужно сделать:

  1. Откройте конфигуратор и найдите общий модуль Интеграция ИСМПБП.
  2. Найдите указанную функцию или аналогичные процедуры, отвечающие за перенос данных из табличной части Товары.
  3. Проанализируйте запрос или код, который вычисляет СтавкаНДС для каждой строки. Вы увидите, что разработчики могли добавить жесткое условие для конкретных типов документов-оснований.

Шаг 3: Как правильно внести изменения

Помните, что прямая модификация типового кода — это риск при обновлении конфигурации. Вместо редактирования кода напрямую:

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

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


// После вызова стандартного заполнения пройдитесь по строкам:
Для Каждого СтрокаТовара Из Объект.Товары Цикл
    Если УсловиеДляВашегоСлучая Тогда
        СтрокаТовара.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
    КонецЕсли;
КонецЦикла;

Подведем итоги

Проблема автоматического проставления НДС в Выводе из оборота ИС МП кроется не в ошибке вашего кода, а в специфической логике типовой интеграции, которая стремится привести данные к формату, ожидаемому «Честным ЗНАКом». Решение задачи заключается в поиске «ответственного» модуля (в данном случае Интеграция ИСМПБП) и внесении корректировок в процедуру заполнения через механизмы расширения. Всегда проверяйте содержимое табличной части документа-основания и то, как оно интерпретируется в запросах системы интеграции — зачастую там уже скрыт ответ на вопрос о приоритете настроек.

← На главную