Когда заказ оплачен, а чек не приходит покупателю и не появляется в кабинете ОФД, проблема почти всегда локализуется в трёх точках: очередь чеков в Битриксе, обмен с ОФД и настройки самой ККТ. Диагностику нужно вести от заказа к кассе, а не наоборот — так вы быстро отсекаете половину гипотез.
С чего начинать: очередь чеков в админке
Первое, что нужно открыть, — раздел Магазин → Кассы → Чеки (/bitrix/admin/sale_check.php). Здесь виден каждый чек, его статус и привязка к заказу. Статус — главный индикатор: он сразу показывает, дошёл ли чек до кассы вообще.
- Не пробит — чек создан в Битриксе, но ещё не отправлен на ККТ. Ждёт агента отправки.
- Ожидает / В обработке — уходит на кассу или ждёт ответа от ОФД.
- Пробит — фискализация прошла, есть фискальный признак (ФП/ФПД) и номер ФД.
- Ошибка — касса вернула отказ; в детальном виде чека будет текст ошибки.
Чек «завис» в статусе ожидания: cron и агенты
Отправка чеков в Битриксе идёт не мгновенно, а через агенты и очередь. Модуль sale формирует чек и ставит его в очередь, а фактическую отправку выполняет фоновый обработчик. Если чеки массово стоят в статусе «Не пробит» или «Ожидает» — почти всегда не отрабатывает cron.
- Проверьте Настройки → Настройки продукта → Агенты (
/bitrix/admin/agent_list.php): агенты кассы должны выполняться и иметь свежую дату следующего запуска. - Убедитесь, что в
/bitrix/php_interface/dbconn.phpвключён режим работы агентов на cron:define("BX_CRONTAB", true);и что сам cron реально дергает/bitrix/modules/main/tools/cron_events.php. - Посмотрите системный crontab на сервере — задание должно запускаться раз в минуту.
Ошибки обмена с ОФД и ККТ
Если чек дошёл до статуса «Ошибка», откройте его карточку — там будет ответ облачной кассы (Атол.Онлайн, Orange Data, ЮKassa, Робочеки и т. д.). Тексты типовые и легко группируются.
| Симптом | Вероятная причина |
|---|---|
| «Смена превысила 24 часа» / смена не открыта | Не закрыта/не открыта смена на стороне облачной кассы; чеки не принимаются до её переоткрытия. |
| Ошибка авторизации, 401/403 | Неверный логин, пароль или код группы касс в настройках обработчика. |
| ФН заполнен / память ФН исчерпана | Закончился ресурс фискального накопителя — нужна замена ФН. |
| Некорректная ставка НДС / отсутствует признак предмета расчёта | Ошибка в данных позиции: не задан НДС, признак способа или предмета расчёта. |
| Таймаут, нет ответа | Недоступен API кассы или блокировка исходящих соединений с сервера. |
Проверить исходящую связь с API кассы можно с сервера напрямую, например curl -I https://online.atol.ru. Если запрос не проходит — дело в файрволе или DNS хостинга, а не в Битриксе.
Чек не создаётся: настройки кассы и статусов
Когда чека нет даже в очереди, причина в том, что Битрикс не считает нужным его пробивать. Проверяем настройку кассы в Магазин → Кассы → Список касс (/bitrix/admin/sale_cashbox.php).
- Касса активна и привязана к нужной платёжной системе. Для предоплаты чек инициирует именно платёжная система в момент подтверждения оплаты.
- В настройках кассы задано, какие чеки печатать — приход при оплате и/или расход/возврат. Если печать чека прихода отключена, чек не появится.
- Для сценария «оплата на сайте» оплата должна фактически проставляться (Заказ оплачен = Да). Событие
OnSaleOrderPaid— триггер создания чека прихода. - Проверьте, что у товаров и доставки заданы признак предмета расчёта и ставка НДС — без них многие обработчики не формируют чек.
Права, логи и повторная отправка
Если настройки верны, а чеки всё равно не уходят, смотрим уровень окружения. Полезные точки диагностики:
- Журнал событий (
/bitrix/admin/event_log.php) — ошибки модулейsaleи обработчиков кассы фиксируются здесь. - Логи веб-сервера и PHP — таймауты, нехватка памяти, фатальные ошибки при отправке чека.
- Права на запись во временные каталоги и
/upload/— обработчику нужно сохранять ответы кассы. - Актуальность модуля
saleи обновлений: старые версии обработчиков теряют совместимость с API ОФД.
После устранения причины чек можно отправить повторно из его карточки — Битрикс поставит его в очередь заново, дублей при этом не возникает, так как у чека сохраняется привязка к заказу и расчёту.
Версия ФФД и состав чека
Отдельный класс проблем — несоответствие формата фискальных документов (ФФД). С переходом на ФФД 1.2 касса требует расширенный набор реквизитов, и если Битрикс отдаёт данные в формате 1.05, чек отклоняется.
- Сверьте версию ФФД в кабинете ОФД и в настройках обработчика на сайте — они должны совпадать.
- Для маркированных товаров (487-ФЗ) в чеке обязателен код маркировки и корректный признак предмета расчёта; без него на ФФД 1.2 будет отказ.
- Проверьте состав позиций: наименование, количество, цена, НДС, признак способа расчёта (предоплата/полный расчёт) — пустые обязательные поля дают ошибку валидации.
Итог
Диагностику сбоя чеков стоит вести по слоям: сначала статус в очереди чеков, затем работа cron и агентов, потом текст ошибки от ОФД, и только в конце — версия ФФД и состав позиций. Такой порядок отсекает лишние гипотезы и быстро выводит на реальную причину — от незакрытой смены до отключённого признака предмета расчёта.
Если чеки падают массово, а причина неочевидна, мы помогаем разобраться: разбираем логи, проверяем настройки кассы и обмена с ОФД, при необходимости дорабатываем обработчик и настраиваем корректную работу очереди на cron. Это часть поддержки магазина и интеграционных работ — чтобы фискализация работала предсказуемо, а не «когда-нибудь».
Частые вопросы
Чек висит в статусе «Ожидает» несколько часов — что делать?
Почти всегда это неработающий cron. Проверьте выполнение агентов и очереди, задание в crontab и константу BX_CRONTAB в dbconn.php. После восстановления cron чеки уйдут автоматически.
В списке чеков вообще нет чека по оплаченному заказу. Почему?
Битрикс не инициировал его создание. Проверьте, что заказ реально помечен оплаченным, касса активна и в её настройках включена печать чека прихода для нужной платёжной системы.
Касса вернула ошибку про смену — как исправить?
Смена на облачной кассе не открыта или превысила 24 часа. Закройте и переоткройте смену в кабинете ОФД; после этого повторно отправьте зависшие чеки из их карточек.
Что означает ошибка авторизации при отправке чека?
Неверные логин, пароль или код группы касс в настройках обработчика. Сверьте учётные данные с кабинетом кассы и проверьте, что доступ не заблокирован со стороны провайдера.
Часть чеков проходит, а часть — нет. В чём дело?
Чаще всего расходятся версии ФФД или настройки у разных платёжных систем и касс. Сверьте формат фискальных документов в кабинете ОФД и в обработчиках на сайте.
Можно ли повторно отправить чек, не создавая дубль?
Да. В карточке чека есть повторная отправка: Битрикс ставит тот же чек в очередь заново, сохраняя привязку к заказу и расчёту, поэтому дубликат не возникает.
Как понять, что проблема в связи с API кассы, а не в Битриксе?
Проверьте исходящее соединение с сервера напрямую, например через curl к домену кассы. Если запрос не проходит из-за файрвола или DNS хостинга — причина в окружении, а не в настройках магазина.
Почему чек с маркированным товаром отклоняется?
На ФФД 1.2 для маркировки обязателен корректный код маркировки и признак предмета расчёта. Если эти данные не передаются, касса не примет чек до исправления состава позиции.
Поможем с настройкой и поддержкой 1С-Битрикс: Управление сайтом
Поможем с настройкой, доработкой и поддержкой 1С-Битрикс: Управление сайтом.