В процессе работы с торговым оборудованием в программе 1С:Бухгалтерия 3.0 пользователи часто сталкиваются со сложными сценариями расчетов. Одним из таких сценариев является частичная оплата задолженности покупателем, когда одна часть суммы закрывается наличными или картой, а вторая — остается в качестве последующей оплаты (кредита). При этом в самой программе расчет выглядит абсолютно корректно, но при печати бумажного чека ККТ и отправке данных в ОФД происходит критический сбой: суммы распределяются хаотично, а разница уходит в строку «Сдача».
В этой статье мы подробно разберем, почему возникает эта ошибка на кассах АТОЛ, проанализируем внутренний механизм взаимодействия программы и кассового драйвера, а также предоставим пошаговую инструкцию по решению этой проблемы.
Рассмотрим типичную ситуацию. Покупатель имеет задолженность по договору в размере 60 000 рублей. Он приходит в кассу предприятия и вносит наличными только часть суммы — 55 000 рублей. Оставшиеся 5 000 рублей оформляются как последующая оплата (в кредит).
Бухгалтер оформляет в 1С:Бухгалтерии документ Поступление наличных. В табличной части документа разбивка платежа настроена верно: погашение задолженности происходит автоматически. Перед пробитием фискального чека форма предварительного просмотра 1С показывает правильные данные:
Однако напечатанный физический чек и данные, отправленные оператору фискальных данных (ОФД), выглядят совершенно иначе:
Выясним причину такого поведения системы. Проблема кроется на стыке взаимодействия интеграционной библиотеки 1С, драйвера торгового оборудования ККТ и версии формата фискальных данных (ФФД).
Для того чтобы понять природу этой ошибки, проанализируем техническую сторону взаимодействия 1С и кассового аппарата:
Пример XML-пакета, который 1С пытается передать в кассу для формирования комбинированного платежа:
<Receipt>
<Positions>
<FiscalString Name="Оплата за товар" Quantity="1" Price="60000.00" Amount="60000.00" Department="1" Tax="20" />
</Positions>
<Payments>
<Payment Type="Cash" Sum="55000.00" />
<Payment Type="PostPayment" Sum="5000.00" />
</Payments>
</Receipt>
В случае работы через драйвер 9.х параметр Type="PostPayment" (тип оплаты "Кредит") просто игнорируется, что и приводит к ошибке округления и формированию ложной сдачи.
Для полного устранения этой проблемы необходимо обновить интеграционную компоненту и перейти на использование актуального драйвера десятого поколения — DTO 10.x. Рассмотрим этот процесс по шагам.
Важно: любые манипуляции с драйверами ККТ и подключением оборудования в 1С необходимо производить строго при закрытой кассовой смене! В противном случае существует риск зависания открытых фискальных документов в буфере ККТ, что потребует технологического обнуления кассы.
Убедитесь, что в программе 1С выполнен отчет о закрытии смены, а на кассовом аппарате распечатан Z-отчет.
Перед установкой новой версии необходимо полностью очистить систему от старых библиотек во избежание конфликтов драйверов:
C:\Program Files (x86)\1cv8\...) или в каталог временных файлов пользователя (%appdata%) и убедитесь, что старые интеграционные библиотеки, такие как FPrnM1C.dll или FPrnM1C82.dll, удалены.Теперь необходимо переподключить кассовый аппарат в самой информационной базе 1С:Бухгалтерия:
AtolSmKKT.dll. Согласитесь на установку.Драйвер АТОЛ десятого поколения использует строгое сопоставление (маппинг) пяти базовых типов оплат, определенных требованиями ФНС. Убедитесь, что типы оплат в настройках кассы соответствуют стандартам:
Благодаря переходу на ДТО 10.х и современную библиотеку обмена, 1С начнет передавать эти типы оплат в виде структурированного JSON-запроса, который ККТ понимает без искажений.
При переходе с 9-й на 10-ю версию драйвера могут возникнуть сопутствующие технические сложности, которые легко устраняются:
Выясним причину этой ошибки. Кассовые аппараты АТОЛ старого модельного ряда, работающие на Платформе 2.5 (со старыми кодами защиты), могут некорректно взаимодействовать с драйвером 10.х. Для стабильной работы современных версий 1С и ДТО 10.х рекомендуется обновить внутреннее программное обеспечение (прошивку) самой ККТ до современной Платформы 5.0 в авторизованном сервисном центре АТОЛ.
Если тест устройства в 1С выдает ошибку связи, запустите стандартную утилиту «Тест драйвера ККТ», поставляемую вместе с ДТО 10. Нажмите кнопку «Свойства», выберите канал связи (например, USB), запустите автоматический поиск устройства. Найденные параметры порта и скорости перенесите в настройки подключаемого оборудования в 1С.
Переход на драйвер АТОЛ 10.х гарантирует стабильную печать комбинированных чеков и исключает некорректную отправку фискальных данных по операциям частичной оплаты и кредитования в ОФД.