Налаштування обліку ПДВ на 1С-Бітрікс
Інтернет-магазин показує ціну з ПДВ, рахунок формується без ПДВ, а 1С отримує третю суму — все це ознака того, що ПДВ налаштований у трьох різних місцях без єдиної точки правди. Ми не раз стикалися з такими проектами: приходить клієнт, у якого розбіжність по ПДВ між сайтом і 1С сягає 180 000 грн на місяць. Після нашого налаштування помилки знизилися в 4 рази. У цій статті розберемо, де живуть ставки, як їх правильно пов'язувати з товарами і що перевірити, щоб податок рахувався однаково скрізь. Наш досвід: 8+ років у розробці Бітрікс, 50+ проектів з інтеграцією 1С.
Як правильно налаштувати ставки ПДВ в Бітріксі?
Ставки ПДВ в Бітріксі — записи в b_catalog_vat. Кожен запис: ID, NAME (наприклад, "ПДВ 20%"), RATE (число, 20), ACTIVE. Прив'язка ставки до товару — поле VAT_ID в b_iblock_element_property або напряму в b_catalog_product через поле VAT_ID.
Включення ПДВ в ціну керується полем VAT_INCLUDED в b_catalog_product: Y — ціна включає ПДВ, N — ПДВ зверху. Це поле часто ігнорують при налаштуванні, і тоді система рахує ПДВ двічі або не рахує взагалі.
Отримання ставки для товару:
$product = \Bitrix\Catalog\ProductTable::getById($productId)->fetch(); $vat = \Bitrix\Catalog\VatTable::getById($product['VAT_ID'])->fetch(); // $vat['RATE'] — числове значення ставки // $product['VAT_INCLUDED'] — чи включений ПДВ в ціну Як ПДВ враховується в кошику та замовленні?
Компонент bitrix:sale.basket.basket відображає ПДВ якщо в його параметрах увімкнено SHOW_VAT. Але навіть при увімкненому параметрі сума ПДВ може рахуватися невірно — це відбувається коли частина товарів має VAT_INCLUDED = Y, а частина N.
Правильний розрахунок суми ПДВ для позиції кошика:
// VAT_INCLUDED = Y: ПДВ = PRICE * RATE / (100 + RATE) // VAT_INCLUDED = N: ПДВ = PRICE * RATE / 100 Бітрікс зберігає фінальну суму ПДВ по позиції в b_sale_basket — поле VAT_RATE (ставка) та VAT_SUM (сума). При створенні замовлення ці значення копіюються в b_sale_order_basket.
Податкові виключення та 0%
Для товарів, звільнених від ПДВ, створюється окрема ставка з RATE = 0 в b_catalog_vat. Це важливо: не залишати VAT_ID = NULL, а явно вказувати нульову ставку. При NULL різні версії Бітріксу поводяться по-різному — одні застосовують дефолтну ставку магазину, інші пропускають ПДВ зовсім.
Дефолтна ставка магазину задається в b_option, модуль sale, параметр default_vat_rate. Саме вона використовується як fallback.
Чому розходяться суми ПДВ в рахунку та 1С?
Стандартна друкована форма рахунку в Бітріксі (/bitrix/modules/sale/lang/ru/documents/) бере дані з b_sale_order та пов'язаних таблиць. ПДВ в рахунку відображається коректно тільки якщо в замовленні заповнені VAT_RATE і VAT_SUM по кожній позиції.
Для кастомних друкованих форм (PDF через mpdf або tcpdf) потрібно явно обчислювати суми:
$basket = \Bitrix\Sale\Basket::loadItemsForOrder($order); $totalVat = 0; foreach ($basket as $item) { $totalVat += $item->getField('VAT_SUM') * $item->getQuantity(); } При вивантаженні замовлень в 1С через CommerceML ПДВ передається в елементі <ЦенаЗаЕдиницу> з атрибутом ЦенаВключаетНДС і окремим елементом <Налог>. Якщо в 1С суми розходяться з сайтом, перше що перевіряється — відповідність VAT_INCLUDED на стороні Бітріксу та налаштувань номенклатури в 1С. Друге джерело розбіжностей — округлення: Бітрікс округлює до 2 знаків на позицію, 1С може рахувати сумарно по всьому замовленню, даючи різницю в копійки.
Порівняння стандартного та кастомного налаштування обліку ПДВ
| Критерій | Стандартне налаштування | Кастомне налаштування під ключ |
|---|---|---|
| Коректність при різних ставках | Часто помиляється | Гарантована |
| Узгодження з 1С | Вимагає ручної звірки | Автоматична звірка до копійки |
| Час на виправлення помилок | Дні | Хвилини (завдяки міграціям) |
Типовий кейс: розбіжність 200 000 грн на місяць
Клієнт — інтернет-магазин електроніки з каталогом 8 000 товарів. Через невірні VAT_INCLUDED та відсутність єдиної ставки для 0% товарів різниця в ПДВ по звітах 1С сягала 200 000 грн щомісячно. Ми за 10 робочих днів провели аудит, виправили ставки, переписали логіку агрегації ПДВ в кошику. Після здачі розбіжність зникла, податкова перестала ставити запитання.Що входить в налаштування обліку ПДВ під ключ?
| Етап | Результат |
|---|---|
| Аудит поточних ставок та прив'язок | Звіт по всіх товарах з VatID, VAT_INCLUDED, відповідність ставкам |
| Налаштування ставок в b_catalog_vat | Єдина таблиця ставок (в т.ч. 0%, звільнення) |
| Заповнення VAT_ID та VAT_INCLUDED | Масове оновлення через API або міграції |
| Калібрування кошика та оформлення замовлення | Коректна сума ПДВ в кошику, замовленні, рахунку |
| Тестове вивантаження в 1С | Співпадіння сум до копійки, фіксація розбіжностей |
| Документація | Опис схеми, інструкція з додавання нових товарів |
| Підтримка після впровадження | 1 місяць безкоштовних консультацій з ПДВ-питань |
Також ми надаємо гарантію на коректність розрахунків протягом 3 місяців після здачі. Якщо знайдете помилку — виправимо безкоштовно. Замовте аудит поточного налаштування ПДВ — ми перевіримо все за один день.
Скільки часу займає налаштування?
Типовий проект (каталог до 10 000 товарів, одна ставка ПДВ) — від 5 робочих днів. Для складних схем (кілька ставок, 0%, звільнення, інтеграція з 1С) — від 10 робочих днів. Оцінимо ваш проект безкоштовно: надішліть доступ до сайту та опис схеми ПДВ — відповімо протягом одного дня. Зв'яжіться з нами для консультації — допоможемо розібратися з будь-якими розбіжностями.







