Переход на формат фискальных данных (ФФД) 1.05 привносит значительные изменения в процесс взаимодействия старых систем, таких как 1С:Торговля и Склад 7.7, с современным кассовым оборудованием. Одной из самых распространенных проблем является ситуация, когда после обновления прошивки кассы чек начинает печататься, но в итоге выходит с надписью «Чек аннулирован». Разберем подробно, почему это происходит и как настроить систему для корректной работы.
Для начала проанализируем, почему кассовый аппарат (ККТ) принимает команду на печать, но прерывает операцию. В ФФД 1.05 появились жесткие требования к составу данных в чеке. Если раньше многие параметры были опциональными, то теперь их отсутствие или некорректность приводят к отказу ККТ завершать операцию.
Рассмотрим основные причины:
ПризнакСпособаРасчета (полный расчет, аванс, кредит) и ПризнакПредметаРасчета (товар, услуга, подакцизный товар).Цена * Количество = Сумма. Ошибки округления в 1С 7.7, которые раньше игнорировались, теперь могут стать фатальными.При возникновении проблем часто возникает желание сразу перейти на 10-ю версию драйвера (ДТО 10). Однако в случае с 1С 7.7 это решение требует серьезной переработки кода обработки обслуживания (файлы .ert).
Проанализируем архитектурные различия:
Драйвер версии 8.х работает через классический COM-объект с программным идентификатором AddIn.FprnM45. Большинство типовых и доработанных обработок обслуживания для ТиС 7.7 (например, frATOL54_comm.ert) написаны именно под эту модель.
Драйвер версии 10 использует совершенно иную объектную модель AddIn.AtolKKM_10. Просто заменить файлы в папке EQUIP не получится — программа не увидит методы нового драйвера. Поэтому, если у вас нет готовой платной или глубоко переработанной обработки под 10-ку, рекомендуется использовать драйвер версии 8.16.x. Он вполне успешно поддерживает ФФД 1.05 и совместим со старым кодом 1С 7.7.
Если при попытке установить драйвер 8.16 вы получаете ошибку «Неизвестная ОС», скорее всего, вы работаете на Windows XP или Windows Server 2003. Современные инсталляторы АТОЛ требуют наличия актуальных библиотек Microsoft Visual C++ и обновлений ядра системы.
Разберем алгоритм ручной регистрации компоненты:
FPrnM45.dll.C:\Windows\System32 (или SysWOW64 для 64-битных систем) или непосредственно в папку с базой 1С.regsvr32 "C:\Windows\System32\FPrnM45.dll"
AddIn.FprnM45.Даже после установки драйвера чек может аннулироваться, если сама обработка .ert не передает новые теги. Рассмотрим, какие изменения в коде могут потребоваться (на примере работы с объектом драйвера):
Посмотрим на пример кода, который отвечает за передачу признаков расчета в драйвер 8-й серии:
// Пример установки признака способа расчета
Драйвер.PaymentMode = 4; // Полный расчет
// Пример установки признака предмета расчета
Драйвер.ItemType = 1; // Товар
Драйвер.Registration();
Если ваша обработка слишком старая, она может не содержать этих свойств. В таком случае драйвер пытается подставить значения по умолчанию, но это не всегда срабатывает корректно, особенно если в чеке присутствуют авансы.
Чтобы не гадать, почему чек аннулирован, нужно обратиться к лог-файлу драйвера. Это самый точный способ выяснить причину. Для 8-й версии драйвера лог обычно называется FPrnM8.log и находится в папке профиля пользователя (например, %AppData%\Atol\drivers8\).
Проанализируем ситуацию по логу:
Откройте лог текстовым редактором и перейдите в самый конец файла после неудачной попытки пробития чека. Ищите строки с ошибками. Например:
-3807 (Ошибка в СНО) — означает, что в 1С не выбрана система налогообложения, или она не совпадает с настройками в ККТ.-3800 (Сумма налогов превышает сумму чека) — часто возникает из-за некорректного округления скидок.Для корректной работы в режиме ФФД 1.05 убедитесь, что в обработке обслуживания передается код системы налогообложения. В драйвере АТОЛ 8 за это отвечает свойство TaxVariant.
Рассмотрим значения:
В коде обработки это выглядит примерно так:
Драйвер.TaxVariant = КодСНО; // КодСНО должен соответствовать настройке кассы
Для восстановления работы 1С 7.7 с кассами АТОЛ после обновления на ФФД 1.05 не обязательно переходить на 10-й драйвер. Достаточно выполнить следующие действия:
FPrnM45.dll версии 8.16..ert), чтобы она корректно передавала обязательные теги ФФД 1.05.Использование проверенного 8-го драйвера позволит вам сохранить работоспособность системы без дорогостоящей переписки кода, обеспечив при этом соответствие требованиям законодательства.