При работе с классической конфигурацией «Управление торговлей, редакция 10.3» после очередного обновления программисты и администраторы часто сталкиваются с парадоксальной ситуацией. При попытке пробить чек через документ Чек ККМ система выдает критическую ошибку: «Остатка [Товар] на складе недостаточно. Не хватает 1 шт; Остаток -32 шт». При этом отчет «Ведомость по товарам на складах» или «Остатки товаров» показывает, что товар в наличии есть, и его достаточно для совершения продажи.
В этой статье мы подробно разберем, почему возникает такая путаница, как ошибка торгового оборудования может превратиться в ошибку проведения документа и что нужно проверить в первую очередь, чтобы восстановить работу кассовой зоны.
Рассмотрим подробнее, как работает проведение чека в УТ 10.3. Процесс печати фискального чека и проведение документа в информационной базе тесно связаны одной транзакцией. Когда кассир нажимает кнопку «Пробить», программа выполняет следующую последовательность действий:
Товары на складах и Партии товаров на складах.Именно в этот момент возникает коллизия. В нетиповых или некорректно обновленных конфигурациях алгоритм обработки ошибок может быть настроен так, что вместо реальной причины (ошибки ККТ) пользователю выводится последнее сообщение из стека ошибок, которое часто связано с неудачной попыткой записи движений по складам. В итоге мы видим сообщение о нехватке «-32 шт», хотя это число может быть результатом математической ошибки интерпретации пустых значений при откате транзакции.
Проанализируем ситуацию с переходом на новый формат фискальных данных. Ошибка 1009 (Недопустимое сочетание реквизитов) стала массовой после внедрения ФФД 1.2. Она возникает, когда в пакете данных, отправляемом на кассу, отсутствуют или неверно заполнены обязательные теги, такие как Адрес расчета (тег 1009) или Место расчета (тег 1187).
В обновлении 1С были внесены изменения для поддержки ФФД 1.2, но если ваша конфигурация «допилена» вручную, эти изменения могли вступить в конфликт с вашим кодом. Касса отклоняет чек, транзакция проведения в 1С прерывается, и система выдает ложное сообщение о нехватке остатка.
Что нужно сделать: Проверьте настройки торгового оборудования. Убедитесь, что в справочнике «Кассы» или в настройках параметров фискального регистратора корректно заполнены адрес и место установки. Также убедитесь, что версия драйвера (например, АТОЛ 10.x) соответствует требованиям текущего релиза конфигурации.
Если ваша УТ 10.3 является нетиповой, велика вероятность, что при обновлении была случайно затерта часть кода, отвечающая за специфическую проверку остатков или за работу с сериями и качеством. Посмотрим на типичный пример кода, который часто модифицируют в процедуре ПередЗаписью или в модуле проведения документа:
// Пример модифицированного кода проверки остатков
Если Не Отказ Тогда
ОстатокТовара = РегистрыНакопления.ТоварыНаСкладах.Остаток(Дата, Новый Структура("Номенклатура, Склад, Качество", Строка.Номенклатура, Склад, Качество));
Если ОстатокТовара < Строка.Количество Тогда
// Здесь часто добавляют исключения для определенных складов или прав пользователей
Если Не ПолучитьДополнительноеПраво("РазрешитьПродажуБезОстатков") Тогда
Сообщить("Недостаточно товара!");
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
При обновлении через сравнение и объединение конфигураций такие «незаметные» куски кода могут быть заменены на типовые. Если у вас ранее был реализован механизм, игнорирующий контроль остатков для определенных условий, то после обновления система начнет строго проверять наличие товара, выдавая ошибку.
Выясним причину, связанную с техническим взаимодействием 1С и кассы. Часто проблема решается обновлением обработки обслуживания ATOLkkt.epf (или аналогичной для вашей версии драйвера). Старые версии обработок не умеют корректно передавать новые параметры маркировки и реквизиты ФФД 1.2 в драйвер 10-й версии.
Проанализируем ситуацию: на компьютере разработчика (где нет ККТ) документ проводится отлично, так как 1С работает в режиме «Эмуляция» или просто пропускает блок печати чека. На рабочем месте клиента касса подключена, и блок печати становится обязательным. Если драйвер возвращает ошибку, документ не проводится.
Рассмотрим последовательность действий для исправления ситуации:
Разрешить превышение остатка товаров на складе установлен (если это допустимо в вашей учетной политике). Это поможет понять, является ли ошибка чисто логической или она вызвана оборудованием.ЧекККМ и общему модулю ПроведениеСервер (или аналогичным, где реализовано списание партий).Ведомость по партиям товаров на складах. Возможно, товар числится на складе, но по регистру партий он не прошел (например, из-за неверной последовательности документов или разного качества товара).Важный момент: Обратите внимание на статус качества. В сообщении об ошибке часто фигурирует Качество: Новый. Если в документе случайно выбрано иное значение или в регистре остатки числятся без указания качества, типовой механизм УТ 10.3 выдаст ошибку нехватки.
Подводя итог, можно сказать, что в 90% случаев ложная ошибка остатков в УТ 10.3 после обновления связана именно с откатом транзакции из-за сбоя ККТ. Тщательная проверка настроек ФФД 1.2 и актуализация драйверов — залог стабильной работы кассовой смены.