Многие пользователи и разработчики при работе с конфигурациями 1С:Управление торговлей 11, 1С:Комплексная автоматизация 2 и 1С:ERP сталкиваются с задачей настройки маркетинговой акции «3=2». Суть ее проста: при покупке трех любых товаров клиент платит только за два самых дорогих, а третий (наименьший по стоимости) получает бесплатно. Давайте разберемся, почему эта задача сложнее, чем кажется на первый взгляд, и как её правильно реализовать.
Рассмотрим возможности справочника Скидки и наценки. Типовые механизмы 1С рассчитаны на применение скидки к конкретной строке документа или к сумме документа целиком при выполнении условий (количество товара, сумма чека, дисконтная карта и т.д.).
Основная трудность заключается в динамическом определении «самого дешевого товара». Типовой тип скидки Подарок требует жесткой привязки к конкретной номенклатурной позиции или набору. В условиях же акции «3=2» набор товаров в чеке может быть случайным. Система 1С «из коробки» не умеет в момент подбора товаров пересортировывать их по цене и автоматически применять скидку 100% именно к той строке, которая оказалась минимальной по стоимости.
Проанализируем возможные подходы к решению данной задачи, учитывая как технические аспекты, так и требования законодательства (ФНС).
В конфигурациях 1С существует объект Набор-комплект. Это позволяет сгруппировать несколько товаров в единую сущность. Если ваша бизнес-модель позволяет заранее определить фиксированные комбинации товаров, вы можете использовать этот инструмент. Однако этот метод обладает существенным недостатком: он не является гибким, так как акция не сработает автоматически при случайном выборе трех разных товаров покупателем — потребуется предварительная подготовка комплекта.
Это самый профессиональный и гибкий путь. Платформа 1С позволяет подключать внешние модули для расчета скидок. Суть метода заключается в создании алгоритма, который будет интегрироваться в процесс расчета скидок документа Чек ККМ или Реализация товаров и услуг.
Алгоритм действий программиста при написании такой обработки:
При реализации скидки 100% на товар (продажа товара по цене 0 рублей) возникают серьезные вопросы со стороны налоговых органов. С точки зрения бухгалтерии и налогового учета, товар не может быть «подарен» без оформления соответствующих документов, а продажа ниже себестоимости может вызвать претензии.
Правильный подход — это распределение суммы скидки. Вместо того чтобы делать одну позицию бесплатной, вы уменьшаете стоимость всех товаров в чеке пропорционально их доле. В итоге итоговая сумма к оплате будет точно такой же, как при акции «3=2», но в чеке не будет позиций с нулевой ценой. Это наиболее безопасный способ с точки зрения методологии учета.
Рекомендуем при разработке расширения конфигурации реализовать именно этот метод:
// Псевдокод логики распределения скидки
СуммаСкидки = ТоварСМинимальнойЦеной.Цена;
Коэффициент = СуммаСкидки / ОбщаяСуммаЧека;
Для Каждого Строка Из Товары Цикл
Строка.Скидка = Строка.Цена * Коэффициент;
КонецЦикла;
Чтобы успешно внедрить акцию «3=2» у вашего заказчика, следует учитывать следующие выводы:
Таким образом, решение задачи требует навыков программирования на 1С и понимания того, как работают механизмы расчета скидок в управляемом интерфейсе. При правильном подходе вы получите надежный и масштабируемый инструмент для маркетинговых активностей любой сложности.