В процессе работы с конфигурацией 1С:Управление производственным предприятием (УПП) редакции 1.3 (а также в аналогичных решениях на обычных формах, таких как 1С:Управление торговлей 10.3 или 1С:Комплексная автоматизация 1.1) пользователи часто сталкиваются с критической ошибкой при пробитии чеков по безналичным расчетам от физических лиц. При попытке распечатать чек на предоплату из документа «Платежное поручение входящее» или «Приходный кассовый ордер» (ПКО) итоговая сумма в чеке удваивается. Программа разбивает чек по товарным позициям из заказа покупателя и одновременно добавляет отдельную строку общего платежа вида «Аванс / Платеж / Оплата от...» на ту же сумму.
В этой статье мы подробно разберем, почему возникает эта ошибка, как временно обойти её без программирования прямо сейчас, а также как правильно исправить неверно пробитые чеки в ОФД и настроить систему для корректной работы в будущем.
Данная проблема носит массовый характер и связана с изменениями в законодательстве (ФЗ-54), вступившими в силу летом 2019 года. Именно тогда стала обязательной фискализация безналичных расчетов с физическими лицами. Разработчики 1С оперативно обновляли механизмы интеграции с ККТ, что привело к усложнению логики распределения платежей в релизах линейки 1.3.123.x и 1.3.124.x.
Проанализируем алгоритм работы программы при проведении оплаты по заказам:
ЗаказПокупателя, но фактической отгрузки (реализации) еще не было, программа пытается одновременно отработать две разные логические схемы:
Ниже представлен концептуальный пример кода, иллюстрирующий, где именно происходил сбой в логике распределения сумм:
// Пример ошибочной логики формирования строк чека
ТаблицаТоваров = ПолучитьТаблицуТоваровПоЗаказу(ДокументОплаты.Сделка);
Для Каждого СтрокаТовара Из ТаблицаТоваров Цикл
// Программа добавляла товарные позиции по заказу
ДобавитьСтрокуВПаакетЧека(СтрокаТовара.Номенклатура, СтрокаТовара.Сумма);
КонецЦикла;
// Встроенный ошибочный дублирующий блок распределения авансов
Если Не ДокументОплаты.Сделка.ПроведенРеализацией Тогда
// Программа ошибочно добавляла еще одну строку на всю сумму документа оплаты
ДобавитьСтрокуВПаакетЧека("Аванс / Платеж / Оплата от " + ДокументОплаты.Контрагент, ДокументОплаты.СуммаДокумента);
КонецЕсли;
Если вам необходимо срочно пробить чек, а возможности обновить конфигурацию прямо сейчас нет, существует простой и эффективный обходной путь. Процесс печати чека из открытой формы документа усложнен проверками дат и контролем распределения авансов, однако в системе сохранился альтернативный legacy-механизм.
Выполним следующие шаги для корректной печати чека:
При таком способе вызова система задействует упрощенную процедуру печати чека ККМ. Данный алгоритм не производит избыточных проверок сопоставления дат документов оплаты и отгрузки, а напрямую транслирует базовые реквизиты платежа в кассу. Сумма чека при этом гарантированно не задвоится, а фискальный документ будет сформирован корректно.
Для долгосрочного решения проблемы необходимо обновить конфигурацию 1С:УПП. Ошибка задвоения сумм была признана разработчиками фирмы 1С и полностью устранена в релизе 1.3.126.1.
В этом и последующих релизах были сделаны важные доработки:
Если у вас нетиповая (измененная) конфигурация, программисту необходимо перенести изменения из общего модуля МенеджерОборудованияКлиентСервер и модулей документов расчетов актуального релиза УПП.
Так как ошибочные чеки с задвоенной суммой уже ушли оператору фискальных данных (ОФД) и зафиксированы в ФНС, их необходимо аннулировать и пробить заново. В противном случае при проверке налоговая инспекция обнаружит завышение выручки или неоприходование денежных средств.
Рассмотрим порядок действий для исправления ситуации в зависимости от используемого релиза 1С:УПП:
В актуальных релизах конфигурации механизм создания корректирующих чеков полностью автоматизирован. Вам необходимо создать документ «Чек коррекции» непосредственно на основании того платежного поручения, по которому произошло задвоение.
В старых версиях УПП штатный чек коррекции из платежки позволял оформить только операцию с признаком «Неприменение ККТ», что методологически не подходит для исправления ошибки задвоения. В этом случае исправление производится через утилиту драйвера ККМ: