При работе с торговым оборудованием в среде 1С:Управление торговлей (редакция 11) специалисты и администраторы часто сталкиваются с аппаратными ошибками ККТ. Особенно остро эти проблемы проявляются при обновлении релизов конфигураций, переходе на новые версии драйверов или изменении параметров фискализации кассовых аппаратов. Одной из наиболее запутанных цепочек ошибок является последовательное возникновение аппаратного сбоя 238d | 00EEh, последующей ошибки отсутствия обязательного реквизита и, наконец, ошибки программирования реквизита 1008.
В данной статье мы подробно разберем, почему возникают эти ошибки на примере фискального регистратора АТOЛ FPrint-22PTК (и других моделей семейства АТОЛ), проанализируем взаимосвязь настроек в базе данных 1С и параметров фискального накопителя, а также предоставим пошаговые инструкции по их устранению.
Рассмотрим первую ситуацию. Кассир пытается пробить чек в 1С:УТ 11, однако ККТ аннулирует его, выводя сообщение: При выполнении операции произошла ошибка: Неизвестная ошибка (неизвестная ошибка оборудования: 238d | 00EEh). На чековой ленте при этом печатается текст «Чек аннулирован».
Выясним причину этой ошибки. В шестнадцатеричном протоколе работы оборудования АТОЛ код ошибки 0x00EE (в десятичном виде — 238, а в старых версиях драйверов она может маскироваться под кодом -199) расшифровывается однозначно: «Неправильно установлена система налогообложения (СНО) при регистрации ККТ и в настройках ККТ». Это означает, что СНО, которую программа 1С передает в XML-пакете для пробития чека, отсутствует в списке разрешенных СНО, записанных в фискальном накопителе (ФН) при регистрации ККТ.
Проанализируем ситуацию по шагам для исправления этого несоответствия.
Шаг 1. Проверка СНО в фискальном накопителе ККТ
Для того чтобы понять, какие именно системы налогообложения зарегистрированы на вашей кассе, выполним следующие действия:
A8 в режиме доступа к ФН через тест-драйвер для чтения параметров фискализации.Шаг 2. Проверка настроек СНО в 1С:Управление торговлей 11
В программе 1С:УТ 11 СНО определяется по сложной цепочке параметров. Недостаточно просто проверить карточку организации. Выполним полную ревизию настроек:
238d.Ниже приведем концептуальный пример кода, иллюстрирующий, как 1С формирует параметры для передачи в драйвер ККТ, где указывается код СНО:
// Пример формирования параметров фискализации чека в БПО
ПараметрыЧека = Новый Соответствие;
ПараметрыЧека.Вставить("TaxSystem", ПолучитьКодСНОПоСкладу(Объект.Склад));
ПараметрыЧека.Вставить("Electronically", Ложь);
// Если код СНО не совпадает со значением в ФН, драйвер вернет код ошибки -199 (0x00EE)
---
Рассмотрим вторую проблему. После обновления прошивки ККТ (например, до версии 5199) и драйверов ККТ до версий 8.14–8.16, при попытке пробить чек возникает ошибка: При выполнении операции произошла ошибка: Ошибка реквизита: Не задан необходимый реквизит для совершения операции.
Разберем, почему это происходит. При обновлении прошивки кассовый аппарат переходит на формат фискальных данных ФФД 1.05 (вместо устаревшего ФФД 1.0). В стандарте ФФД 1.05 существенно расширен список обязательных реквизитов чека. Самым критичным из них является Тег 1117 («Адрес электронной почты отправителя чека»). Если этот тег не запрограммирован в самой кассе или не передается из 1С, ККТ блокирует печать чека.
Посмотрим, как решить эту проблему через утилиту регистрации АТОЛ:
info@company.ru или общий адрес ФНС no-reply@nalog.ru). Также проверим корректность заполнения адреса сайта ФНС (Тег 1060 — www.nalog.gov.ru).---
Рассмотрим третью ошибку, которая часто возникает после успешной настройки драйверов и СНО. При печати чека 1С выдает ошибку: При выполнении операции произошла ошибка: Ошибка программирования реквизита (1008).
Проанализируем ситуацию. Тег 1008 — это контактные данные покупателя (номер телефона или адрес электронной почты), на которые должен быть отправлен электронный чек. В стандартных розничных продажах этот тег не является строго обязательным для бумажного чека, если покупатель не попросил отправить ему электронную копию. Однако ККТ начинает жестко блокировать печать чека при отсутствии этого тега в следующих случаях:
Выясним, как исправить эту ошибку в зависимости от бизнес-процесса компании:
В этом случае регистрировать кассу исключительно с флагом «для расчетов в сети Интернет» нельзя. Нам необходимо убрать этот признак:
В этом сценарии вам необходимо гарантировать передачу контактных данных покупателя из 1С. Разработчикам необходимо убедиться, что при формировании XML-пакета чека структура контактных данных заполнена. Посмотрим на примере, как в коде 1С передаются данные покупателя:
// Пример заполнения контактов покупателя в XML-пакете чека
ДанныеПокупателя = Новый Структура;
Если ЗначениеЗаполнено(Объект.ДоговорКонтрагента.КонтактныйТелефон) Тогда
ДанныеПокупателя.Вставить("CustomerPhone", ОчиститьТелефон(Объект.ДоговорКонтрагента.КонтактныйТелефон));
ИначеЕсли ЗначениеЗаполнено(Объект.ДоговорКонтрагента.Email) Тогда
ДанныеПокупателя.Вставить("CustomerEmail", Объект.ДоговорКонтрагента.Email);
Иначе
// Для интернет-кассы отсутствие контакта вызовет ошибку 1008!
ВызватьИсключение "Для интернет-расчетов обязательно заполнение телефона или Email покупателя!";
КонецЕсли;
---
Обратим внимание на важную деталь обсуждения: использование устаревших версий ДТО АТОЛ (8.х и 9.х). Драйверы версий 8.х и 9.х полностью сняты с поддержки производителем. Они не поддерживают современные требования законодательства (такие как ФФД 1.2, обязательная маркировка товаров средствами «Честный ЗНАК» и т.д.). Попытки настроить совместную работу УТ 11 и кассы на старых драйверах будут постоянно приводить к подобным ошибкам программирования реквизитов.
Настоятельно рекомендуется выполнить переход на ДТО 10 (10.x). Рассмотрим, как правильно настроить связку 1С:УТ 11 и АТОЛ 10.х по шагам:
Переход на ДТО 10 решает большинство скрытых проблем с некорректной передачей тегов ФФД 1.05 и 1.2, стабилизирует отправку чеков и делает процедуру интеграции прозрачной и надежной.