После обновления конфигурации 1С:Розница до релиза 2.3.9.37 многие пользователи и системные администраторы столкнулись с рядом нетипичных проблем при работе с контрольно-кассовой техникой (ККТ). Обновление принесло масштабные изменения, связанные с поддержкой формата фискальных документов ФФД 1.2. Из-за ужесточения требований к передаваемым на кассу данным, старые настройки и драйверы начали вызывать сбои.
В этой статье мы подробно проанализируем две самые распространенные проблемы этого релиза: ошибку печати чека из-за некорректной суммы налога и баг, при котором товары не удаляются из Рабочего места кассира (РМК) после пробития чека. Разберем по шагам, почему это происходит, и выясним причины на уровне кода платформы и драйверов.
Симптомы выглядят следующим образом: кассир формирует чек, нажимает кнопку оплаты, но чек не печатается на устройстве. Платформа выдает системное сообщение: «Чек не напечатан на устройстве для печати чеков. Описание ошибки: Некорректная сумма налога». Часто на самой кассе эта ошибка фиксируется под аппаратным кодом 128.
Давайте проанализируем ситуацию. На первый взгляд может показаться, что проблема кроется в ошибке кода самой конфигурации 1С. Некоторые разработчики при отладке находят следующий фрагмент кода в модуле ОбработкаТабличнойЧастиТоварыКлиентСервер и считают его ошибочным:
Функция СуммаНДС(Сумма, ПроцентНДС, ЦенаВключаетНДС = Истина) Экспорт
Если ЦенаВключаетНДС Тогда
СуммаНДС = Сумма * ПроцентНДС / (ПроцентНДС + 1);
Иначе
СуммаНДС = Сумма * ПроцентНДС;
КонецЕсли;
Возврат СуммаНДС;
КонецФункции
Может показаться, что в формуле не хватает умножения на 100, так как процент НДС равен 20%. Однако, посмотрим на ситуацию внимательнее. Платформа 1С в данном контексте оперирует ставкой НДС не в целых числах, а в виде десятичной дроби. То есть в переменной ПроцентНДС хранится значение 0.2, а не 20.
Подставим значения в формулу для выделения НДС из суммы, включающей налог: 0.2 / (0.2 + 1) = 0.2 / 1.2. Математически это абсолютно верный алгоритм расчета. Код 1С отрабатывает штатно. Истинная причина кроется в аппаратной части и драйверах.
Рассмотрим подробнее способы решения этой ошибки:
Системы налогооблажения ОСН и Пересчитывать суммы налогов после скидки на итог должны стоять в значении Истина. Любое расхождение СНО вызывает отказ драйвера рассчитывать налог.ПодключаемоеОборудование в самой 1С. Также крайне рекомендуется обновить внутреннюю прошивку кассового аппарата до последней версии.ExtCompT в профиле пользователя (AppData\Roaming\1C\1cv8\ExtCompT). При следующем запуске и тесте устройства компонента скачается заново.Вторая проблема, которая массово проявилась после этого обновления — это зависание интерфейса Рабочего места кассира (РМК). Чек пробивается успешно (если используется эмулятор), но табличная часть корзины не очищается. Кассир не может перейти к обслуживанию следующего покупателя. Также могут наблюдаться подвисания интерфейса на несколько секунд.
Выясним причину. В версии 2.3.9.37 разработчики 1С существенно переработали алгоритмы РМК. Появились новые проверки кодов маркировки и отправка электронных чеков. Эта проблема возникает в 99% случаев при работе с тестовым оборудованием — «Эмулятором ККТ» или при работе в демо-базе без подключения реальной кассы.
Из-за новой логики эмулятор ККТ не может корректно сформировать и вернуть в платформу финальный статус (callback) об успешном закрытии фискального документа по стандартам ФФД 1.2. 1С не получает подтверждения и, соответственно, не подает команду на очистку табличной части. Зависания же связаны с тем, что система в фоновом режиме пытается пересчитать автоматические скидки или отправить запросы к серверам проверки маркировки, не получая ответа от эмулятора.
Разберем по шагам, как решить эту проблему:
Администрирование -> Обслуживание.Обновление программы и найдите пункт, отвечающий за загрузку исправлений (патчей).Подводя итог, можно сказать, что обновление до релиза 2.3.9.37 требует комплексного подхода. Обязательно синхронизируйте версии драйверов торгового оборудования с требованиями платформы и не забывайте регулярно проверять наличие новых исправлений от разработчиков, особенно при кардинальной смене форматов фискальных данных.