При плановом обновлении конфигурации 1С (например, 1С:Бухгалтерия 3.0, УПП 1.3 или УТ 10.3) пользователям часто приходится обновлять и сопутствующее программное обеспечение, в частности — драйверы торгового оборудования АТОЛ с устаревших версий (ДТО 8.х или 9.х) на актуальную линейку ДТО 10.х.
После такого обновления многие сталкиваются с неприятным сбоем: при попытке пробить чек из документа «Поступление наличных» (ПКО) кассовый аппарат вместо привычной строки «НАЛИЧНЫЕ» выводит на чеке «Последующая оплата (кредит)». При этом в настройках торгового оборудования в 1С изменить эту логику не удается, а тип оплаты «Наличные» отсутствует в доступном списке сопоставлений.
В этой статье мы подробно разберем, почему возникает эта ошибка, как устроена передача типов оплат в современном стандарте АТОЛ и какими способами можно полностью решить эту проблему.
---
Для того чтобы понять суть проблемы, нам необходимо проанализировать, как взаимодействуют платформа 1С, интеграционная компонента и сам драйвер ККТ АТОЛ 10-й версии.
В архитектуре драйверов АТОЛ ДТО 10 (в соответствии с требованиями форматов фискальных данных ФФД 1.05 и ФФД 1.2) введена жесткая кодировка типов оплат. Каждому типу оплаты на уровне железа ККТ соответствует определенный индекс (параметр LIBFPTR_PARAM_PAYMENT_TYPE):
LIBFPTR_PT_CASH)LIBFPTR_PT_ELECTRONICALLY)LIBFPTR_PT_PREPAID)LIBFPTR_PT_CREDIT)LIBFPTR_PT_OTHER)Сбой с подменой «Наличных» на «Кредит» происходит по двум основным причинам:
3 или 4 вместо кода 0, из-за чего касса печатала «Кредит».---
Многие системные администраторы пытаются решить проблему «в лоб»: заходят в параметры подключения ККТ в 1С и ищут таблицу сопоставления типов оплат, чтобы вручную задать наличный расчет. Однако там они видят только безналичные платежи, кредиты и авансы.
Выясним причину этого явления. На уровне прошивки кассы и логики драйвера оплата наличными всегда жестко закреплена за индексом 0. Ее невозможно переопределить, переименовать или удалить. Программа 1С по умолчанию знает об этом правиле и при пробитии наличных документов автоматически отправляет кассе индекс 0 без обращения к таблицам настройки. Если же на печати выходит кредит, это значит, что код 0 подменяется самой программой или неверно интерпретируется прошивкой кассы.
---
Рассмотрим по шагам несколько рабочих способов решения этой проблемы — от простых организационных мер до технических манипуляций с оборудованием.
Если проблема вызвана внутренней ошибкой в БПО 1С, нам необходимо обновить интеграционную компоненту, которая отвечает за связь программы с драйвером АТОЛ:
ATOL_KKT_1C83_V10.zip), которая идет в комплекте с последними релизами вашей конфигурации, либо скачать актуальную версию с официального сайта АТОЛ.Самым надежным и технически правильным решением является обновление внутреннего ПО (прошивки) самого кассового аппарата АТОЛ 30Ф.
Старые версии прошивок (под Платформу 2.5, например, сборки 7733, 8346) плохо работают с современными драйверами ДТО 10. Необходимо обратиться в авторизованный сервисный центр АТОЛ или к вашему обслуживающему партнеру для перевода ККТ на современную Платформу 5.0. Это гарантирует корректную работу всех тегов ФФД 1.05 / 1.2 и полностью устранит путаницу с типами оплат в чеках.
Если у вас нет возможности оперативно обновить прошивку кассового аппарата, а работать нужно прямо сейчас, рассмотрите вариант временного перехода на драйверы предыдущего поколения — АТОЛ ДТО 9.х.
Установите ДТО 9.х на рабочий компьютер, в настройках подключения оборудования в 1С выберите соответствующую версию драйвера. Старые алгоритмы корректно передают признак наличного расчета даже на устаревших прошивках ККТ.
Иногда появление надписи «Последующая оплата (кредит)» на чеке — это не технический сбой, а следствие неверных действий пользователей. Разберем эту ситуацию подробнее.
Согласно требованиям Федерального закона № 54-ФЗ, ККТ должна отражать реальный характер хозяйственной операции:
Проанализируйте, из каких именно документов ваши пользователи печатают чеки, и убедитесь, что соблюдается правильная цепочка ввода документов.
---
Если вы самостоятельно дорабатываете интеграцию с ККТ или используете нетиповую конфигурацию 1С, обратите внимание на то, как формируется XML-пакет, передаваемый в драйвер. Посмотрим на пример корректной структуры xml-кода для фискализации наличной оплаты:
<Receipt>
<Positions>
<FiscalString Name="Оплата товара" Quantity="1" Price="1000.00" Amount="1000.00" Department="1" Tax="None" />
</Positions>
<Payments>
<Payment TypeSign="0" Amount="1000.00" />
</Payments>
</Receipt>
Обратите внимание на параметр TypeSign="0" в узле Payments. Значение "0" указывает драйверу ККТ на тип оплаты «Наличные». Если ваша конфигурация по ошибке передает туда значение "3", касса напечатает «Кредит». При возникновении проблем обязательно воспользуйтесь отладчиком 1С, чтобы проверить содержимое XML-пакета перед отправкой на ККТ.