Почему в 1С возникает ошибка «Потери клиента составляют...» при оплате подарочным сертификатом и как ее исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

При работе в режиме Рабочего места кассира (РМК) в таких конфигурациях, как «1С:Розница» или «1С:Управление нашей фирмой», пользователи иногда сталкиваются с парадоксальной ситуацией. При попытке оплатить покупку подарочным сертификатом, номинал которого в точности соответствует сумме чека (например, 300 рублей), система выдает предупреждение: «Потери клиента составляют 600 р». В результате фискальный регистратор печатает чек на общую сумму 900 рублей, где 300 рублей проходят как товар, а 600 рублей — как «внереализационный доход».

Такая ситуация критична для учета: в базе 1С документ фиксируется на одну сумму, а через кассовый аппарат проходит совершенно другая. Проанализируем причины этого поведения системы и разберем по шагам, как найти и устранить корень проблемы.

Механика возникновения «внереализационного дохода»

Для начала выясним причину появления самой формулировки «Потери клиента». В логике 1С подарочный сертификат — это авансовый платеж. Если покупатель приобретает товар на сумму меньше, чем номинал сертификата, и при этом настройки программы или условия использования сертификата запрещают выдачу сдачи, то остаток средств считается прибылью организации.

С точки зрения законодательства (54-ФЗ), в момент гашения такого сертификата необходимо отразить в чеке полную сумму. Если клиент не «выбирает» весь номинал, разница фиксируется в чеке как «Внереализационный доход» (часто по отделу 8 или другому выделенному отделу).

В рассматриваемом примере система «уверена», что номинал сертификата составляет 900 рублей. При покупке на 300 рублей расчет выглядит так: 900 (остаток) - 300 (покупка) = 600 (доход предприятия). Рассмотрим подробнее, почему возникают такие расхождения.

Поиск причины: Справочник против Регистра

Типичная ошибка начинающего администратора 1С — проверка только справочника ПодарочныеСертификаты. Однако информация о том, сколько денег «лежит» на сертификате, берется не из названия или текстового поля в его карточке.

Проанализируем ситуацию в базе данных. В 1С финансовое состояние сертификата определяется записями в регистрах накопления. Обычно это регистр ПодарочныеСертификаты или ДвиженияПодарочныхСертификатов.

Разберем основные причины, по которым остаток в регистре может стать некорректным:

  1. Задвоение документов продажи: Если один и тот же серийный номер сертификата был продан дважды или трижды (например, из-за программного сбоя или ручного ввода), суммы по нему в регистре суммируются. Если сертификат на 300 рублей «продали» три раза, программа будет считать его номинал равным 900 рублям.
  2. Ошибки при частичном гашении: Если сертификат является многоразовым, и при предыдущей транзакции произошел сбой (чек в кассе не пробился, а в 1С документ провелся или наоборот), остаток может рассчитаться неверно.
  3. Ручные корректировки: Иногда бухгалтеры пытаются исправить остатки с помощью документа КорректировкаРегистров, допуская ошибки в знаках (приход/расход) или измерениях.

Алгоритм диагностики и исправления

Чтобы выяснить истинную причину, пройдем по шагам технической проверки:

Шаг 1. Проверка отчета по сертификатам.

Откроем отчет «Остатки подарочных сертификатов» (название может варьироваться в зависимости от конфигурации). В настройках обязательно установим детализацию по Серийному номеру. Если мы видим, что по конкретному номеру числится сумма 900 вместо 300 — проблема в данных регистра.

Шаг 2. Анализ движений документа.

Выясним, каким документом была сформирована эта сумма. Для этого прямо из отчета можно перейти в расшифровку «Карточка движения документа» по регистратору. Посмотрим на список документов, которые делали записи в РегистрНакопления.ПодарочныеСертификаты с этим серийным номером.

Шаг 3. Использование отладчика (для программистов).

Если в отчетах суммы верные, но в РМК все равно лезут «потери», необходимо проверить модуль формирования XML-пакета для фискального регистратора. Рассмотрим пример функции, где может происходить расчет:


// Примерный фрагмент логики в модуле обработки чека
СуммаСертификата = ОстаткиПоСертификатам.ПолучитьОстаток(СерийныйНомер);
Если СуммаСертификата > СуммаЧека Тогда
    ПотериКлиента = СуммаСертификата - СуммаЧека;
    // Здесь формируется строка с внереализационным доходом
КонецЕсли;

Проанализируем, не попадает ли в СуммаСертификата значение из кэша формы Сложная оплата. В старых релизах «1С:Розница 2.2» встречался баг: если кассир несколько раз добавлял и удалял оплату сертификатом в одной форме, суммы могли суммироваться в оперативной памяти до момента нажатия кнопки «Пробить».

Как исправить ситуацию?

Выяснив причину, выберем метод устранения:

Вариант 1. Сторнирование лишних движений

Если мы обнаружили «лишние» продажи сертификата, необходимо аннулировать некорректные чеки или создать документ КорректировкаРегистров, чтобы привести остаток по регистру ПодарочныеСертификаты к фактическому номиналу (300 рублей).

Вариант 2. Проверка настроек «Вида подарочного сертификата»

Зайдем в настройки вида сертификата. Проверим, установлена ли возможность частичного гашения. Если флаг «Возвращать сдачу» не стоит, 1С всегда будет пытаться списать весь остаток сертификата в доход. Однако это не решит проблему, если в базе по ошибке числится 900 рублей вместо 300. Исправлять нужно именно входящий остаток.

Вариант 3. Очистка кэша и обновление конфигурации

Если проблема носит случайный характер и связана с формой РМК, рекомендуем выполнить очистку кэша пользователя и проверить наличие исправлений (патчей) для вашего релиза. Ошибка в обработке СложнаяОплата.Форма.ФормаВыбора часто исправляется в официальных обновлениях от 1С.

Заключение

Помните: фраза «Потери клиента составляют...» — это симптом того, что учетный остаток сертификата в системе превышает сумму покупки. Программа ведет себя корректно с точки зрения заложенной в нее логики 54-ФЗ, но оперирует неверными данными. Всегда доверяйте данным регистров накопления больше, чем тексту в наименовании или карточке справочника. Своевременный контроль отчетов по остаткам сертификатов позволит избежать подобных «сюрпризов» на кассе.

← На главную