При работе с торговым оборудованием в решениях 1С, особенно в конфигурации 1С:Розница, специалисты часто сталкиваются со сбоями при попытке закрыть смену в конце рабочего дня. Одной из наиболее коварных и труднодиагностируемых проблем является ситуация, когда 1С программно закрывает смену в своей информационной базе, но при этом физический фискальный регистратор (ККТ) отказывается печатать Z-отчет (суточный отчет с гашением). Процесс прерывается критической ошибкой: «Ошибка 33h: неверные параметры команды» в интерфейсе 1С или «Ошибка 51: неверные параметры команды» при попытке закрыть смену вручную через тест драйвера ККТ.
В этой статье мы подробно разберем, почему возникает данная проблема, рассмотрим ее скрытые технические причины (связанные с особенностями работы драйверов «Штрих-М» и требованиями ФФД 1.05/1.2) и пошагово исправим эту ошибку вместе с вами.
Для того чтобы успешно решить проблему, проанализируем поведение системы и аппаратного комплекса ККТ в момент сбоя. Практика показывает, что если открыть смену в 1С и сразу же попытаться закрыть ее, не пробивая ни одного чека, то Z-отчет снимается успешно. Однако стоит провести хотя бы одну продажу, как закрытие смены наглухо блокируется.
В ходе детального исследования логов и таблиц фискального регистратора обнаруживаются следующие закономерности:
30. Когда имя администратора в ККТ становится пустым, касса начинает блокировать любые сервисные и фискальные команды, возвращая ошибку 51 («Неверные параметры команды»).CloseShift или PrintReportWithCleaning 1С пытается динамически перезаписать имя в строке 30 Таблицы 2 ККТ на ФИО текущего пользователя базы. Если ФИО кассира содержит избыточное количество символов, недопустимые спецсимволы или пробелы на конце строки, встроенное ПО кассы отвергает команду записи и в качестве защитной реакции полностью очищает ячейку памяти.31 или 33 (двоичные маски для обязательного вывода адреса расчетов, e-mail и ИНН организации). Если в карточке организации в 1С или в параметрах фискализации ККТ допущены ошибки (например, не указан e-mail отправителя или адрес расчетов содержит некорректные кавычки), то при перезаписи этого поля со стороны 1С касса выдает ошибку параметров команды.Рассмотрим по шагам комплекс мер, которые помогут гарантированно устранить ошибки 33h и 51 на фискальных регистраторах семейства «Штрих-М» (например, ШТРИХ-ЛАЙТ-02Ф, ШТРИХ-М-01Ф и др.).
Если касса уже заблокирована и выдает ошибку 51 при любых манипуляциях, нам необходимо вручную восстановить имя системного администратора в памяти аппарата.
СИСТ. АДМИНИСТРАТОР (или сокращенно СИСТ. АДМИН., соблюдая лимит длины строки в 21 символ).30.После этой процедуры фискальный регистратор снова начнет принимать команды закрытия смены непосредственно из теста драйвера.
Для предотвращения повторной очистки строки 30 ККТ при следующем закрытии смены из 1С, нам необходимо убедиться, что данные пользователей передаются корректно.
1203 (ИНН кассира) и выдаст ошибку 33h.Проанализируем пример кода, который отвечает за инициализацию параметров закрытия смены и передачу пароля администратора в интеграционной компоненте драйвера:
// Фрагмент кода обработки обслуживания ККТ Штрих-М
Процедура ЗакрытьСменуНаККТ(ОбъектДрайвера, ПарольАдминистратора) Экспорт
// Установка пароля системного администратора (обычно "30")
ОбъектДрайвера.Password = ПарольАдминистратора;
// Попытка снять суточный отчет с гашением (Z-отчет)
Результат = ОбъектДрайвера.PrintReportWithCleaning();
Если Результат <> 0 Тогда
ВызватьИсключение "Не удалось закрыть смену на ККТ: " + ОбъектДрайвера.ResultCodeDescription;
КонецЕсли;
КонецПроцедуры
Довольно часто причиной сбоя становится несоответствие зарегистрированной в ФН системы налогообложения (СНО) и той, которая передается из 1С при продаже товаров. Если СНО не совпадают, касса может зависнуть в некорректном подрежиме, не позволяющем выполнить команду CloseShift.
Проверим параметры фискализации через драйвер:
Использование несовместимых версий основного драйвера «Штрих-М» и интеграционной библиотеки (компоненты), установленной в самой 1С, является частой причиной ошибок передачи параметров. Разберем, как привести их к единому стандарту:
C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin\1C\).Удивительным, но подтвержденным на практике решением для устранения периодической ошибки 33h при закрытии смены является включение детального лога работы устройства непосредственно в настройках 1С.
Дело в том, что при включении логирования драйвер делает микропаузы перед отправкой команд на физический порт ККТ, чтобы успеть записать строку лога на жесткий диск. Это исключает возникновение ошибок «тайм-аута» и рассинхронизации команд при отправке сложных пакетов данных (включая имя кассира и СНО) в ОФД.
Чтобы включить ведение лога в 1С, выполните следующие действия:
C:\logs\kkt.log) и сохраните настройки.Совместное применение этих методов — восстановление имени системного администратора в Таблице 2, корректное заполнение ИНН физических лиц в 1С, выравнивание систем налогообложения ККТ и базы данных, а также включение логирования — позволяет полностью избавиться от «свистопляски» с закрытием смены и гарантирует стабильную печать Z-отчетов каждый день.