При работе с торговым оборудованием в среде 1С:Предприятие пользователи часто сталкиваются с техническими коллизиями, которые блокируют процесс продажи или возврата денежных средств. Одной из наиболее специфичных является ошибка «При выполнении операции произошла ошибка: Неверное количество». Чаще всего она проявляется на кассовых аппаратах семейства АТОЛ при попытке оформить возврат оплаты покупателю через документ Расходный кассовый ордер (РКО) или при работе с авансовыми платежами.
В этой статье мы подробно разберем, почему возникает эта ошибка, как она связана с версиями драйверов и как правильно настроить программный комплекс для корректной фискализации операций.
Проанализируем ситуацию с технической стороны. Когда 1С отправляет команду на печать чека фискальному регистратору, она передает массив данных, содержащий информацию о товарах, услугах или платежах. Ошибка Неверное количество сигнализирует о том, что в одном из полей (тег 1023 в терминах ФФД), отвечающих за количественные показатели, передано значение, которое драйвер или прошивка кассы не могут обработать.
Рассмотрим основные сценарии возникновения проблемы:
Расходного кассового ордера вручную программа может не заполнить номенклатурный состав чека. Если в драйвер уходит сумма, но количество позиций равно 0 или не указано, ККТ возвращает ошибку, так как количество должно быть строго положительным (минимум 1 для платежа).Первым и самым важным шагом является отказ от драйверов 8-й серии. Рассмотрим, как правильно выполнить переход, чтобы 1С начала корректно взаимодействовать с кассой АТОЛ 30Ф или аналогичными моделями.
Рассмотрим последовательность действий:
НСИ и администрирование — РМК и оборудование — Подключаемое оборудование.Настроить и проверьте связь. Обратите внимание, что в 10-й версии драйвера настройки портов и протоколов могут отличаться (часто используется протокол JSON или обновленный бинарный протокол).Важный момент: При переходе на драйвер 10.х убедитесь, что в самой 1С обновлена «Интеграционная компонента». Обычно она обновляется автоматически при обновлении конфигурации, но в случае ручной настройки стоит нажать кнопку Установить драйвер в карточке оборудования.
Часто ошибка возникает не из-за техники, а из-за неправильной цепочки документов. Если покупатель внес аванс (ПКО), а затем просит его вернуть, оформление простого Расходного кассового ордера «в пустоту» часто приводит к тому, что 1С не знает, какую «номенклатуру» подставить в чек возврата.
Выясним, как сделать это правильно в УТ 11.4:
Возврат денежных средств клиенту.Рабочее место кассира (РМК), операцию возврата лучше проводить именно там через функцию возврата без чека продажи или по номеру чека.Проанализируем ситуацию с передачей данных. Если программа все же требует указания позиций, убедитесь, что в табличной части или в настройках формирования чека указана служебная номенклатура (например, «Возврат неиспользованных денежных средств») с количеством 1 и суммой возврата. Это исключит передачу нулевого количества в драйвер.
Если обновление драйвера не помогло, проанализируем состояние самого кассового аппарата. Для работы с современными версиями 1С касса АТОЛ должна иметь версию внутреннего ПО (прошивки) не ниже 5000-й серии (для платформы 5.0). Старые прошивки не умеют работать с новыми тегами, которые генерирует 1С:УТ 11 при оформлении сложных операций вроде возврата предоплаты.
Посмотрим, на что обратить внимание:
0.999 или 1.001 из-за ошибок в расчетах себестоимости или скидок. В драйвере 10.х предусмотрены механизмы сглаживания таких ошибок, чего нет в старых версиях.Для тех, кто хочет глубже разобраться в коде, рассмотрим пример того, как формируется объект данных для драйвера. В 1С используется XML-структура или JSON-запрос. Ошибка возникает, когда узел количества выглядит следующим образом:
// Пример некорректного формирования позиции чека (упрощенно)
Позиция.Количество = 0; // Это вызовет ошибку "Неверное количество"
Позиция.Цена = 100;
Позиция.Наименование = "Возврат аванса";
Правильный подход подразумевает обязательную проверку заполненности количества перед вызовом метода печати:
Если ОбъектЧека.Позиции.Количество() > 0 Тогда
Для Каждого Стр Из ОбъектЧека.Позиции Цикл
Если Стр.Количество <= 0 Тогда
Стр.Количество = 1; // Корректировка для финансовых операций
КонецЕсли;
КонецЦикла;
// Вызов функции печати через стандартную библиотеку подключаемого оборудования
МенеджерОборудования.ВыполнитьКоманду("PrintReceipt", ПараметрыЧека);
КонецЕсли;
Подведем итог нашему разбору. Чтобы навсегда избавиться от ошибки «Неверное количество» в 1С:УТ 11 при работе с кассами АТОЛ, выполните следующие шаги:
Возврат денежных средств с привязкой к заказу или ПКО, а не через «пустой» РКО.Соблюдение этих правил обеспечит стабильную работу кассового узла и отсутствие проблем при проверках со стороны налоговых органов, так как все теги в чеке будут заполнены корректно и в соответствии с законодательством.