Как исправить ошибку ККМ '36h, ошибка FNoperation' в 1С:УНФ при пробитии чеков?

Программист 1С v8.3 (Управляемые формы) 1С:Управление нашей фирмой Управленческий учет Торговля и дистрибуция
← На главную

При работе с онлайн-кассами, в частности с моделью "Штрих-М-01Ф", в конфигурации "1С:Управление нашей фирмой" (УНФ) пользователи могут столкнуться с ошибкой "36h, ошибка FNoperation: некорректные параметры в команде для данной реализации". Чаще всего она возникает в сложных сценариях, например, при пробитии чека на частичную оплату по ранее созданной расходной накладной. Давайте подробно разберем причины этой ошибки и рассмотрим пошаговый алгоритм ее устранения.

Анализ и диагностика проблемы

Чтобы найти верное решение, сначала выясним причину. Ошибка "36h, ошибка FNoperation" исходит от фискального накопителя (ФН) кассового аппарата. Она означает, что ФН получил команду с параметрами, которые он считает некорректными. В контексте пробития чека это практически всегда связано с несоответствием числовых данных в товарных позициях.

В ходе обсуждения проблемы выяснилось, что ключевая проблема заключается в данных, которые 1С отправляет на кассу. При анализе логов обмена между 1С и ККМ была обнаружена критическая несостыковка: произведение цены товара на его количество не равнялось итоговой сумме по этой же строке чека.

Например, в логе были найдены следующие данные, отправляемые на кассу:

Очевидно, что 1 * 397.48 ≠ 1419.55. Фискальный накопитель, выполняя внутреннюю проверку (форматно-логический контроль), обнаруживает это несоответствие и справедливо отвергает команду, возвращая ошибку "36h". Это доказывает, что проблема не в кассовом аппарате или его прошивке, а в алгоритме формирования чека на стороне 1С.

Важный момент: часто в эмуляторе ККТ такие ошибки не воспроизводятся, так как эмулятор может не выполнять всех строгих проверок, которые заложены в логику реального фискального накопителя. Поэтому для диагностики всегда опирайтесь на поведение физического устройства.

Основное решение: обновление конфигурации 1С

Как показала практика, корень проблемы крылся в ошибке алгоритма расчета сумм в конфигурации 1С:Управление нашей фирмой. Эта ошибка проявлялась именно в сценариях с частичными оплатами, когда система пыталась закрыть часть долга по расходной накладной.

Компания "1С" признала наличие этой ошибки и выпустила исправление. Поэтому основным и самым правильным решением является обновление конфигурации.

Решение:

  1. Убедитесь, что ваша версия УНФ ниже 1.6.25.178.
  2. Создайте резервную копию вашей информационной базы.
  3. Обновите конфигурацию "1С:Управление нашей фирмой" до релиза 1.6.25.178 или более нового.

После обновления до актуальной версии проблема с некорректным расчетом сумм в чеках частичной оплаты уходит, и касса начинает пробивать чеки без ошибок.

Альтернативное решение для похожих ошибок с округлением

Иногда ошибка "36h" может возникать не из-за глобальной ошибки в алгоритме, а из-за микроскопических расхождений в копейках, которые появляются при расчете скидок, налогов или распределении сумм по позициям. Даже расхождение в 0.01 рубля может привести к отказу со стороны ФН.

Для таких случаев в настройках драйвера ККТ предусмотрен специальный механизм. Разберем, как его настроить.

Порядок действий:

  1. Откройте раздел НСИ и администрирование → Администрирование → РМК и подключаемое оборудование.
  2. Перейдите по ссылке Подключаемое оборудование.
  3. Выберите тип оборудования "ККТ с передачей данных" и откройте настройки вашего кассового аппарата "Штрих-М".
  4. В настройках найдите параметр "Способ контроля фискальных данных" (в некоторых версиях драйвера он может называться "Способ ФЛК").
  5. Установите для этого параметра значение "Разделять строки".
  6. Ниже появится поле "Допустимое расхождение". Установите в нем значение 0.01.
  7. Сохраните настройки.

Эта настройка дает команду драйверу перед отправкой данных в ФН проверять их на соответствие. Если он обнаружит расхождение в пределах 1 копейки, он попытается автоматически скорректировать сумму одной из позиций, чтобы общая математика чека сошлась. Этот способ является отличным решением для проблем, связанных именно с ошибками округления.

Важно понимать: этот способ помогает при проблемах с округлением, но не решает фундаментальную ошибку в алгоритме, которая была исправлена в обновлении УНФ, описанном выше. Если у вас ошибка возникает именно при частичных оплатах, приоритетом должно быть обновление конфигурации.

Общий порядок действий при возникновении ошибки

Подведем итог и составим универсальный чек-лист для решения проблемы "36h, ошибка FNoperation":

  1. Проверьте актуальность ПО. В первую очередь убедитесь, что у вас установлены последние версии конфигурации 1С, Библиотеки подключаемого оборудования (БПО) и драйвера ККТ от "Штрих-М". Чаще всего проблема уже решена в обновлениях.
  2. Проверьте настройки оборудования. Убедитесь, что в настройках ККТ в 1С установлен способ контроля "Разделять строки" с допустимым расхождением в 0.01.
  3. Проанализируйте сценарий. Постарайтесь точно определить, после каких действий возникает ошибка (частичная оплата, скидка, продажа конкретного товара). Это поможет локализовать проблему и найти похожее решение в базе знаний или на форумах.
  4. Включите логирование. Если простые шаги не помогли, включите запись логов в настройках драйвера ККТ. Анализ лог-файла — самый надежный способ понять, какие именно некорректные данные 1С отправляет на кассу, и предоставить эту информацию в техподдержку.
← На главную