При работе в конфигурации 1С:Управление торговлей 11.3 (и выше) пользователи часто сталкиваются с ситуацией, когда в чеках ККМ все скидки (и ручные, и автоматические) отображаются корректно, но после закрытия смены в итоговом документе Отчет о розничных продажах (ОоРП) данные о скидках исчезают. В табличной части товары есть только итоговая цена, а колонки со скидками остаются пустыми. В результате типовой отчет Валовая прибыль не показывает сумму предоставленных скидок по розничному направлению, что затрудняет анализ эффективности маркетинговых акций.
В этой статье мы подробно разберем, почему так происходит, проанализируем внутреннюю логику программы и рассмотрим способы решения этой задачи.
Для начала выясним причину такого поведения системы. В отличие от оптовой торговли, где документ Реализация товаров и услуг фиксирует скидки в явном виде в регистрах, розничный контур в 1С:УТ 11 спроектирован иначе. Рассмотрим основные нюансы:
Чеки ККМ. Чтобы не перегружать документ и итоговые регистры лишними строками (если один и тот же товар продавался с разными мелкими скидками разным покупателям), программа суммирует количество и рассчитывает среднюю цену реализации. При этом цена в ОоРП записывается уже «чистая» — то есть за вычетом всех скидок.Товары документа Отчет о розничных продажах присутствуют реквизиты СуммаРучнойСкидки и СуммаАвтоматическойСкидки. Однако в типовом коде при заполнении документа из чеков эти поля программно игнорируются. Они оставлены преимущественно для сценариев обмена данными с внешними кассовыми системами (например, Frontol), которые передают данные в 1С уже в готовом виде.Проанализируем ситуацию: если нам критически важно видеть скидки в стандартных отчетах, наиболее правильным (хотя и требующим вмешательства в конфигурацию) путем будет изменение алгоритма закрытия смены. Нам нужно заставить систему не просто вычислять итоговую цену, но и аккумулировать суммы скидок из чеков.
Для реализации этого метода необходимо внести изменения в модуль менеджера документа ОтчетОРозничныхПродажах или в обработку ЗакрытиеКассовойСмены. Рассмотрим упрощенный пример логики, которую нужно внедрить в процедуру сворачивания данных:
// Фрагмент кода для суммирования скидок при обходе чеков
Для Каждого СтрокаЧека Из ТаблицаЧеков Цикл
НоваяСтрокаООРП = ТаблицаИтоговыхПродаж.Найти(СтрокаЧека.Номенклатура, "Номенклатура");
Если НоваяСтрокаООРП <> Неопределено Тогда
// Добавляем к итоговым суммам данные по скидкам
НоваяСтрокаООРП.СуммаАвтоматическойСкидки = НоваяСтрокаООРП.SуммаАвтоматическойСкидки + СтрокаЧека.СуммаАвтоматическойСкидки;
НоваяСтрокаООРП.СуммаРучнойСкидки = НоваяСтрокаООРП.СуммаРучнойСкидки + СтрокаЧека.СуммаРучнойСкидки;
КонецЕсли;
КонецЦикла;
Важный момент: После такой доработки колонки скидок в ОоРП начнут заполняться, и при проведении документа данные автоматически попадут в регистр ВыручкаИСебестоимостьПродаж. После этого типовой отчет Валовая прибыль начнет корректно отображать информацию без дополнительных настроек.
Если вы не хотите менять типовой код конфигурации, можно пойти по пути создания внешнего отчета. Рассмотрим плюсы и минусы этого подхода:
Чеков ККМ (где есть скидки) и данные из регистра себестоимости (где скидок нет).В этом случае запросом нужно выбирать данные из документов ЧекККМ, которые имеют статус Пробит или Архивный. Обратите внимание на настройки системы: если у вас включено удаление чеков после закрытия смены, этот способ работать не будет. Рекомендуется использовать настройку «Архивировать чеки ККМ» в параметрах розничных продаж.
Посмотрим на проблему под другим углом. В 1С:УТ 11 существует специализированный отчет «Оценка применения скидок». Он позволяет детально проанализировать, какие скидки сработали, на какие суммы и какова была их эффективность.
Выясним условия его корректной работы:
Проанализировав ситуацию, мы видим, что отсутствие скидок в Отчете о розничных продажах — это осознанное ограничение разработчиков 1С для упрощения структуры данных в рознице.
Резюмируем наши действия:
СуммаАвтоматическойСкидки и СуммаРучнойСкидки в документе ОоРП.Правильный выбор метода зависит от ваших бизнес-процессов и готовности к поддержке измененного кода конфигурации.