Клієнт налаштував касу, але чеки не надсилаються. У черзі b_sale_cashbox_check десятки записів зі статусом N. Агент CheckManager::send активний, але не спрацьовує — помилка в логах: «Time-out». Типова ситуація: неправильний URL тестової каси, заблокований акаунт оператора або неправильний склад чека з некоректною ставкою ПДВ. Розберемо, як уникнути цих проблем і налаштувати онлайн-касу на 1С-Бітрікс під 54-ФЗ без головного болю. Наш досвід — понад 30 проєктів, від простих інтернет-магазинів до складних маркетплейсів з тисячею позицій. Штрафи за порушення 54-ФЗ досягають $450–650ів вперше, а повторні — до 100% суми розрахунку. Ми вже заощадили клієнтам понад $9k–13kів на штрафах. Гарантуємо відповідність закону з першого чека. При цьому ключові вузли — налаштування агентів, коректна черга та правильні ставки ПДВ — часто викликають труднощі навіть у досвідчених розробників. Отримайте консультацію щодо вашого проекту.
Вибір оператора фіскалізації
Бітрікс має вбудовані обробники для:
- АТОЛ Онлайн — модуль
salereports, обробникAtolOnline - ЮКаса (Яндекс.Каса) — вбудований в платіжний модуль
- Сбербанк — через платіжний модуль Сбербанку
- CloudPayments — сторонній модуль
- Евотер — через Marketplace
Сторонні оператори підключаються через Marketplace або самостійну розробку обробника. Порівняння операторів:
| Оператор | Надійність | Швидкість надсилання | Складність налаштування |
|---|---|---|---|
| АТОЛ Онлайн | висока | до 5 секунд | середня |
| ЮКаса | висока | до 3 секунд | низька |
| Сбербанк | висока | до 7 секунд | висока |
АТОЛ Онлайн краще для магазинів з великим потоком замовлень: пропускна здатність вища у 2 рази в порівнянні зі Сбербанком. Однак ЮКаса простіша в налаштуванні — ідеально для стартапів.
Налаштування онлайн-каси: встановлення модуля та конфігурація
Встановлення модуля АТОЛ — налаштування онлайн каси
В адміністративній панелі: «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%, «Не обкладається»). Потім у властивостях товарів вказати відповідну ставку.
Бітрікс автоматично передає номенклатуру в чек. Якщо склад некоректний — перевірити заповненість полів 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); Чому агент надсилання чеків критичний?
Чеки надсилаються через агент 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%'; Згідно з документацією 1С-Бітрікс, понад 95% проблем вирішуються перевіркою налаштувань агента та облікових даних каси.
Що робити, якщо чеки не надсилаються?
Ми підготували чек-лист:
Чек-лист перевірки черги чеків
- Перевірте активність агента (
b_agent). - Переконайтеся, що URL каси вказано вірно (тестовий/бойовий).
- Перевірте склад чека: ПДВ, найменування товарів, ознака способу розрахунку.
- Протестуйте надсилання на тестовому середовищі АТОЛ.
- Перегляньте логи:
/bitrix/modules/sale/log/.
Типові помилки та їх вирішення
| Помилка | Причина | Вирішення |
|---|---|---|
| Time-out при надсиланні | Неправильний URL або заблокований акаунт | Перевірити URL, перестворити ключі API |
| Помилка 400 | Неправильний склад чека (ПДВ або найменування) | Перевірити ставки ПДВ у товарах, заповнити найменування |
| Неактивний агент | Cron не виконується або агент відключений | Активувати агент через адмінку або SQL |
Як протестувати онлайн-касу перед запуском?
Перед переключенням на бойовий режим — протестувати на тестовому середовищі АТОЛ. У налаштуваннях каси вказати тестовий URL. Зробити тестове замовлення, оплатити, переконатися що чек з'явився в особистому кабінеті АТОЛ з коректним складом. Особливу увагу: ПДВ, найменування товарів (мають бути зрозумілими, не «Товар 001»), ознака способу розрахунку («Повний розрахунок» для негайної оплати або «Передоплата 100%» для передоплати).
Додатково перевірте інтеграцію з платіжними системами: REST API дозволяють гнучко налаштовувати сценарії. Переконайтеся, що подія OnSalePayOrder коректно обробляється.
Процес роботи та терміни
- Аналіз вимог та підбір оператора (1 день)
- Встановлення та налаштування модуля каси (1 день)
- Конфігурація черги чеків та агента (0.5 дня)
- Налаштування номенклатури та ПДВ (0.5 дня)
- Інтеграція з платіжними системами (1 день)
- Тестування на тестовому середовищі (1 день)
- Документація з експлуатації (0.5 дня)
- Підтримка після запуску (7 днів)
Орієнтовні терміни: від 2 до 5 робочих днів залежно від складності. Вартість розраховується індивідуально після оцінки проекту. Замовте налаштування онлайн-каси під ключ — зв'яжіться з нами. Ми гарантуємо відповідність 54-ФЗ та роботу каси з першого чека.
Отримайте консультацію щодо вашого проекту вже сьогодні.







