В типовой конфигурации «Управление торговлей 10.3» (УТ 10.3) часто возникают сложности при попытке отразить сложные схемы оплаты, такие как использование подарочных сертификатов совместно с частичной доплатой наличными. Проблема усугубляется требованиями 54-ФЗ, согласно которым в чеке необходимо отображать полную стоимость товара, даже если часть суммы покрывается сертификатом.
Рассмотрим ситуацию, когда при проведении документа Реализация товаров и услуг (РТУ) возникает критическая ошибка: «Указана сумма взаиморасчетов, превышающая непогашенный остаток по документу расчетов с контрагентом!». Мы проанализируем причины этой ошибки и разберем по шагам три способа её решения.
Для начала проанализируем, как 1С работает с взаиморасчетами в «ручном» режиме заполнения вкладки «Предоплата». Когда мы добавляем документ оплаты в таблицу предоплаты РТУ, система выполняет запрос к регистру накопления ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов. Она пытается найти свободный остаток (кредитовое сальдо), который еще не был «привязан» к другим отгрузкам.
Разберем фрагмент запроса, который вызывает сбой в процедуре ОтражениеЗадолженностиВРегистреОперативныхРасчетовПоДокументам:
Запрос.Текст =
"ВЫБРАТЬ
| ВзаиморасчетыПоДокументамОстатки.СуммаВзаиморасчетовОстаток * &ЗнакОстатка КАК СуммаВзаиморасчетов
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(
| ,
| Организация = &Организация
| И Контрагент = &Контрагент
| И (Сделка, ДокументРасчетовСКонтрагентом) В (ВЫБРАТЬ Сделка, ДокументРасчетовСКонтрагентом ИЗ ТаблицаВзаиморасчетов)) КАК ВзаиморасчетыПоДокументамОстатки";
Проблема заключается в логической последовательности. Когда кассир создает Приходный кассовый ордер (ПКО) на основании еще не проведенной реализации, этот ПКО технически не является «авансом». Он привязан к этой реализации как к «документу расчетов». Система видит, что денег по этому ПКО еще нет в остатках авансов, так как документ реализации сам является регистратором. Возникает замкнутый круг: РТУ не проводится, пока не увидит остаток по ПКО, а ПКО не закроет остаток, пока РТУ не сформирует задолженность.
Ниже представлены три проверенных метода решения этой задачи.
Этот метод позволяет сохранить прозрачность взаиморасчетов и избежать правок в программном коде. Мы разделим процесс оплаты и процесс зачета сертификата.
Реализация товаров и услуг на полную сумму (например, 6000 рублей). Вкладку «Предоплата» оставляем пустой. Проводим документ.Приходный кассовый ордер на фактическую сумму доплаты (5000 рублей). В признаке способа расчета указываем «Полный расчет» (так как мы закрываем долг по уже созданной реализации). Выбиваем чек.Корректировка долга с видом операции «Проведение взаимозачета».
Преимущество: Это самый «чистый» способ с точки зрения методологии 1С. Все регистры закрываются корректно, ошибка превышения остатка не возникает.
Если нам нужно, чтобы сертификат проходил в чеке ККМ именно как отдельный вид оплаты (например, «Электронными» или «Сертификатом»), проанализируем возможность использования функционала эквайринга.
Рассмотрим порядок действий:
Виды оплат чека ККМ новый элемент «Подарочный сертификат». Тип оплаты выберем «Платежная карта» (даже если это не карта, для системы это способ разграничить потоки денег).Оплата от покупателя платежной картой.Важный момент: Чтобы в чеке ККТ не выводилось слово «Карта», необходимо в настройках драйвера ККМ или в коде обработки обслуживания сопоставить этот вид оплаты с нужной секцией фискального накопителя (обычно тип «Иное» или «Аванс»).
Если бухгалтерия настаивает на заполнении вкладки «Предоплата» непосредственно в реализации, мы должны изменить бизнес-процесс:
Приходный кассовый ордер на сумму доплаты (5000 р.). Важно: в поле «Документ расчетов» ПКО не должна быть указана наша реализация (так как её еще нет). ПКО должен висеть как свободный аванс на договоре.Реализация товаров и услуг.Если подобные операции происходят часто, мы рекомендуем немного доработать логику подбора авансов. Проанализируем возможность автоматического распределения:
В модуле документа РеализацияТоваровИУслуг в процедуре ПередЗаписью или в обработке проведения можно добавить код, который будет автоматически искать авансы по определенному договору сертификатов и заполнять таблицу «Предоплата».
Пример логики поиска остатков программно:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.ДокументРасчетовСКонтрагентом КАК Документ,
| Остатки.СуммаВзаиморасчетовОстаток КАК Сумма
|ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&МоментВремени, ДоговорКонтрагента = &ДоговорСертификатов) КАК Остатки";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("ДоговорСертификатов", ДоговорСертификатов);
// Далее заполняем ТабличнуюЧасть Предоплата...
Важно помнить: При использовании 54-ФЗ в УТ 10.3 крайне критично следить за полем Признак способа расчета. При отоваривании сертификата в РТУ должен стоять признак «Полный расчет» (с учетом зачета ранее полученного аванса), чтобы налоговая верно интерпретировала выручку.
Выяснив причину ошибки, мы видим, что она носит чисто технический характер и связана с жесткой проверкой остатков в момент проведения. Использование Способа 1 (Корректировка долга) является наиболее универсальным и не требует изменения типового функционала программы.