При работе с торговым оборудованием в программе 1С:Управление торговлей (редакция 11) пользователи часто сталкиваются с ситуацией, когда при попытке пробить чек на фискальном регистраторе (особенно часто на устройствах линейки Штрих-М) возникает ошибка: «36h, Некорректные параметры в команде для данной реализации». Проблема может проявляться не постоянно, а лишь в определенных документах, чаще всего — при наличии скидок или при оформлении реализации на основании нескольких документов.
Рассмотрим подробно причины возникновения этой ошибки и разберем по шагам проверенные способы её решения.
Проанализируем механику взаимодействия 1С и кассового аппарата. Основная причина ошибки 36h кроется в жестких требованиях фискального накопителя и прошивки ККТ к передаваемым данным. В кассовом аппарате заложен алгоритм проверки: Цена × Количество = Сумма. Если из-за применения сложных скидок в 1С итоговая сумма строки после округления не совпадает с результатом этого умножения хотя бы на одну копейку, кассовый аппарат отвергает команду и возвращает ошибку некорректных параметров.
Выясним, как это происходит на практике. В 1С сумма документа может быть рассчитана с учетом распределенной скидки по всему чеку, в то время как ККТ пытается рассчитать каждую строку отдельно. Если 1С передает итоговую сумму строки, которая математически не получается из переданной цены и количества, возникает конфликт.
Самый эффективный и простой способ решения данной проблемы в 1С:УТ 11 — это изменение параметров подключения кассового оборудования. Разберем необходимые действия по шагам:
0.Почему это помогает? При выборе опции «Разделять строки» 1С при обнаружении неточности округления (когда сумма не бьется из-за копеек) автоматически разбивает одну позицию номенклатуры в чеке на две строки с разными ценами так, чтобы итоговая сумма в точности соответствовала требованиям ККТ. Например, вместо одной строки с количеством 2 и ценой 10.505 (что невозможно для ККТ), программа пробьет одну единицу по 10.50 и одну по 10.51.
Если настройка ФЛК не помогла, проанализируем ситуацию с налоговыми ставками. Ошибка 36h также возникает, если 1С передает индекс налоговой ставки, который не соответствует внутренней таблице налогов в ККТ.
Рассмотрим, как это проверить:
В этом случае необходимо либо привести таблицу в ККТ к стандарту, либо изменить сопоставление налогов в настройках подключения оборудования внутри 1С.
Выясним еще одну возможную причину. Современные требования ФФД накладывают ограничения на длину реквизитов. Если наименование товара в реализации 1С слишком длинное (более 128 символов), драйвер может выдать ошибку 36h. Также стоит проверить наличие недопустимых спецсимволов в наименовании (кавычки-елочки, знаки табуляции или переноса строки), которые могут некорректно интерпретироваться протоколом обмена.
Если вы продаете маркированную продукцию, проанализируем передачу кода маркировки. При использовании устаревших драйверов (например, версии ниже 5.17) или старых прошивок ККТ, попытка передать код товара (Тег 1162) может приводить к ошибке 36h, так как структура команды в старой реализации ККТ не поддерживает новые параметры маркировки. В этом случае требуется комплексное обновление: и прошивки аппарата, и драйвера в системе.
В некоторых случаях программисту 1С может потребоваться перехватить данные, отправляемые на ФР, чтобы понять, какая именно строка вызывает сбой. Рассмотрим пример кода, который можно использовать в отладке для анализа структуры чека перед отправкой в драйвер:
// Пример анализа структуры чека перед фискализацией
Для Каждого СтрокаЧека Из ОбъектДрайвера.ПараметрыЧека.ПозицииЧека Цикл
РасчетнаяСумма = СтрокаЧека.Цена * СтрокаЧека.Количество;
Если РасчетнаяСумма <> СтрокаЧека.Сумма Тогда
Сообщить("Обнаружено расхождение в строке: " + СтрокаЧека.Наименование);
Сообщить("Разница: " + Строка(РасчетнаяСумма - СтрокаЧека.Сумма));
КонецЕсли;
КонецЦикла;
Использование подобных проверок в расширении конфигурации поможет заранее выявлять проблемные документы до момента обращения к фискальному устройству.
Посмотрим на версию используемого драйвера. Пользователи часто используют версию 4.14, которая является стабильной, но может не поддерживать все нюансы современных форматов фискальных данных (ФФД 1.2). Если ошибка 36h сохраняется, рекомендуется выполнить следующие действия:
Таким образом, в большинстве случаев ошибка 36h в 1С:УТ 11 решается простой установкой режима «Разделять строки» в настройках ФЛК, что позволяет программе самостоятельно корректировать копейки при расчете скидок и налогов.