Налаштування онлайн-кассі на 1С-Bitrix
По 54-ФЗ кожен платіж в інтернет-магазині повинен супроводжуватися фіскальним чеком, відправленим покупцю. Магазин без кассі — штраф від 30 000 рублів за перше порушення, до 100% від суми розрахунків за повторне. Bitrix підтримує підключення онлайн-кассі через модуль sale з рядом касових операторів.
Підтримувані касові оператори
Bitrix має вбудовані обробники для:
-
АТОЛ Онлайн — модуль
salereports, обробникAtolOnline - ЮКасса (Яндекс.Касса) — вбудована в платіжний модуль
- Сбербанк — через платіжний модуль Сбербанка
- CloudPayments — сторонній модуль
- Эвотор — через Marketplace
Сторонні оператори підключаються через Marketplace або самостійну розробку обробника.
Установка та налаштування модуля АТОЛ
В адміністративній панелі: «Marketplace» → «Встановлені рішення» → перевірити наявність модуля salereports. Якщо немає — встановити з каталогу.
Після установки: «Магазин» → «Онлайн-касси» → «Додати касу».
Параметри підключення АТОЛ:
- Логін та Пароль — облікові дані в АТОЛ-сервісі
- ІНН — ІНН організації
- Група касс — ідентифікатор групи в АТОЛ
-
URL —
https://online.atol.ru/possystem/v4/(боевой) абоhttps://testonline.atol.ru/possystem/v4/(тестовий)
Конфігурація в базі даних
Налаштування касі зберігаються в таблицях b_sale_cashbox та b_sale_cashbox_handler:
-- Перегляд підключених касс
SELECT ID, NAME, ACTIVE, KPP, INN FROM b_sale_cashbox WHERE ACTIVE = 'Y';
-- Черга чеків
SELECT ID, STATUS, TYPE, ORDER_ID, PAYMENT_ID, DATE_CREATE
FROM b_sale_cashbox_check
WHERE STATUS = 'N' -- чекають відправки
ORDER BY DATE_CREATE DESC
LIMIT 20;
Статуси чека (STATUS): N — новий, P — обробляється, Y — відправлений, F — помилка.
Автоматична відправка чеків
Чеки формуються автоматично при певних подіях:
-
Прихід (тип
sell) — при оплаті замовлення (PAID = Y) -
Повернення прибутку (тип
sell_refund) — при скасуванні оплаченого замовлення - Повний розрахунок — при доставці (для двохстадійної оплати)
Налаштувати тригери формування чека: «Магазин» → «Онлайн-касси» → редагувати касу → вкладка «Налаштування чека».
Програмно створити чек:
use Bitrix\Sale\Cashbox;
$order = \Bitrix\Sale\Order::load($orderId);
$payment = $order->getPaymentCollection()->getInnerPayment();
// Створити чек прибутку
$check = Cashbox\CheckManager::createCheck(
Cashbox\Internals\Check\SellCheck::getType(),
$payment
);
if ($check) {
$result = Cashbox\CheckManager::send($check);
if (!$result->isSuccess()) {
// Логирати помилку
foreach ($result->getErrors() as $error) {
AddMessage2Log($error->getMessage(), 'sale');
}
}
}
Склад чека: номенклатура та ставки НДС
54-ФЗ вимагає передачі в чек складу замовлення — найменувань та кількості товарів із вказанням ставки НДС.
Налаштування ставок НДС у торговому каталозі: «Магазин» → «Ставки НДС» → додати ставки (20%, 10%, 0%, «Не облагається»). Потім у властивостях товарів вказати відповідну ставку.
Bitrix автоматично передає номенклатуру в чек. Якщо склад некоректний — перевірити заповненість полів b_catalog_vat:
SELECT BV.RATE, BP.NAME
FROM b_catalog_product BP
JOIN b_catalog_vat BV ON BP.VAT_ID = BV.ID
WHERE BP.ID IN (SELECT PRODUCT_ID FROM b_sale_basket WHERE ORDER_ID = 12345);
Агент відправки черги чеків
Чеки відправляються через агент Bitrix\Sale\Cashbox\CheckManager::send. Якщо агент не налаштований або не працює — чеки накопичуються в b_sale_cashbox_check зі статусом N.
Перевірити агент:
SELECT NAME, LAST_EXEC, NEXT_EXEC, ACTIVE
FROM b_agent
WHERE NAME LIKE '%Cashbox%';
Якщо агент не активний — активувати через адміністративну панель або SQL:
UPDATE b_agent SET ACTIVE = 'Y' WHERE NAME LIKE '%CheckManager%';
Тестування
Перед перемиканням на боевой режим — протестувати на тестовому середовищі АТОЛ. У налаштуваннях касі вказати тестовий URL. Зробити тестове замовлення, оплатити, переконатися що чек з'явився в особистому кабінеті АТОЛ із коректним складом. Особливу увагу: НДС, найменування товарів (мають бути зрозумілими, не «Товар 001»), ознака способу розрахунку («Повний розрахунок» для миттєвої оплати або «Предоплата 100%» для передоплати).







