Автоматизация региональных налогов в 1С-Битрикс: настройка и оптимизация

Представьте: ваш товар с НДС 20% попадает в корзину покупателя из Казахстана, где ставка 12%. Если налоги считаются по единой российской ставке, вы теряете конкурентоспособность или платите лишнее. Это частая боль при выходе на международные рынки. Мы решаем такие задачи с помощью штатных механизмов
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Автоматизация региональных налогов в 1С-Битрикс: настройка и оптимизация
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1460
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1019
  • Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    764
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    882
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    809
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1165

Представьте: ваш товар с НДС 20% попадает в корзину покупателя из Казахстана, где ставка 12%. Если налоги считаются по единой российской ставке, вы теряете конкурентоспособность или платите лишнее. Это частая боль при выходе на международные рынки. Мы решаем такие задачи с помощью штатных механизмов Битрикс без костылей. За 9 лет настроили налоги для 50+ интернет-магазинов, и в 80% случаев проблема кроется в несогласованности флагов VAT_INCLUDED и IS_IN_PRICE.

Проблемы, которые решаем

Типичная ситуация: магазин на Битрикс выходит на экспорт, но налоги продолжают считаться по единой ставке. Или товары с НДС 0% для Казахстана попадают в корзину с российским НДС 20%. Корень проблем — неправильная настройка налоговых групп и отсутствие привязки к региону покупателя. Аудит выявляет до 15% товаров с неправильными настройками. Мы это чиним.

Как устроены налоговые группы в Битрикс

Битрикс реализует региональные ставки через механизм групп налогоплательщиков (tax groups). Таблица b_sale_tax хранит налоговые группы, b_sale_tax_rate — ставки внутри групп с привязкой к региону. Каждая ставка может быть привязана к стране, региону или городу. Подробнее — Документация Битрикс по налоговым ставкам.

Структура b_sale_tax_rate: TAX_ID (ссылка на группу), COUNTRY_ID, REGION, CITY, RATE, IS_PERCENT (Y/N), IS_IN_PRICE (Y/N — аналог VAT_INCLUDED), ACTIVE.

Пример создания группы с региональными ставками
// Создать группу $taxResult = \Bitrix\Sale\Tax::add([ 'NAME' => 'НДС', 'ACTIVE' => 'Y', 'LID' => 's1', ]); $taxId = $taxResult->getId(); // Ставка для Беларуси \Bitrix\Sale\TaxRate::add([ 'TAX_ID' => $taxId, 'COUNTRY_ID' => 'BY', 'RATE' => 20, 'IS_PERCENT' => 'Y', 'IS_IN_PRICE' => 'Y', 'ACTIVE' => 'Y', ]); // Ставка для России \Bitrix\Sale\TaxRate::add([ 'TAX_ID' => $taxId, 'COUNTRY_ID' => 'RU', 'RATE' => 20, 'IS_PERCENT' => 'Y', 'IS_IN_PRICE' => 'Y', 'ACTIVE' => 'Y', ]); 

Как налоги привязываются к заказу?

Определение применяемой ставки происходит в момент расчёта корзины. Битрикс читает адрес покупателя из свойств заказа (b_sale_order_props_value) — ищет свойство с типом LOCATION или TEXT с кодом страны/региона. Привязка налоговой группы к магазину настраивается в /bitrix/admin/sale_tax.php. Каждая группа может быть активна для конкретного сайта (LID). При расчёте корзины модуль sale вызывает \Bitrix\Sale\Tax::getList() с фильтром по LID и применяет первую подходящую ставку по стране/региону из адреса.

Почему важно согласовать VAT_INCLUDED и IS_IN_PRICE?

Если в каталоге цены с НДС (VAT_INCLUDED = Y), а региональная ставка ниже (например, 0% для экспорта), корзина должна пересчитать цены. Битрикс это делает автоматически через механизм налогов модуля sale, но только если IS_IN_PRICE = Y в b_sale_tax_rate и VAT_INCLUDED = Y в b_catalog_product согласованы.

