Клиент настроил кассу, но чеки не отправляются. В очереди 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-ФЗ и работу кассы с первого чека.
Получите консультацию по вашему проекту уже сегодня.







