При работе с торговым оборудованием в среде 1С:Предприятие, особенно на базе старых конфигураций, таких как Управление торговлей 10.3, специалисты часто сталкиваются с неочевидным поведением драйверов ККТ. Одной из наиболее «немых» и неприятных ошибок является ситуация, когда метод фискализации чека возвращает Ложь без какого-либо текстового описания причины. В данной статье мы разберем конкретный кейс с кассой Атол 11Ф, выясним, почему возникает ошибка «Возможны расхождения ИБ и ленты ФР», и как правильно настроить параметры оборудования, чтобы восстановить работоспособность системы.
Рассмотрим ситуацию: к одной информационной базе подключены две идентичные кассы Атол 11Ф для разных организаций. Одна касса работает корректно, а вторая при попытке пробить чек выдает ошибку расхождения информационной базы и ленты фискального регистратора. При анализе кода в отладчике мы видим следующую картину:
Результат = ОбъектДрайвера.СформироватьЧек(ПараметрыПодключения.ИДУстройства, Электронно,
ДанныеЧека, НомерЧека, НомерСмены, ФискальныйПризнак, АдресСайтаПроверки);
Переменная Результат принимает значение Ложь. При этом 1С:УТ 10.3 интерпретирует этот отказ как потенциальную проблему со связью или записью данных в ФН (фискальный накопитель), выдавая стандартное предупреждение о расхождениях. Однако истинная причина кроется не в потере связи, а в том, что касса отклоняет пакет данных из-за несоответствия внутренних настроек ККТ и передаваемых параметров из 1С.
Для понимания причин отказа проанализируем структуру XML-пакета ДанныеЧека, который передается драйверу. Проанализируем пример данных, которые вызывали ошибку:
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters PaymentType="1" TaxVariant="2" CashierName="Кассир Людмила" CustomerEmail="" CustomerPhone=""/>
<Positions>
<FiscalString Name="800032 Очиститель натур. кожи Leather Cleaner (500мл.) шт" Quantity="1" PriceWithDiscount="130" SumWithDiscount="130" DiscountSum="" Department="0" Tax="none" SignMethodCalculation="4" SignCalculationObject="1" TaxSum=""/>
</Positions>
<Payments Cash="130" ElectronicPayment="0" Credit="0" AdvancePayment="0" CashProvision="0"/>
</CheckPackage>
Обратим внимание на атрибут TaxVariant="2" в узле Parameters. Этот параметр отвечает за Систему Налогообложения (СНО). В данном случае передается значение "2", что обычно соответствует упрощенной системе налогообложения (УСН доход). Если в самой кассе (в настройках фискализации или параметрах по умолчанию) данная СНО не разрешена или не указана, драйвер вернет Ложь, так как касса не сможет сформировать фискальный признак для некорректной операции.
Для исправления ситуации нам необходимо выйти за пределы 1С и воспользоваться утилитами от производителя оборудования. Выполним следующие действия:
TaxVariant), совпадает с индексом в таблицах кассы. Например, в 1С индекс 2 может соответствовать ЕНВД или УСН, а в ККТ под этим номером может быть зарегистрирована другая система.Разберем еще один важный аспект, упомянутый в ситуации: разные версии прошивок на двух одинаковых аппаратах (например, 5199 и 6592). Проанализируем ситуацию подробнее:
Прошивка 6592 является более новой и ориентирована на работу с форматом фискальных данных (ФФД) 1.05. В отличие от старых версий (5199), она осуществляет более жесткий контроль передаваемых тегов. Если 1С:УТ 10.3 не передает какой-либо обязательный атрибут (например, признак способа расчета SignMethodCalculation или признак предмета расчета SignCalculationObject), новая прошивка может отклонить чек, в то время как старая «прощала» такие недочеты.
Также отметим, что драйверы серии 9.12 имеют свои особенности трансляции ошибок в 1С. Зачастую они не передают текст ошибки в вызывающее приложение, возвращая лишь булево значение. Поэтому при возникновении подобных проблем крайне важно проверять лог-файлы драйвера (обычно находятся в папке AppData/Roaming/Atol), где причина отказа будет описана детально.
Когда мы подключаем две кассы к одному компьютеру, возникает риск конфликта портов и служб. Разберем рекомендации по стабильной настройке:
Во-первых, при использовании протокола EthernetOverUSB (EoU) для передачи данных в ОФД, обе кассы могут пытаться использовать одну и ту же службу. Убедитесь, что в настройках службы EoU прописаны оба серийных номера ККТ и для каждой выделен свой виртуальный порт для выхода в интернет.
Во-вторых, в настройках «Подключаемого оборудования» в 1С следует жестко привязывать устройство к конкретному серийному номеру и COM-порту. Это исключит ситуацию, когда при случайной перестановке USB-кабелей 1С начнет отправлять данные организации «А» на кассу организации «Б», что приведет к ошибке СНО или налоговых ставок.
Ошибка «Возможны расхождения ИБ и ленты ФР» в большинстве случаев является следствием того, что касса вернула программный отказ (Error 0x... в логах драйвера), а конфигурация 1С не смогла его корректно расшифровать. Главными виновниками в случае с Атол 11Ф обычно выступают:
Для исправления достаточно корректно настроить параметры СНО в памяти кассы через утилиту регистрации или тест драйвера, после чего метод СформироватьЧек начнет возвращать Истина, и фискализация будет проходить успешно.