Почему в 1С:Розница появляются автоматические скидки при использовании дробного количества и как их убрать?

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

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

Причина появления «фантомных» скидок: механизм округления

Прежде всего, давайте проанализируем внутреннюю логику программы. В 1С:Розница округление суммы чека технически реализовано не как простое изменение итоговой цифры, а именно через механизм автоматической скидки. Программа рассчитывает математически точную сумму по формуле Цена * Количество. Если в результате получается число с тысячными долями копейки (что часто бывает при умножении цены на дробный вес, например, 0.334 кг), система должна привести итог к формату, который «поймет» кассовый аппарат и законодательство (54-ФЗ).

Рассмотрим ситуацию подробнее: согласно требованиям фискализации, каждая строка в чеке должна содержать конечную сумму с учетом всех корректировок. Если вы настроили округление чека до целого рубля, программа не может просто «отбросить» копейки в итоговой сумме документа — она обязана распределить эту разницу по всем строкам чека пропорционально их стоимости. Именно поэтому вы видите сотые доли рубля в колонке «Скидка» даже в тех строках, на которые не распространяются никакие маркетинговые акции.

Настройка округления в карточке Магазина

Выясним причину, по которой скидки появляются даже при отсутствии активных маркетинговых мероприятий. Основной «виновник» чаще всего находится не в справочнике скидок, а в настройках конкретной торговой точки. Разберем по шагам, как проверить и изменить эту настройку:

  1. Перейдем в раздел НСИ (Нормативно-справочная информация).
  2. Выберем пункт Магазины и откроем карточку нужного нам магазина.
  3. В открывшейся форме перейдем на вкладку Продажи.
  4. Найдем группу настроек, отвечающую за расчеты. Там расположен ключевой флаг: «Округлять сумму чека в пользу покупателя».

Если в данном поле установлено значение (например, 0.50 или 1.00), система будет автоматически генерировать корректирующую скидку для каждого чека, сумма которого не кратна указанному значению. Важно понимать: даже если вы удалите все маркетинговые акции, эта настройка продолжит работать, так как она считается системным правилом оформления продаж в данном магазине, а не временной акцией.

Влияние обновления релиза на расчет скидок

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

Иногда при обновлении со старых версий происходит некорректный перенос признаков активности скидок в системных регистрах. Даже если в пользовательском интерфейсе акция помечена как «недействующая» или вовсе удалена, в регистре сведений ДействующиеСкидкиНаценки может сохраниться запись, заставляющая программу производить расчет. В таких случаях рекомендуется проверить состояние регистров через «Функции для технического специалиста» (ранее «Все функции»).

Особенности работы с дробным количеством и точность вычислений

Посмотрим на пример с весовым товаром. В системе 1С точность хранения суммы составляет два знака после запятой. Однако при работе с дробным количеством (3 знака после запятой) и ценой, которая не делится ровно на граммы, возникают ошибки округления. Рассмотрим, как программа справляется с этим:

Если включена настройка «Округлять цену при вводе количества», программа принудительно создает корректирующую скидку, чтобы математическое равенство (Цена - Скидка) * Количество = Сумма сошлось до копейки. Если этого не сделать, кассовый аппарат выдаст ошибку «Сумма строк не совпадает с итогом чека».

Для решения этой проблемы мы можем использовать следующий алгоритм действий:

Конфликт с драйвером ККТ

Иногда источником «лишних» скидок является не сама 1С:Розница, а настройки драйвера кассового аппарата. В современных драйверах (например, АТОЛ или Штрих-М) существует встроенная функция округления. Если в драйвере включено округление до рубля, а 1С передает сумму с копейками, касса самостоятельно отбросит копейки и вернет в программу информацию о том, что чек пробит на меньшую сумму. 1С зафиксирует это расхождение и запишет его в колонку «Скидка», чтобы отразить реальное состояние взаиморасчетов. Рекомендуется синхронизировать настройки округления в 1С и в драйвере ККТ, либо полностью отключить округление на стороне кассы, доверив расчеты программе.

Итоги и рекомендации

Если вы обнаружили автоматические скидки на все строки заказа, которые не создавали вручную, выполните следующие действия:

  1. Проверьте карточку Магазина на вкладке «Продажи» и отключите или скорректируйте «Округление в пользу покупателя».
  2. Убедитесь, что в справочнике маркетинговых акций нет действующих правил с областью предоставления «Везде».
  3. Проверьте технический регистр СостояниеСкидокНаценок, чтобы исключить влияние старых данных после обновления.
  4. Если проблема сохраняется только при работе с весами, проверьте кратность цены и настройки округления Видов цен.

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

← На главную