При работе в конфигурации 1С:Бухгалтерия 3.0 (и других решениях) пользователи часто сталкиваются с ситуацией, когда обычные чеки на продажу пробиваются нормально, но при попытке сформировать чек коррекции система выдает предупреждение: «Чек коррекции не напечатан на фискальном устройстве. Дополнительное описание: При выполнении операции произошла ошибка: Ошибка реквизита: Не задан необходимый реквизит для совершения операции». Давайте подробно разберем, почему возникает эта проблема, проанализируем ситуацию и выясним причину, а также рассмотрим по шагам рабочие методы решения.
Сообщение об ошибке реквизита в протоколах работы оборудования АТОЛ чаще всего соответствует коду внутренней ошибки кассы 0x0206 (или ошибке драйвера со значениями -4048 / E165-518). Эта ошибка означает, что фискальный накопитель (ФН) или программное обеспечение самой онлайн-кассы блокируют печать чека из-за того, что в отправляемом из 1С XML-пакете отсутствуют обязательные теги, регламентированные форматом фискальных данных (ФФД).
При формировании чека коррекции по стандартам ФФД 1.05 (а также более новым 1.1 и 1.2) обязательными к передаче являются следующие реквизиты:
Если 1С передает драйверу пакет данных, где хотя бы один из этих параметров не заполнен или передан в некорректном формате, касса вернет отказ.
Посмотрим на пример из отладки 1С. При выполнении операции формирования чека коррекции вызывается метод компоненты драйвера, который может выглядеть так:
Ответ = ОбъектДрайвера.СформироватьЧекКоррекции(ПараметрыПодключения.ИДУстройства, Кассир, ДанныеЧека, НомерЧека, НомерСмены, ФискальныйПризнак, АдресСайтаПроверки);
В отладчике можно увидеть, что параметр ДанныеЧека часто бывает пустым (не заполнены нужные структуры). Однако, чтобы понять, на каком конкретно теге спотыкается драйвер, отладки кода 1С недостаточно. Рассмотрим подробнее, как получить расширенную информацию из логов самого драйвера АТОЛ.
В зависимости от используемой версии драйвера, логи располагаются в разных каталогах:
%USERPROFILE%\AppData\Roaming\ATOL\drivers10\logs\fptr10.log.FprnM1C.log и располагается в папке: %USERPROFILE%\AppData\Roaming\Atol\drivers\.Откройте лог-файл текстовым редактором и пролистайте в самый конец (ориентируйтесь по времени возникновения ошибки в 1С). Ищите строки, фиксирующие отправку XML-пакета чека коррекции. Там будет прямое указание на проблемный реквизит, например: Ошибка при записи фискального реквизита: Tag 1173.
Разберем самый надежный способ исправления ошибки. Проблема с отсутствием реквизитов почти всегда связана с использованием устаревших драйверов (линейки 8.x или 9.x) в связке с новыми требованиями ФФД. Старые версии драйверов не поддерживают корректную структуру передачи тегов для чеков коррекции.
Для решения необходимо выполнить следующие шаги:
Новые библиотеки стандартных подсистем в 1С полностью совместимы с драйверами 10.x и автоматически формируют правильный XML-пакет со всеми обязательными тегами.
Если обновление драйверов в данный момент невозможно, или в конфигурации присутствуют нетиповые доработки, мешающие правильному формированию чека, проанализируем альтернативный путь — пробитие чека напрямую через сервисную утилиту оборудования в обход 1С.
В этом случае утилита драйвера сама проконтролирует наличие всех тегов и успешно распечатает чек.
Разберем также важные методические аспекты, касающиеся различных форматов ФФД, так как они напрямую влияют на правильность исправления ошибок кассира.
Если используется ФФД 1.05: Оформление чека коррекции в этом формате сильно ограничено. В нем технически невозможно передать предмет расчета (наименование товара). По рекомендациям ФНС, исправлять ошибки в обычных чеках при ФФД 1.05 следует не чеком коррекции, а двумя обычными чеками. Сначала пробивается чек Возврат прихода (полная копия ошибочного чека с указанием фискального признака исходного документа в теге 1192), а затем формируется новый, правильный чек Приход. Сам по себе чек коррекции в ФФД 1.05 используется в исключительных случаях, например, при обнаружении излишков (неприменение ККТ).
Если используется ФФД 1.1 или 1.2: В этих форматах ошибки исправляются именно полноценным чеком коррекции. Допускается формировать чек коррекции с признаком «возврат прихода» для полного аннулирования некорректной операции, а затем — чек коррекции «приход» для фиксации правильных данных. При этом обязательно указываются все товарные позиции и тег 1192. Для успешного проведения таких операций в 1С у вас должен быть установлен драйвер ветки 10.x, который обеспечивает передачу всей детализированной информации.