При оформлении частичной предоплаты или авансового платежа через документ Приходный кассовый ордер или Чек ККМ в программе 1С:Управление торговлей 11 пользователи часто сталкиваются со следующим предупреждением: программа сообщает о необходимости обновить прошивку ККТ или драйвер устройства для поддержки формата фискальных данных (ФФД) версии 1.05. Проанализируем, почему возникает эта ошибка, как Библиотека подключаемого оборудования (БПО) проверяет параметры кассового аппарата и какими способами можно оперативно решить проблему.
Формат фискальных данных ФФД 1.0 изначально не предусматривал детального разделения признаков способа расчета для сложных торговых операций — таких как предоплата, частичная оплата, передача в кредит или зачет аванса. Для корректной передачи в ОФД и ФНС структуры чека с авансовыми платежами требуется поддержка формата ФФД 1.05 или выше, где присутствуют теги 1214 (Признак способа расчета) и 1212 (Признак предмета расчета).
Если в системе зафиксировано, что касса или фискальный накопитель работают по стандарту 1.0, БПО 1С блокирует пробитие чека с частичной оплатой, чтобы уберечь пользователя от формирования некорректного фискального документа.
Рассмотрим, каким образом программа 1С получает информацию о поддерживаемом формате. При вызове функции печати чека 1С делает запрос к драйверу кассового аппарата и считывает параметры как самого устройства (ККТ), так и фискального накопителя (ФН).
Посмотрим на пример кода из модуля Библиотеки подключаемого оборудования, показывающий логику определения итоговой версии ФФД:
Функция ВерсияФФД(ПараметрыККТ) Экспорт
ВерсияФФДККТ = Неопределено;
ВерсияФФДФН = Неопределено;
ПараметрыККТ.Свойство("ВерсияФФДККТ", ВерсияФФДККТ);
ПараметрыККТ.Свойство("ВерсияФФДФН" , ВерсияФФДФН);
Если ВерсияФФДККТ = Неопределено Тогда
Если ВерсияФФДФН = Неопределено Тогда
Результат = "1.0";
Иначе
Результат = ВерсияФФДФН;
КонецЕсли;
Иначе
Если ВерсияФФДФН = Неопределено Тогда
Результат = ВерсияФФДККТ;
Иначе
Результат = Мин(ВерсияФФДККТ, ВерсияФФДФН);
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
Из данного алгоритма видно: 1С берет минимальное значение из двух параметров (версия ФФД устройства и версия ФФД фискального накопителя). Если хотя бы один из этих параметров возвращает значение 1.0 или пустую структуру (Неопределено), итоговый результат принимается равным "1.0". Соответственно, для успешного пробития чека частичной оплаты условие поддержки ФФД 1.05 должно одновременно выполняться и на стороне прошивки ККТ, и на стороне ФН.
Выяснив причины поведения системы, разберем по шагам варианты устранения ошибки.
Внешний драйвер в ОС и компонента, загруженная в справочник 1С — это разные вещи. Если физически касса переведена на ФФД 1.05, но в 1С загружен старый архив компоненты, программа продолжит обращаться к ККТ по старому протоколу.
Часто в базе 1С сохраняются закэшированные настройки оборудования, считанные до перерегистрации кассы.
AppData\Roaming\1C\1cv8\ExtCompT. При следующем запуске 1С принудительно заново инициализирует компоненту и запросит данные у кассы.Если быстро обновить прошивку или драйвер ККТ не представляется возможным, рассмотрим временную схему работы, позволяющую пробить чек при частичной оплате:
Предоплата (или Частичная оплата).