Настройка онлайн-кассы на 1С-Битрикс
По 54-ФЗ каждый платёж в интернет-магазине должен сопровождаться фискальным чеком, отправленным покупателю. Магазин без кассы — штраф от 30 000 рублей за первое нарушение, до 100% от суммы расчётов за повторное. Битрикс поддерживает подключение онлайн-кассы через модуль sale с рядом кассовых операторов.
Поддерживаемые кассовые операторы
Битрикс имеет встроенные обработчики для:
-
АТОЛ Онлайн — модуль
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%, «Не облагается»). Затем в свойствах товаров указать соответствующую ставку.
Битрикс автоматически передаёт номенклатуру в чек. Если состав некорректен — проверить заполненность полей 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%» для предоплаты).







