Не так давно был довольно интересный случай по подключению и настройке периферийного оборудования к 1С Управление Торговлей 11. Ошибка “Некорректное значение параметров команды ФН” при печати чека с онлайн кассы.
Описание проблемы
После обновления версии платформы и конфигурации 1С онлайн-касса Атол 30Ф перестала пробивать чеки ККМ. При пробитии чека генерируется ошибка "При выполнении операции произошла ошибка: Некорректное значение параметров команды ФН"
.
Причем как за наличный расчет, так и за безналичный расчет по банковской карте.
До обновления версии платформы и конфигурации чеки ККМ пробивались успешно.
Версии ПО на момент начала диагностики
Версия платформы 1С: 8.3.17.1851
Версия конфигурации 1С: Управление торговлей, редакция 11 (11.4.13.103). Конфигурация без доработок.
Версия драйвера торгового оборудования АТОЛ: 10.2.0.0
Версия внутреннего ПО ККМ Атол 30Ф: 7942
СНО: общая.
Выполненные шаги на первом этапе диагностики
Теорий было много, но краткой опишу основные шаги.
Первым шагом я провел проверку корректности всех настроек подключения торгового оборудования, как это приведено в инструкции на сайте 1С. Все было настроено верно.
Второе, что я выполнил – это обновление драйверов торгового оборудования АТОЛ до последней актуальной версии (10.8.0.0). Не помогло.
После этого проанализировал логи кассы, который формируются. Более детального и расширенного описания ошибки там не было. Все так же. JSON-задание на печать, отправляемое со стороны 1С на кассу немного отличалось от предыдущего, но при обновлении конфигурации 1С это вполне обычное дело. Забегаю на перед скажу – что именно тут и следовало заострить внимание более подробно.
Затем было выполнено обновление внутреннего ПО кассы да последней актуальной версии – 8541. Не спасло.
Наступил этап глубокой мысли и печали 🙂
Кульминация
Решил более пристально рассмотреть логи, которые пишет касса. Особенно JSON-задания, которые 1С отправляет на печать.
Логи лежит вот тут:
"C:\Users\<username>\AppData\Roaming\ATOL\drivers9\logs\fptr1c_log.txt"
Глаз зацепился за параметр paymentobject. До обновления он выглядел вот так (10 = платеж):
paymentobject=10
После обновления он выглядел вот так (1 = товар):
paymentobject=1
Paymentobject – это признак предмета расчета, который сохраняется на фискальном накопителе (ФН) кассы для каждого чека.
В документации указаны следующие возможные значения.
т.е. казалось бы, все верно – такие значения имеют место быть. Кстати, если кому-то нужна документация от АТОЛ, то её можно загрузить из архива ниже.
Решили посмотреть в сторону ФН. Создали тестовую номенклатуру с типом “услуга” и попробовали пробить её – чек пробился…
Осталось понять, что не так с ФН. На кассе был установлен ФН на 36 месяцев (уже года 1,5 назад) и вот тут-то и была причина всей ошибки.
Как оказалось не все ФН одинаково полезны. Некоторые ФН на 36 месяцев не умеют работать с общей системой налогообложения и признаком предмета расчета “товар”. Первоисточник.
И хотя ссылку выше я видел на первых шагах диагностики, но не придал ей значения ссылаясь на то, что до обновления касса пробивала чеки ККМ с основной системой налогообложения 🙁
Итог
После замены исходного ФН с исполнением на 36 месяцев на ФН с исполнением на 15 месяцев чеки ККМ пробивались успешно и ошибки “Некорректное значение параметров команды ФН” более не было.