В работе с конфигурацией 1С:Управление торговлей 10.3 (на обычных формах) пользователи часто сталкиваются с проблемой при оформлении частичных предоплат. Типичная ситуация: клиент вносит 30% стоимости заказа, а через неделю — оставшиеся 70%. Однако в финальном чеке вместо ожидаемого «Зачета аванса» (или «Предварительной оплаты») в графе способа оплаты выводится «Последующая оплата (КРЕДИТ)». Это вызывает вопросы как у покупателей, так и у налоговой службы, поскольку фактически товар уже оплачен, и никакого кредита (постоплаты) нет.
В данной статье мы подробно разберем, почему возникает такая ситуация, как работает логика драйверов АТОЛ и 1С, и какие шаги необходимо предпринять, чтобы чеки соответствовали требованиям ФФД 1.05.
Проанализируем механику работы программы. Когда мы печатаем чек из документа Приходный кассовый ордер (ПКО), созданного на основании Заказа покупателя, программа передает на кассу информацию о текущем платеже. Если сумма документа в 1С (например, 10 000 руб.) больше, чем сумма фактически вносимых денег (3 000 руб.), кассовый аппарат «достраивает» остаток. Согласно логике ФФД 1.05, если касса получает общую сумму чека выше, чем сумма наличных и безналичных оплат, разница автоматически записывается в Тег 1216 (постоплата/кредит).
Для того чтобы в чеке отразился «Зачет аванса» (Тег 1215), программа должна явно передать в драйвер ККТ информацию о том, что часть суммы уже была получена ранее. В типовой УТ 10.3, особенно в старых релизах, связь между несколькими платежами в рамках одного Заказа при печати чеков реализована не всегда корректно. Программа «видит» только текущий платеж и общую сумму заказа, но «не помнит» о предыдущем чеке.
Самый надежный способ заставить программу правильно распределить суммы — это изменить бизнес-процесс оформления документов. Рассмотрим правильный алгоритм действий по шагам:
Заказ покупателя. На его основании вводим ПКО (или Эквайринг) на сумму 30%. В признаке способа расчета указываем «Предоплата частичная». Печатаем чек.Реализация товаров и услуг (РТиУ). Именно этот документ в системе 1С является ключевым для фиксации зачета авансов.ПКО (на 70%) обязательно на основании Реализации, а не Заказа.ПКО. В этом случае алгоритм печати увидит связь с Реализацией, проанализирует зачтенные в ней авансы и передаст в ККТ верные теги: 7000 — наличными/безналичными, 3000 — зачет аванса.Часто автоматический зачет авансов не срабатывает из-за настроек договора с контрагентом. Разберем, на что обратить внимание:
Для корректного заполнения таблицы предоплат в документе Реализация товаров и услуг необходимо, чтобы в договоре был установлен вид взаиморасчетов «По заказам» или «По документам расчетов с контрагентами». Если выбран вариант «По договору в целом», 1С может не сопоставить конкретный платеж с конкретной отгрузкой в автоматическом режиме. Это приведет к тому, что в чеке предоплата не будет «подтянута», и касса снова выдаст «Кредит».
Проверьте настройки договора:
Если методология соблюдена, но чеки все равно бьются неверно, причина может крыться в технической части — обработке обслуживания или версии драйвера. Проанализируем технические нюансы:
1. Версия драйвера АТОЛ: Рекомендуется использовать драйвер 10-й версии (10.x.x). 8-я и 9-я версии драйверов во многих случаях некорректно транслируют типы оплаты из 1С в ККТ для ФФД 1.05. При переходе на 10-й драйвер необходимо обновить внешнюю обработку обслуживания (файл типа .epf), которую можно взять из последних релизов УТ 10.3 или с портала поддержки 1С.
2. Соответствие типов оплаты: В настройках торгового оборудования в 1С важно правильно сопоставить индексы типов оплаты. Рассмотрим примерную таблицу соответствия для АТОЛ:
Если в коде обработки или в настройках «Кассы ККМ» перепутаны индексы, то любая «Предоплата» может улетать в драйвер как «Кредит».
3. Программная корректировка (для разработчиков): Если требуется доработка кода, следует обратить внимание на модуль МенеджерОборудованияВызовСервера и процедуры формирования структуры чека. Выясним причину в коде, посмотрев на логику формирования таблицы оплат:
// Пример логики в процедуре формирования параметров чека
// Важно убедиться, что заполняется массив оплат с типом "Предоплата"
Для Каждого СтрокаПредоплаты Из ТаблицаПредоплат Цикл
НоваяОплата = Оплаты.Добавить();
НоваяОплата.ТипОплаты = 2; // Код типа "Зачет аванса/предоплаты"
НоваяОплата.Сумма = СтрокаПредоплаты.Сумма;
КонецЦикла;
Как отмечают участники обсуждения, иногда приходится вносить изменения в процедуры ЗаполнитьОплатыДляПлатежногоДокумента или ЗаполнитьПоНовому, добавляя в них принудительный анализ документов-оснований и проверку уже пробитых чеков по данному заказу.
Важно помнить, что согласно методическим рекомендациям ФНС:
В УТ 10.3 при печати из ПКО без заполненной товарной части документ может уйти как «Аванс». Для корректного зачета при финальной отгрузке программа должна сопоставить номенклатуру из первого чека с номенклатурой в реализации. Если вы используете ПКО на основании Заказа, убедитесь, что в ПКО заполнена табличная часть «Товары» (если это предусмотрено вашим релизом конфигурации).
Для того чтобы избавиться от «Кредита» в чеках при частичной оплате в 1С:УТ 10.3, выполните следующие действия:
Реализацию товаров и услуг перед финальным платежом.Соблюдение этой последовательности позволит вам формировать юридически корректные чеки, которые прозрачны для покупателя и не вызывают нареканий у контролирующих органов.