Глобальная простановка НДС для всех товаров в 1с-Битрикс


Внимание. Перед изменением необходимо сделать резервную копию базы данных (для возможности восстановления), так как изменения носят массовый характер.

Для простановки НДС с указанным ID ставки (его можно посмотреть в разделе системы управления: Магазин -> Настройки -> Налоги -> Ставки НДС, в примере это “VAT_ID = 3”), необходимо выполнить следующий PHP-код (например, из раздела системы управления: Настройки -> Инструменты -> Командная PHP-строка.

Для простановки товарам, у которых НДС не установлен:

global $DB; 
$DB->Query("UPDATE b_catalog_product SET VAT_INCLUDED = 'Y', VAT_ID = 3 WHERE VAT_ID IS NULL"); 

Для простановки всем товарам (в т.ч. тем, у которых НДС уже стоит):

global $DB; 
$DB->Query("UPDATE b_catalog_product SET VAT_INCLUDED = 'Y', VAT_ID = 3"); 

Дополнительно. Если сайт интегрирован с системой 1С и товары загружаются из нее, то желательно также изменить свойство товара “CML2_TAXES”, которое могут использовать некоторые внешние системы и которое может из 1с также приходить заполнено неверным. Сделать это можно с помощью следующего PHP-кода:

$oldValue = 20; // старое значение ндс, которое нужно заменить
$newValue = 22; // новое значение ндс, которое нужно поставить взамен старого
$iblockId = 2; // ID информационного блока с каталогом

if (CModule::IncludeModule("iblock")) { 
  $res = CIBlockElement::GetList([], ['IBLOCK_ID' => $iblockId, 'PROPERTY_CML2_TAXES' => $oldValue], false, [], []); 
  while ($el = $res->GetNextElement()) { 
    $fields = $el->getFields(); 
    CIBlockElement::SetPropertyValues($fields['ID'], $iblockId, $newValue, 'CML2_TAXES'); 
  } 
} 

Проверялось на 1с-Битрикс: Управление сайтом 20.0.1650. (версия модуля интернет-магазин 20.0.687).