Как изменить ставку НДС при подборе товара или перед переносом в документ?

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

В процессе работы в программах 1С (таких как 1С:Управление торговлей, ERP или Комплексная автоматизация) пользователи часто сталкиваются с ситуацией, когда один и тот же товар от разных поставщиков приходит с разными ставками НДС. Например, один поставщик работает с НДС 20%, а другой находится на упрощенной системе налогообложения и отгружает товар «Без НДС». По умолчанию в 1С ставка НДС жестко привязана к карточке номенклатуры, и в окне подбора её изменить нельзя. Рассмотрим подробнее, какими способами можно решить эту задачу, не прибегая к рискованным изменениям конфигурации.

Метод 1. Использование стандартного функционала «Изменить выделенные строки»

Проанализируем самый простой и быстрый способ, который не требует программирования. Часто пользователи пытаются решить проблему именно в окне подбора, но платформа 1С предлагает более эффективный механизм уже после того, как товар перенесен в документ.

Разберем этот процесс по шагам:

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

Этот метод является наиболее безопасным, так как использует типовой механизм пересчета документа ОбработкаТабличнойЧастиТовары.

Метод 2. Использование характеристик номенклатуры

Выясним причину, почему иногда все же требуется видеть разные ставки именно в подборе. Если для компании критично разделять остатки товара в разрезе ставок НДС (например, для корректного формирования книги покупок и продаж при комиссионной торговле), рассмотрим вариант с характеристиками.

Для реализации этого метода выполним следующие настройки:

  1. В карточке номенклатуры или в настройках вида номенклатуры включим использование характеристик.
  2. Создадим характеристики с названиями, соответствующими ставкам, например: «НДС 20%» и «Без НДС».
  3. При подборе товара система предложит выбрать конкретную характеристику.

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

Метод 3. Внешние обработки заполнения табличных частей

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

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


&НаСервере
Процедура ИзменитьНДСНаСервере(ЗначениеСтавки, АдресВХранилище)
    ОбъектДок = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.ПриобретениеТоваровУслуг"));
    Для Каждого СтрокаТЧ Из ОбъектДок.Товары Цикл
        СтрокаТЧ.СтавкаНДС = ЗначениеСтавки;
        // Вызываем типовой метод пересчета сумм
        ОбработкаТабличнойЧастиТоварыКлиентСервер.ПересчитатьСуммуНДС(СтрокаТЧ, ОбъектДок.ЦенаВключаетНДС);
    КонецЦикла;
    ЗначениеВДанныеФормы(ОбъектДок, Объект);
КонецПроцедуры

Этот способ позволяет пользователю одним нажатием кнопки привести все строки документа к нужному виду, при этом сама конфигурация 1С:Управление торговлей остается полностью типовой.

Метод 4. Применение расширений конфигурации

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

Рассмотрим, как это работает:

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

Использование расширений позволяет реализовать логику, описанную в сообщениях форума, когда пользователю удобно менять реквизиты «на лету», не закрывая окно выбора.

Почему не стоит заводить дубли номенклатуры?

Проанализируем предложение из темы форума о создании отдельных карточек номенклатуры для каждой ставки НДС. Мы настоятельно не рекомендуем этот путь по следующим причинам:

Заключение и рекомендации

Подводя итог, можно сказать, что наиболее сбалансированным решением является сочетание Метода 1 (групповое изменение в документе) и Метода 4 (использование внешних обработок). Это обеспечивает точность учета без лишних трудозатрат на программирование и поддержку измененной конфигурации.

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

← На главную