В работе с конфигурацией «1С:Комплексная автоматизация 2» (КА2) специалисты часто сталкиваются с ситуациями, когда фискальный чек, пробитый из документа Приходный кассовый ордер (ПКО), содержит некорректные данные: не те товарные позиции, неверные ставки НДС или суммы. Рассмотрим детально, как выйти из этой ситуации, разберем причины возникновения проблемы и проанализируем различные способы формирования чека на возврат.
Прежде чем мы перейдем к исправлению, давайте выясним причину, по которой 1С формирует «странный» состав чека. В отличие от простых систем, КА2 и ERP используют сложный механизм распределения расчетов. Если в договоре с контрагентом выбран способ ведения взаиморасчетов «По договорам», система применяет принцип ФИФО (First In, First Out).
Проанализируем ситуацию: когда вы пробиваете чек из ПКО, программа обращается к регистру Расчеты с клиентами. Если за клиентом числится старая задолженность по другим отгрузкам, система автоматически «подтягивает» в чек номенклатуру из тех старых реализаций, которые она считает оплаченными этим поступлением денег. В итоге в чеке печатаются позиции, которые фактически не имеют отношения к текущей сделке. Это и создает «веселье», упоминаемое пользователями на форумах.
Самый очевидный путь — это создание документа Расходный кассовый ордер (РКО) на основании исходного ПКО. Рассмотрим этот процесс по шагам:
Приходный кассовый ордер.Расходный кассовый ордер.Однако, как показывает практика, на этом этапе часто возникают сложности: состав чека в РКО может снова не совпасть с тем, что было в ПКО. Это происходит из-за того, что при возврате система опять пытается пересчитать остатки по регистру расчетов. Если типовой механизм выдает ошибку или неверный состав, перейдем к более глубоким методам коррекции.
Если нам необходимо, чтобы чек на возврат в точности повторял позиции ошибочного приходного чека, мы можем воспользоваться механизмом расширений. Проанализируем, как программно вмешаться в процесс формирования XML-пакета для кассового аппарата.
В 1С подготовка данных для ККТ происходит в общем модуле МенеджерОборудования. Мы можем создать расширение и перехватить процедуру формирования таблицы товаров. Посмотрим на пример логики, которую можно реализовать в расширении:
&После("ПодготовитьДанныеДляПечатиЧека")
Процедура Расш_ПодготовитьДанныеДляПечатиЧека(ПараметрыЧека, ДанныеОбъекта)
// Проверяем, что это наш документ РКО, созданный для исправления ошибки
Если ТипЗнч(ДанныеОбъекта.Ссылка) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
// Подменяем таблицу товаров на ту, которая была в исходном ПКО
// Здесь можно программно заполнить таблицу ПараметрыЧека.ПозицииЧека
КонецЕсли;
КонецПроцедуры
Этот метод позволяет жестко задать список товаров, ставок НДС и цен, игнорируя автоматические расчеты системы по регистрам. Таким образом, мы получим чек на возврат, который полностью «зеркалит» ошибочный приход.
Если база данных сильно доработана или учетные регистры находятся в состоянии «болота», а чек нужно выбить «здесь и сейчас», мы можем воспользоваться утилитой производителя кассового аппарата (например, Тест драйвера АТОЛ). Выясним, как это сделать правильно с точки зрения закона:
После этого в самой 1С операцию возврата денег нужно будет отразить бухгалтерской операцией или документом без пробития чека, чтобы выровнять остатки в учете.
Разберем важный нюанс: начиная с определенных версий ФФД (особенно 1.2), для исправления ошибок кассира рекомендуется использовать не «Возврат прихода», а «Чек коррекции». Рассмотрим алгоритм исправления:
В современных релизах КА2 документ Чек коррекции позволяет сделать это штатно. Это более правильный путь с точки зрения налоговой отчетности, так как он явно указывает на исправление ошибки, а не на фактический возврат товара покупателем.
Чтобы в будущем не сталкиваться с «кривыми» чеками в 1С:КА 2, проанализируем настройки программы. Для оптовой торговли с розничными чеками рекомендуется:
Расчеты с клиентами, не допуская необоснованных зависших авансов или долгов в разрезе различных аналитик.Таким образом, мы выяснили, что проблема «кривого» чека на возврат чаще всего кроется в механизме распределения оплат. Использование РКО — это правильный бухгалтерский путь, но в сложных случаях автоматизации может потребоваться либо корректировка настроек взаиморасчетов, либо программное вмешательство через расширение для точного формирования состава чека.