Расхождение этих полей — главный источник неверного НДС при региональных ставках. Проверочный запрос для поиска несогласованных товаров:

SELECT cp.IBLOCK_ELEMENT_ID, cp.VAT_INCLUDED, cv.RATE FROM b_catalog_product cp LEFT JOIN b_catalog_vat cv ON cp.VAT_ID = cv.ID WHERE cp.VAT_ID IS NOT NULL AND cp.VAT_INCLUDED != 'Y'; 

Все найденные позиции нужно привести к единому правилу перед настройкой региональных ставок. Экономия от правильной настройки составляет от $100–500 в месяц.

Тип товара VAT_INCLUDED IS_IN_PRICE ставки Результат
С НДС Y Y Цена с НДС, ставка применяется
С НДС Y N НДС начисляется сверху — двойной налог
Без НДС N Y НДС не вычитается — цена без налога

Как автоматически определить регион покупателя?

Проблема: покупатель не всегда заполняет адрес до расчёта корзины. Для автоматического определения региона по IP используем модуль seo — класс \Bitrix\Seo\Ip2Location. Он опрашивает сервис геолокации и возвращает страну/регион. Обработчик подставляет код страны в свойство заказа, и налоги рассчитываются верно. Автоматическое определение в 5 раз быстрее ручного выбора из списка и исключает ошибки.

AddEventHandler('sale', 'OnSaleBasketBeforeSaved', function($basket) { $order = $basket->getOrder(); if (!$order) return; $ip = $_SERVER['REMOTE_ADDR']; $location = \Bitrix\Seo\Ip2Location::getLocationByIp($ip); if ($location && $location['COUNTRY_CODE']) { $propertyCollection = $order->getPropertyCollection(); $prop = $propertyCollection->getItemByOrderPropertyCode('COUNTRY'); if ($prop) { $prop->setValue($location['COUNTRY_CODE']); } } }); 

Типичные ошибки при настройке региональных налогов

Ошибка Причина Решение
Налог не пересчитывается при смене региона Ставка не привязана к региону в b_sale_tax_rate Добавить записи с REGION или CITY
Двойной НДС в корзине VAT_INCLUDED товара и IS_IN_PRICE ставки не совпадают Синхронизировать флаги через SQL-запрос
0% НДС для экспорта не применяется Не создана отдельная налоговая группа для экспорта Создать группу с RATE=0 и привязать к стране

Как мы это делаем: реальный кейс из нашей практики

У нашего клиента, магазина электроники, была задача: продажи в России и Казахстане. В Казахстане НДС 12% (льготная ставка), но корзина считала 20%. После аудита выяснили: налоговая группа одна, ставка привязана только к России. Добавили ставку для Казахстана с RATE=12 и привязали к COUNTRY_ID='KZ'. Дополнительно настроили автоматическое определение региона через IP. Результат: налоги рассчитываются корректно для каждого покупателя, экономия на переплате составила до $140–200 в месяц для клиента.

Процесс работы

  1. Аналитика — разбираем текущие налоговые настройки и торговые сценарии.
  2. Проектирование — схема налоговых групп и ставок под вашу географию.
  3. Реализация — создание групп, настройка автоматического определения региона, интеграция с 1С (если нужен обмен через CommerceML).
  4. Тестирование — проверка расчётов для каждого региона в тестовом окружении.
  5. Деплой — применение изменений на боевом сайте, обучение персонала.

Что входит в услугу

  • Аудит текущей налоговой конфигурации
  • Создание до 10 налоговых групп и ставок
  • Настройка автоматического определения региона по IP
  • Интеграция с 1С УТ/ЕРП через CommerceML
  • Документация по изменениям
  • Бесплатная поддержка 1 месяц после сдачи

Оценка стоимости и сроков

Стоимость рассчитывается индивидуально в зависимости от количества стран, ставок и сложности интеграции. Ориентировочные сроки — от 2 до 7 рабочих дней. Если вы хотите избавиться от ошибок в расчёте НДС — свяжитесь с нами. Мы проведём аудит и предложим оптимальное решение. Получите консультацию бесплатно.